腾讯后台开发实习面经(一面)
211本硕 实验室用C/C++不用java 自学java半年左右 面试时长50分钟 部门是腾讯健康部(一个听上去很萌的部门)
(上午刚被字节跳动折磨,下午就是腾讯,我倒……)
1.手撕代码:既然你c++和java都会 那你用c++撕一个memcopy吧(我…… 不过我最后撕出来了 因为这个好像是腾讯题库里的一道题,以前见过)
2.如果memcopy的俩字符串内存存在重叠怎么办(用指针倒着拷贝)
3.arraylist和Linkedlist的区别和优劣(随便说)
4.问GC,对象循环引用的垃圾回收(这个问的应该是可达性分析算法,这个好好的扯了一会,因为以前认真看过,核心是gc roots)
5.讲一讲java中堆,栈,方法区的区别(我说堆是放对象的,栈是临时开辟的跑方法的,方法区是放静态的东西和常量池的)
6.又是一道手撕代码,这个我觉得有点麻烦,要求是完整的写一个大文件的拷贝(这个就是java基础了,要用到流,然后因为是大文件,所以还要把大文件分块,以前看过,所以勉强撕对了)
7.数据库索引的优缺点(优点是快,缺点是占内存,感觉这种都是时间空间的平衡)
8.进程间的通信(说了管道,信号量,消息队列,socket,共享内存,好像一不小心说全了hhh)
9.输入一个网址会发生的事情(这个我没答好,我输了dns域名解析,http请求发送,然后服务器响应,但是我看面经好像应该说的更详细一些什么负载均衡也要说)
10.如何应对数据存储“读多写少”的问题(我说首先就是用copyonwirte 写用副本来写,然后我就扯了一会redis,redis应该是有效果的吧我猜)
总结:腾讯的提问比较发散,看你自己能不能扯,我感觉有几个题我可以扯得更多一点,然后就是腾讯有时候手撕代码题还是挺难的个人感觉,还是要好好复习才行。
#腾讯##实习##C++工程师##面经#