腾讯后台开发面试题2

前段时间专心面过腾讯,经过了N轮的技术面,结果还是挂了,但没挂在技术面,比较欣慰,回来之后写一点总结,以供有梦想进入腾讯做后台服务器开发的同学参考,本文章为胡成精心总结,胡成原创,copy和转载请通知。ps:()之内的文字由作者点评,非面试题文字。

linux和os:

netstat tcpdump ipcs ipcrm (如果这四个命令没听说过或者不能熟练使用,基本上可以回家,通过的概率较小 ^_^ ,这四个命令的熟练掌握程度基本上能体现面试者实际开发和调试程序的经验)

cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握

awk sed需掌握

共享内存的使用实现原理(必考必问,然后共享内存段被映射进进程空间之后,存在于进程空间的什么位置?共享内存段最大限制是多少?)

c++进程内存空间分布(注意各部分的内存地址谁高谁低,注意栈从高道低分配,堆从低到高分配)

ELF是什么?其大小与程序中全局变量的是否初始化有什么关系(注意.bss段)

使用过哪些进程间通讯机制,并详细说明(重点)

makefile编写,虽然比较基础,但是会被问到

gdb调试相关的经验,会被问到

如何定位内存泄露?

动态链接和静态链接的区别

32位系统一个进程最多多少堆内存

多线程和多进程的区别(重点 面试官最最关心的一个问题,必须从cpu调度,上下文切换,数据共享,多核cup利用率,资源占用,等等各方面回答,然后有一个问题必须会被问到:哪些东西是一个线程私有的?答案中必须包含寄存器,否则悲催)

写一个c程序辨别系统是64位 or 32位

写一个c程序辨别系统是大端or小端字节序

信号:列出常见的信号,信号怎么处理?

i++是否原子操作?并解释为什么???????

说出你所知道的各类linux系统的各类同步机制(重点),什么是死锁?如何避免死锁(每个技术面试官必问)

列举说明linux系统的各类异步机制

exit() _exit()的区别?

如何实现守护进程?

linux的内存管理机制是什么?

linux的任务调度机制是什么?

标准库函数和系统调用的区别?

补充一个坑爹坑爹坑爹坑爹的问题:系统如何将一个信号通知到进程?(这一题哥没有答出来)

c语言:

宏定义和展开(必须精通)

位操作(必须精通)

指针操作和计算(必须精通)

内存分配(必须精通)

sizeof必考

各类库函数必须非常熟练的实现

哪些库函数属于高危函数,为什么?(strcpy等等)

c++:

一个String类的完整实现必须很快速写出来(注意:赋值构造,operator=是关键)

虚函数的作用和实现原理(必问必考,实现原理必须很熟)

sizeof一个类求大小(注意成员变量,函数,虚函数,继承等等对大小的影响)

指针和引用的区别(一般都会问到)

多重类构造和析构的顺序

stl各容器的实现原理(必考)

extern c 是干啥的,(必须将编译器的函数名修饰的机制解答的很透彻)

volatile是干啥用的,(必须将cpu的寄存器缓存机制回答的很透彻)

static const等等的用法,(能说出越多越好)

数据结构或者算法:

《离散数学》范围内的一切问题皆由可能被深入问到(这个最坑爹,最重要,最体现功底,最能加分,特别是各类树结构的实现和应用)

各类排序:大根堆的实现,快排(如何避免最糟糕的状态?),bitmap的运用等等

hash, 任何一个技术面试官必问(例如为什么一般hashtable的桶数会取一个素数?如何有效避免hash结果值的碰撞)

网络编程:

tcp与udp的区别(必问)

udp调用connect有什么作用?

tcp连接中时序图,状态图,必须非常非常熟练

socket服务端的实现,select和epoll的区别(必问)

epoll哪些触发模式,有啥区别?(必须非常详尽的解释水平触发和边缘触发的区别,以及边缘触发在编程中要做哪些更多的确认)

大规模连接上来,并发模型怎么设计

tcp结束连接怎么握手,time_wait状态是什么,为什么会有time_wait状态?哪一方会有time_wait状态,如何避免time_wait状态占用资源(必须回答的详细)

tcp头多少字节?哪些字段?(必问)

什么是滑动窗口(必问)

connect会阻塞,怎么解决?(必考必问,提示:设置非阻塞,返回之后用select检测状态)

如果select返回可读,结果只读到0字节,什么情况?

网络编程:

tcp与udp的区别(必问)

udp调用connect有什么作用?

tcp连接中时序图,状态图,必须非常非常熟练

socket服务端的实现,select和epoll的区别(必问)

epoll哪些触发模式,有啥区别?(必须非常详尽的解释水平触发和边缘触发的区别,以及边缘触发在编程中要做哪些更多的确认)

大规模连接上来,并发模型怎么设计

tcp结束连接怎么握手,time_wait状态是什么,为什么会有time_wait状态?哪一方会有time_wait状态,如何避免time_wait状态占用资源(必须回答的详细)

tcp头多少字节?哪些字段?(必问)

什么是滑动窗口(必问)

connect会阻塞,怎么解决?(必考必问,提示:设置非阻塞,返回之后用select检测状态)

如果select返回可读,结果只读到0字节,什么情况?

keepalive 是什么小编?如何使用?

列举你所知道的tcp选项,并说明其作用。

socket什么情况下可读?

db:
mysql,会考sql语言,服务器数据库大规模数据怎么设计,db各种性能指标

最后:补充一个最最重要,最最坑爹,最最有难度的一个题目:一个每秒百万级访问量的互联网服务器,每个访问都有数据计算和I/O操作,如果让你设计,你怎么设计?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


前段时间专心面过腾讯,经过了N轮的技术面,结果还是挂了,但没挂在技术面,比较欣慰,回来之后写一点总结,以供有梦想进入腾讯做后台服务器开发的同学参考,本文章为胡成精心总结,胡成原创,copy和转载请通知
1)tcp三次握手的过程,accept发生在三次握手哪个阶段?2)Tcp流, udp的数据报,之间有什么区别,为什么TCP要叫做数据流?3)const的含义及实现机制,比如:const int i,是
1.get,post 的区别 1、GET在浏览器回退时是无害的,而POST会再次提交请求。2、GET产生的URL地址可以被Bookmark,而POST不可以。3、GET请求会被浏览器主动cache,而
1、优化 MYSQL 数据库的方法 (1) 选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置 NOT NULL, 例如’省份,性别’, 最好设置为 ENUM (2) 使用连接(JOIN)来
程序员找工作必备 PHP 基础面试题​ 程序员找工作必备 PHP 基础面试题(二) 1. 写出下面的程序输出的结果 $str="cd"; $$str="abcde&quo
1、我们知道 autoload 可以实现类的自动载入,如何把一个类 splDemo 的方法 autoload 注册成为一个__autoload (关键词:spl) abstract
程序员找工作必备 PHP 基础面试题​ 程序员找工作必备 PHP 基础面试题(二)​ 程序员找工作必备 PHP 基础面试题 (三) 一、在 HTTP1.0 中,状态吗 500 的含义的是什么?如果返回
2020年PHP 面试问题(一) 2020年PHP 面试问题(二) 一.数据库三范式 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 第二范式:2NF是对记录的惟一性约束,要求
一.什么是 CGI?什么是 FastCGI?php-fpm,FastCGI,Nginx 之间是什么关系? CGI,通用网关接口,用于WEB服务器和应用程序间的交互,定义输入输出规范,用户的请求通过WE
1.PHP 如何实现不用自带的 cookie 函数为客户端下发 cookie。对于分布式系统,如何来保存 session 值。 这个题有点绕。考的还是 COOKIE 和 SESSION 的基础知识。服
1、PHP 语言的一大优势是跨平台,什么是跨平台? PHP 的运行环境最优搭配为 Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如 windows、Linux 等)上配置,不受操作
如何直接将输出显示给浏览器? 将输出直接显示给浏览器,我们必须使用特殊标记 <?=and?>。 PHP 是否支持多重继承? PHP 只支持单继承。PHP 的类使用关键字 exte
1.缩短键值对的存储长度 键值对的长度是和性能成反比的,比如我们来做一组写入数据的性能测试,执行结果如下: 从以上数据可以看出,在 key 不变的情况下,value 值越大操作效率越慢,因为 Redi
原文链接 分享:[分享] 大环境下瑟瑟发抖辞职的第二天,拿了两个 offer 面试题解析 看你简历里也有用过 Go,Go 和 PHP 在运行的时候有什么区别和优势? 题主原回答:PHP 每个请求进来时
推荐视频:面试10家公司,收获9个offer,2020年PHP 面试问题 第一阶段1-2年 我认为1-2年对于PHP程序员来说是第一个门槛,这一阶段菜鸟正式从理论迈向企业级开发。我们知道如何使用工具、
1、什么是rabbitmq 采用AMQP高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦 2、为什么要使用rabbitmq 1. 在分布式系统下具
前言 日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题。 面试10家公司,收获9个offer,2020年PHP 面试问题 一
是什么 ,在什么地方用,注意什么,特点,如何配置(相关关联),出现的问题(缺点),引出解决办法或另一种方法-PHP:Hypertext Preprocessor一、get和post的区别1. get是从服务器上获取数据,post是向服务器传送数据。2. get是把参数数据队列加到提交表单的ACTIO
Php1、表单中get与post提交方法的区别?答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.2、session与cookie的区别?答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_d