跟谁学(Java一面),分享一下,面了很多家,这家最深刻。。
一个一面,,,持续了却接近两个小时,问题看着不难,说的却不是他想要的结果,,一直在往深处挖掘。。
1. 自我介绍,成绩排名,你认为是什么原因别人的成绩在你前面或后面。
2. 打印叶子节点。
3. 查找第一个叶子节点,查到后打印这一层所有节点。
4. 乱序数组中重复数字最多的数字,相同时选前面的。(5,5,1,1,6,输出5)。
5. 数组与链表的区别,随机查找哪个快,为什么(不考虑cpu缓存),数组根据索引如何查找到元素(a[i]=a[0]地址值+i*类型字节数)。
6. 写一种多线程的实现,将方法转为同步。静态与非静态修饰synchronized区别,类锁与对象锁讲讲,可重入锁。自己设计下线程池,说下注意的点。ThreadLocal讲一下。
7. 讲JVM,垃圾回收,G1原理,Full GC过程。
8. IP和tcp关系,实现原理,作用,数据包大小(哪个大,为什么)。
9. 自己写两个表,写左连接,数据库左连接结果(有几条记录),为什么,进行左连接时数据库执行过程。查询语句数据库在数据文件中的查询过程。事务特性,更新语句时加不加事务,为什么,加后数据库执行过程。幻读。说下对MySql的理解。(还有java web相关,记不清了,servlet单例还是多例,为什么。。)
10. 读写文件与加法哪个更消耗CPU,为什么。乘法和加法哪个更快,为什么。
11. 评价下自己。
12. 说一个做的好的项目(有价值的)。
13. 提问,最多三个问题。。。
面完不知道经历了什么。。。