1、ThreadLocal有什么缺陷?如果是线程池里的线程用ThreadLocal会有什么问题?
答案:
threadlocal 实现原理是:map<thread,threadlocalmap<>>可以避免出现资源竞争从而导致效率低下。
threadlocalmap<threadlocal,T> (自定义实现,没map)entry===extends WeakReference 既继承了弱引用,当threadlocal不再引用时且jvm进行GC时就会回收对应的entry,同时当threadlocal.set(value)或thread local.get()或remove时,都会回收不再使用的entry。
缺陷:threadlocal线程还存活,但是引用了大的对象,该对象无法被清除,会引起OOM。closablethreadlocal解决了该问题。
线程池里用threadlocal要注意线程会被复用,当线程结束时,记得清楚该thradlocal避免用了上一个线程的value。
2、.类的加载机制,为什么要用双亲委托?如何打破双亲委托加载机制
bootstrap classloader、ext classloader、system classloader
第一次破坏:重写loadclass方法
第二次破坏:线程上下文加载器(重点)getcontextclassloader 核心类调用基础类加载应用代码
第三次破坏:osgi实现模块化热部署
3、poll和epoll机制。
4、minor、major、full gc
5、IO流的层次结构
6、常用的异常类型:
答案:Throwable-》Error,IOexception、RuntimeException。
算数异常、类转换异常、非法参数异常、越界异常、空指针异常、安全异常;
7、fileinputstream没有close怎么重新读文件?
答案:反射机制调用fileinputstream类下面的open0方法,setaccissble(true).
8 、Spring的加载过程
9、try-catch的语法糖?
10、atomic 与 volatile的区别?
11、Thread的 notify()给notifyAll()的区别?
12、shutdown和shutdownnow的区别?
13、hashmap深入理解?
答案:关键字:resize()、hashcode/equals;需要深入看一下hashmap全家桶
https://github.com/crossoverJie/Java-Interview
14、一堆基本有序的数组,归并排序效率最高。
15、双亲委派模型的优点?
答案:双亲委派模型保证了类在各种加载环境中的加载顺序,保证了加载安全性,防止不可信类扮演可信类。
16、几个线程访问同一个对象,怎么能保证安全?
17、happen-before原则?
18、jdk动态代理和cglib实现的区别?
19、你将如何使用thread dump?你将如何分析Thread dump?
kill -3
20、微信红包怎么实现?(临时准备吧)
21、秒杀架构实现?(跟微信红包一样重要)
22、线程安全的定义?
23、红黑树学习一下?
24、集合类手撕?(临时准备可以)
25、
面试题归纳总结:
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...