腾讯CDG后端实习二面面经(一小时)
1.自我介绍
2.实习时间,地点
代码
3.算法:一个正整数n,通过n++、n- -,n为偶数时n/2,最后变成1,最少需要多少步?
(
写的时候一开始编译器死活加载不出来,折腾了半天最后换了流量,浪费了大概5分钟
,思路的话一开始是用动态规划,后面改成DFS,但是我想的太多了,最后没写出来
)
4.给了一段单例的代码,让我看哪里有问题(双层判断,synchronize 加锁,volatile )
项目
5.挑一个比较有挑战的项目讲一讲(讲了自己和室友一起做的一个小程序)
6.项目是否已经上线?
7.怎么保证订单只有一个人接单(Zookeeper实现分布式锁)
8.如果某个人抢到了单,程序崩溃退出了,那个人一直占有锁怎么办(临时节点)
9.Redis的设计,什么数据存到Redis里,怎么存(多扯了点数据库和缓存一致性的问题)
10.先改数据库,再改Redis的话,如果改完数据库服务器宕机了,导致Redis里的还是旧数据怎么办(用消息队列反复尝试)
11.存用户信息有没有存密码(没,直接微信授权登录,主要存一个openID,并且用Base64加密了一下)
12.用Base64加密安全吗?(啊这,好像并不安全)
13.怎样存比较安全?(服务端弄个私钥,每次用这个私钥结合加密算法加密)
14.如果需要存用户密码的话,应该怎么存?(还是用私钥就行吧)
15.具体用什么加密算法?(没考虑过,只要是能结合私钥一起用的算法就行吧)
计算机网络
16.有用过什么网络库?(写demo用过NIO)
17.用过Netty吗?(没)
18.项目里用到了什么网络库?怎么跟其他程序通信的?(用dubbo 进行RPC通信)
19.为什么用Dubbo?(用的比较广,功能比较多,像负载均衡,服务注册,服务发现之类的)
20.那你觉得你的项目需要这么多功能吗?选型的时候是哪个功能多就选哪个吗?
我:额...以后应该用的上吧,假如用户量上来的话,确实需要负载均衡之类的
面试官:我的意思是前期选型选个太重的框架的话,后面可能会比较麻烦,没事咱们继续
我:.....
21.TCP从建立连接到通信,到终止连接的过程(三握四挥)
操作系统
22.Linux的文件系统了解吗(只说了个树状结构)
23.删除文件用的是什么命令?
24.执行这个命令就能保证文件被删掉吗?(傻眼了,这个真不清楚)
25.操作系统怎么管理虚拟内存(分页机制,还扯了点缺页中断,页面置换)
26.遇到性能问题怎么分析?用什么命令?(ps,top,然后用jvm的jstat,jstack,jmap 工具分析)
27.根据你的经验,用jstack看完线程能分析出问题吗(额....好像不行,主要还是用jstat和jmap吧)
28.用jstat和jmap 能分析出什么?(堆的具体使用情况,据此调节堆大小)
算法
29.1000亿个数找出最大的100个数(堆排序,维护一个大小为100的最小堆)
30那你这个算法的时间复杂度是多少?(nlog100)
反问
结果大概多久能出来?(下周,如果有下一面的话就是HR面了)
3.29更新:官网状态灰了,确认挂了
#实习##面经##腾讯##Java工程师#