大厂小米面试题(含部分答案)-20210301
算法题
1.饿汉模式的两种写法,一个方法块的,一个代码段的
2.怎么判断一个链表有没有回环,讲述时间复杂度和空间复杂度(一定要判断是否为空,在算法题中,会有加分)
基础
1.protected的访问范围是什么,private和protected的区别是什么
2.volatile的原理,保证了多线程的什么特性?
-
可见性,有序性,有序性中的可见性,有序性。
3.synchronized会导致死锁吗?什么情况下会出现死锁的情况
-
互斥:共享资源X被T1占用时,其他线程不允许使用共享资源X 占有且等待:线程T1占有共享资源X,在等待共享资源Y的时候,不释放共享资源X 不可抢占:其他线程不可抢占T1线程的资源 循环等待:T1等待T2占有的资源,T2等待T1占有的资源
4.死锁的发生条件是什么?
-
同时满足以上四个条件
5.有什么情况可以识别出多线程情况是否发生了死锁的情况
-
jstack查看 通过Jconsole分析快照
6.synchronized可以修饰什么
上一篇:
Java基础知识总结(2021版)
下一篇:
阿里2019秋招一面(Java研发岗)