作者:秃头少女学Java
链接:https://www.nowcoder.com/discuss/480625?type=post&order=time&pos=&page=1&channel=-2&source_id=search_post
来源:牛客网
一面
-
比赛经历、获奖情况
-
兴趣爱好、最近在看什么 🙋 :我在看《java并发编程的艺术》这本书。接下来问题轰炸
-
Java内存模型介绍一下?
-
内存间交互操作有什么?他们有顺序关联吗?
-
Java怎么实现可见性的?
-
Volatile是怎么保证内存可见性的?他的常见用途有什么?
以上几题参考文章:https://zhuanlan.zhihu.com/p/29881777
读完文章总结一下就能回答。
-
实现锁的方法有什么(提到了synchronized、Lock接口以及AQS)
-
synchronized 和 lock的区别(synchronized都是可重入的,差点说错)
关于锁:https://blog.csdn.net/Longtermevolution/article/details/107366014
-
synchronized是怎么保证可重入的?
https://blog.csdn.net/mulinsen77/article/details/88632409
重入锁实现可重入性原理或机制是:
每一个锁关联一个线程持有者和计数器,当计数器为 0 时表示该锁没有被任何线程持有,那么任何线程都可能获得该锁而调用相应的方法;当某一线程请求成功后,JVM会记下锁的持有线程,并且将计数器置为 1;此时其它线程请求该锁,则必须等待;而该持有锁的线程如果再次请求这个锁,就可以再次拿到这个锁,同时计数器会递增;当线程退出同步代码块时,计数器会递减,如果计数器为 0,则释放该锁。
-
线程池的五大参数、拒绝策略、核心线程是一个一个创建的吗?
五大参数、拒绝策略:https://blog.csdn.net/u013044816/article/details/108078817
线程池相关:https://zhuanlan.zhihu.com/p/73990200
-
线程池的关闭方法、有何不同?
https://zhuanlan.zhihu.com/p/150260386
-
线程池的 5 大状态
https://www.cnblogs.com/-wyl/p/9760670.html
-
线程的 6 大状态、BLOCKED状态可以和WAITING相互转换吗?
https://www.zhihu.com/question/56494969/answer/154053599
-
线程的实现方式?(被教育说Callable不算一类)
https://zhuanlan.zhihu.com/p/47401636
-
Thread、Runable的区别?
-
new一个对象 和JVM内存区域哪些地方有关联?
https://zhuanlan.zhihu.com/p/101031254
-
创建一个对象的过程是原子的吗?
-
方法区是怎么保存类信息、常量之类的
-
偏向锁、什么场景会用到
-
对象头里面哪部分和锁有关?对象头里class对象指针是干嘛的?
-
StringBuffer 用锁吗?性能开销?怎么解决? (提到了锁粗化)
-
int 和 Integer判断
-
boolean a = true; a == true的区别?
-
你有什么想问我的?
二面
-
自我介绍
-
关于我搭的博客网站,涉及到了知识点:springboot、maven、表单提交、session、get&post。还有很多零散问题,记不太清了
-
数据库主从复制、常用算法
-
网站的搜索引擎
-
大型网站优化
-
集群
-
反问环节