【秋招】网易杭州研究院Java开发一面面经
昨天晚上一面,用的耳机,没有录音,大概回顾下吧,不是很精确了。
首先自我介绍,我说了看过《深入理解Java虚拟机》和《Java并发编程的艺术》可能说的有点短,面试官说了两次还有吗,我就继续说了两次(平时如何学习,目前还在实习)
- 首先问了Java集合框架,List,Set,Map
- ArrayList,LinkedList底层实现,链表能否实现二分查找
- HashMap底层数据结构
- 红黑树,B树特点
- 线程池的七大参数,线程池keepAliveTime参数的作用(这个当时有点忘了,没说出来)
- Java中如何实现线程安全
- synchronized和ReentrantLock区别,ReentrantLock底层实现
- synchronized锁升级是怎样的
- ReentrantLock公平锁与非公平锁区别以及如何实现非公平与公平(这个实现也没说好,面试官让我记一下,之后看看)
- 线程安全问题中可见性,缓存一致性实现了解过吗(这个缓存一致性协议具体确实没看)
- 禁止指令重排怎么实现的(我只说了内存屏障,这个答得也不好)
- 禁止指令重排一定能实现变量可见性吗(这个不记得是不是这么问的了,当时感觉问的有点奇怪,也没答上来)
- 看过Java虚拟机,主要有哪些内容(Java内存模型,垃圾回收,类加载)
- 说下类加载过程(这个就说不上来了。。之前背了有点忘了),双亲委派了解吗
- PS,CMS,G1垃圾回收器了解吗
- Java内存区域划分,一个方法内创建一个对象,是在哪个区域
- Java网络编程熟悉吗(就用过Socket类)
- NIO了解吗(不了解😂)
- 网络TCP协议掌握的怎么样(最近计算机网络要考试了,刚开始复习。。。)
- SpringBoot特性,Spring IOC和AOP,AOP是什么,怎么实现,CGlib了解吗(不了解。。。)
- 还有哪些Java实现的开源框架了解吗
- 还有哪些会的我没问到的(MySQL没说,索引,事务)
- MySQL索引说一下,a,b,c三个字段建立一个索引,where条件指定a,c能不能走到c的索引,后面有大于能不能走索引
- 有过SQL调优经验吗(没敢说有,现在想想其实也能说说用explain查看SQL如何执行的)
- ORM框架MyBatis了解吗,主要解决了什么问题
后面没什么问题了,分布式这边我学的还不够,面试官也就没问了,说了下实习中项目有用到SpringCloud,Redis,Kafka,知道一些概念(不过实习实际工作中没有接触到这些,我只实习了一个月,大部分时间在改bug🤦♂️,而且主要还是前端原生js),面试官也没继续问了,我又说了下实习中用到了Jekins自动发包,大体流程说了下,Jekins具体如何实现我也没看
后面又继续问还有没有会的没问到的,可能有点自我感觉良好了吧(现在看来没答上来的明明那么多),不过当时也确实有点想不起来了,说了没啥了吧。然后面试官跟我说经验不是很足,有些问题理解还需要深入,然后就直接再见了??我有点懵,不应该让我问个问题啥的吗?这就凉了吗?现在想想也其实也还有能说的:nginx,MySQL事务,设计模式(虽然只熟悉单例和工厂😂),Linux
不过今天收到通知了,一面过了。面试官人还是很不错的,面试过程中经常嗯嗯回应,就很有成就感,有些说的不好的他也会稍微提示。许愿二面🙏