关注
1. synchronized和volatile原理与场景
synchronized通过监视器锁保证原子性与可见性,底层对应monitorenter/exit指令,用于方法或代码块同步。volatile通过内存屏障保证可见性与禁止指令重排,仅修饰变量,常用于状态标志或双重检锁场景。
2. 双重检锁单例
首次判空避免每次加锁,同步块内再次判空确保唯一实例。需用volatile修饰实例,防止初始化时“分配内存-初始化-赋值”步骤重排导致其他线程获得未初始化对象。
3. volatile防止的指令重排
在`instance = new Singleton()`中,防止“1.分配对象内存、2.初始化对象、3.引用指向内存”这三步被重排序为1-3-2,从而避免返回半初始化状态的对象。
4. JVM分代年龄
对象在Survivor区每经历一次Minor GC则年龄加1,年龄存储在对象头中。默认达到15岁时会晋升老年代(CMS收集器默认为6岁)。
5. “15次”概念
指对象晋升老年代的年龄阈值(MaxTenuringThreshold默认值15)。是Young GC时对象在Survivor区间复制的次数上限,超过即进入老年代,避免在年轻代过度复制。
6. 项目调优经验
常见如调整堆大小及各区域比例、选择G1/CMS等收集器、或通过日志及监控定位Full GC/OOM原因。例如通过调整SurvivorRatio优化对象在年轻代的留存时间。
8. 旋转有序数组搜索
核心是二分查找变体。先判断mid左右哪部分有序,再检查target是否在有序区间内,以此决定搜索方向。需注意边界条件,如`numsleft <= numsmid`时左半部有序。
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 我的求职进度条 #
985485次浏览 6544人参与
# 携程笔试 #
153609次浏览 890人参与
# 厦门银行科技岗值不值得投 #
18978次浏览 422人参与
# 米哈游工作体验 #
29925次浏览 145人参与
# 拼多多集团-PDD笔试 #
64496次浏览 486人参与
# 哪些公司一直卡在简历筛选 #
105847次浏览 361人参与
# 中国电信笔试 #
40790次浏览 399人参与
# 拿到offer之后,可以做些什么 #
104811次浏览 511人参与
# 入职第一天,你准备什么时候下班 #
118256次浏览 516人参与
# Agent面试会问什么? #
38846次浏览 1424人参与
# 一人分享一个skill #
10024次浏览 243人参与
# 说说你知道的学历厂 #
401651次浏览 1433人参与
# 春招至今,你收到几个面试了? #
101542次浏览 1261人参与
# 选实习,你更看重哪方面? #
76816次浏览 505人参与
# 拼多多工作体验 #
55394次浏览 389人参与
# 记录实习开销 #
214542次浏览 1747人参与
# 你觉得专业和学校哪个对薪资影响最大 #
104550次浏览 620人参与
# 给工作过的公司写一条大众点评,你会怎么写? #
12544次浏览 144人参与
# TCL求职进展汇总 #
152329次浏览 665人参与
# 通信/硬件的薪资开多少,才值得去? #
76797次浏览 407人参与
# 面试体验最好和最差的公司 #
25633次浏览 171人参与
查看22道真题和解析