源码技术
php
java
python
Linux
当前位置:
首页
>
java
>突然发现会面试的Java前同事真的好会说啊..
突然发现会面试的Java前同事真的好会说啊..
2026-08-25 09:59:16
突然发现会面试的Java前同事真的好会说啊..
很厉害的java同事离职了,跳槽到了一家更好的公司,笔试面试都是一把过,同事人太好了,直接自己总结好的笔试题都给我发来了,大致看了下真的很有用,大四准备找工作或者是想年末跳槽的,可以直接照着背!
.
1、HashMap的扩容机制是啥?JDK1.8做了啥优化?
普通回答:到负载因子就扩容,大概两倍。1.8加了红黑树。
✅高分回答:触发扩容是看元素数量 > 容量 * 负载因子。核心优化有三点:一是数据结构,链表过长(>8)且数组够长(>=64)会转成红黑树,防止超长链表影响查询效率;树节点过少(<=6)时再转回链表。二是插入方式,1.7是头插法(多线程下可能死循环),1.8改成了尾插法。三是扩容算法,1.8通过高位运算(e.hash & oldCap) == 0来判断元素新位置,要么在原下标i,要么在i + oldCap,避免了1.7中全部重新计算哈希,效率更高。
.
2、Spring的@Transactional在哪些常见场景下会失效?
普通回答:异常不对、方法不是public可能会失效。
✅高分回答:失效本质是Spring AOP代理没生效。常见坑有:一是自调用,类里A方法没加注解,调了本类有注解的B方法,这叫“自调用”,事务不生效,因为调用没走代理对象。二是异常被吃了,默认只回滚RuntimeException和Error,如果你在方法里try-catch了异常却没抛出去,或者抛了Exception这种受检异常,都不会回滚。三是方法非public,@Transactional基于代理,对非public方法不好使。四是数据库引擎,比如MySQL用了MyISAM,它本身就不支持事务。
.
3、线上服务CPU突然飙升到100%,你的排查思路是啥?
普通回答:重启一下,或者看看日志。
✅高分回答:这是标准操作题。第一步定位进程和线程:用top找到最耗CPU的Java进程PID,再用top -Hp
[PID]
找到这个进程里最耗CPU的线程ID(TID)。第二步看线程在干嘛:把TID转成16进制,然后用jstack
[PID]
打印所有线程栈,在输出里搜这个16进制ID,就能看到是这个线程的哪行代码、执行哪个方法最吃CPU。第三步结合分析:如果是GC线程疯狂跑,就用jstat -gcutil
[PID]
看是不是频繁Full GC;如果是业务线程,大概率是代码里有死循环或者计算太密集的逻辑。用Arthas的thread命令能更快定位热点方法。
#java
#编程
#计算机专业
#后端开发
#java学习
#java面试
#程序员
#计算机
#前端后端开发
#应届生
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:596563534@qq.com 。
Python常见的36种配图代码实现!
Linux终端快捷键你知道哪些
最新文章
Python常见的36种配图代码实现!
Java 17入门进阶,这套Oracle官方教材很系统
我愿称之为最强阅读神器——Readest
英文好的Java 看过来
安装Win + Linux双系统
非常值当的嵌入式软件linux咨询
个人健康管理系统,拿走不谢!
苹果风|车圈就它玩明白了,还有B&O音响
面了几个Java转AI应用开发的,给我整无语了
带了一个不熟悉Linux的实习生,好崩溃!
热门文章
Java后端完整学习路线‖干货整理
100 个 Python 基础语法(零门槛学)
一图秒懂,linux根目录功能介绍
我的世界Java服务器招新!
纯Linux初体验
Java開発案件
0基础进!和Chiikawa一起3分钟搞定Java入门
Java 8 比 17 活得还长?🤯
python爬虫项目
程序员在线接单,定制前后端分离web项目
随机文章
10个月宝宝每天需要喝多少奶粉?
测开环境配置笔记
挑战四个月速通Java实习 36/120
JAVA交流群,有面试与系统学习资料
有没有java大神
java后端offer帮选
java水了一学期,3h刷完期末考试题库包90+
过来人再强调一次:Java后端好工作不在boss
带了个Java后端新人,啥也不会,真的太水了
PHP大实践:校园快递管理系统
RMB to PHP