猿辅导后台二面凉经
1.完全二叉树与平衡二叉树的概念
2.两道算法题。求完全二叉树的最大深度与节点个数,要利用完全二叉树的特性。
3.JUC包下面一些类的原理解析。
ThreadPoolExector
AQS
4.线程池。首先介绍一些工作原理。然后挖一些细节问题。
(1)现在线程池设置的核心线程数为10,最大线程数为100.
问:假如现在有两个线程,1个在工作,1个空闲,又来一个任务,如何运行?
(2)现在线程池里面的线程数已经超过了核心线程数,小于最大线程数。
问:如果线程池里某一个线程执行完任务了,设置的空闲等待时间是1秒,该线程是怎么知道自己到1秒了,然后销毁的。
5.JVM。主要问CMS与G1,问得很细。
比如:CMS工作时,具体怎么标记对象是否可达的。假如现在CMS在进行垃圾收集了,同时用户线程又在工作,会有新的对象分配,那么CMS能否感知到用户线程是否产生了垃圾,本次垃圾收集时候,如何避免回收掉用户产生的新对象(我猜测本次新分配的对象留到下一次GC,但是具体CMS怎么判断出来该对象是新分配的对象,真不知道)。
G1也有用户线程与GC线程同时工作的情况,那么是如何进行垃圾收集的,具体怎么实现的。
反正就是问得很细
6.有看过源码嘛?平时怎么学习的。
Java NIO的实现原理。服务端怎么通知客户端来取数据的,具体怎么实现的。
总结:大概50分钟,问得很细,好多知识点以前自己没想的那么深入。还有就是关键那两道算法题,对完全二叉树的特性不够了解,写代码的时候不知道怎么利用特性。面试官提问前都问先问你熟悉什么,然后针对性的提问,深入理解。感觉面试官非常专业,很有耐心,最后建议我以后要去理解一些细节方面的知识点。
#猿辅导##面经##Java工程师#
2.两道算法题。求完全二叉树的最大深度与节点个数,要利用完全二叉树的特性。
3.JUC包下面一些类的原理解析。
ThreadPoolExector
AQS
4.线程池。首先介绍一些工作原理。然后挖一些细节问题。
(1)现在线程池设置的核心线程数为10,最大线程数为100.
问:假如现在有两个线程,1个在工作,1个空闲,又来一个任务,如何运行?
(2)现在线程池里面的线程数已经超过了核心线程数,小于最大线程数。
问:如果线程池里某一个线程执行完任务了,设置的空闲等待时间是1秒,该线程是怎么知道自己到1秒了,然后销毁的。
5.JVM。主要问CMS与G1,问得很细。
比如:CMS工作时,具体怎么标记对象是否可达的。假如现在CMS在进行垃圾收集了,同时用户线程又在工作,会有新的对象分配,那么CMS能否感知到用户线程是否产生了垃圾,本次垃圾收集时候,如何避免回收掉用户产生的新对象(我猜测本次新分配的对象留到下一次GC,但是具体CMS怎么判断出来该对象是新分配的对象,真不知道)。
G1也有用户线程与GC线程同时工作的情况,那么是如何进行垃圾收集的,具体怎么实现的。
反正就是问得很细
6.有看过源码嘛?平时怎么学习的。
Java NIO的实现原理。服务端怎么通知客户端来取数据的,具体怎么实现的。
总结:大概50分钟,问得很细,好多知识点以前自己没想的那么深入。还有就是关键那两道算法题,对完全二叉树的特性不够了解,写代码的时候不知道怎么利用特性。面试官提问前都问先问你熟悉什么,然后针对性的提问,深入理解。感觉面试官非常专业,很有耐心,最后建议我以后要去理解一些细节方面的知识点。
#猿辅导##面经##Java工程师#