说实话offer真的是很出乎自己的意料。曾经还在牛客发帖问大家菜鸡要不要参加提前批,大佬们都说要。我就干脆报一个试试水,谁想到现在offer都给我了,虽然是最低档但有就很不错了,7月还有原来找到别的暑期实习,感觉真的像做梦一样。

技术面:软件工程师(后端方向)

1、自我介绍。
2、介绍项目。
3、介绍所用技术。
4、对string类的理解。接口和抽象类的区别。
5、静态变量存放在内存哪个区域?
6、有一个public static final的HashMap,里边对象的属性能不能修改?
7、说出6种常见的java异常。
8、多线程如何保持同步?
9、java可见性的关键字及其原理。
10、HashMap的实现原理、ConcurrentHashMap的结构、插入和查询的流程。
11、怎么查看java虚拟机内存占用?
12、JAVA内存如何分配?
13、堆区内存如何分配?
14、程序计数器的作用?
15、垃圾回收算法和流程。
16、如何减少full gc的次数?
17、方法区是否需要gc
18、类加载的流程。
19、知道哪些类加载器。
20、类加载器之间的关系?
21、双亲委派模型。为什么使用双亲委派模型?
22、mysql有几种锁?怎么实现?
23、mysql mvcc?
24、你用的mysql存储引擎?为什么选择它?实现原理?
25、innodb事物的级别
26、b 树的结构?与二叉树的区别?与b树的区别?
27、redis数据结构?单线程还是多线程?
28、cpu密集型多线程和io密集型多线程的比较。
29、cpu密集型里如何管理多线程?
30、用什么样的线程池和阻塞队列?
31、cpu线程特别多会产生什么问题?
32、io密集型里怎么减少需要的线程数?
33、io多路复用的原理和实现。
34、这个还不够,怎么减少处理io(和磁盘io交互)所需要的线程?
35、用什么样的队列?你是怎么实现?
36、(我回答的redis的list实现的)这种队列有什么缺点?
37、既然有这样问题,为什么不用rabbitmq?(我说我偷懒了。。。)
38、io量很大,队列很长怎么办?
39、如何分布式存储?
40、你还有什么问题问我?


hr面:

1、为什么选择读研?
2、为什么选择开发岗不去做算法?
3、研究生3年都做了什么?
4、对vivo了解多少?
5、从哪得到的招聘信息?
6、为什么选择杭州?
7、秋招还准备报哪几家?
8、还有什么想了解的?


纪念首个收到的校招offer。