JAVA面经—23届秋招面经总结----(三)
沃尔沃 9.18一面(能源优化测试工程师):
1.英文自我介绍
2.英文文献翻译及对于文章的看法
- 内容关于负载均衡算法。(不太了解)
3.空指针异常怎么排查?
-
赋值对象未实例化,造成空指针异常;
-
值为空,未经判断直接赋给对象,造成空指针异常。
4.OutOfMemory异常怎么排查?
- 调用jstat 查看监控 JVM 的内存和 GC 情况,先观察问题大概出在什么区域;
- 使用 MAT 工具载入到 dump 文件,分析大对象的占用情况,比如 HashMap 做缓存未清理,时间长了就会内存溢出,可以把改为弱引用 。
5.String对象怎么创建存放?
- 使用String a = “aaa” ;,程序运行时会在常量池中查找”aaa”字符串,若没有,会将”aaa”字符串放进常量池,再将其地址赋给a;若有,将找到的”aaa”字符串的地址赋给a。
- 使用String b = new String(“aaa”);`,程序会在堆内存中开辟一片新空间存放新对象,同时会将”aaa”字符串放入常量池,相当于创建了两个对象,无论常量池中有没有”aaa”字符串,程序都会在堆内存中开辟一片新空间存放新对象。
6.GC 回收机制介绍
- java中有四种垃圾回收算法,分别是标记清除法、标记整理法、复制算法、分代收集算法。
- 主要对分代收集算法进行了详细地描述,分代即分为:Young区和Old区,Young区中的Elden区满时,触发MinorGC;Old区满时,触发FullGC。
7.TCP与UDP区别、以及分别的适应场景
8.TCP三次握手阶段传递的消息是什么
- 第一次客户端请求建立连接,向服务端发送一个同步报文SYN=1;
- 第二次握手:服务端收到连接请求报文后,如果同意建立连接,则向客户端发送同步确认报文**(SYN=1,ACK=1)**;
- 第三次握手:客户端收到服务端的确认后,向服务端发送一个确认报文ACK=1。
第三次握手是可以携带数据的,前两次握手是不可以携带数据的。
9.手撕:输出字符串中的无重复的第一个字符,最后问算法的时间复杂度与空间复杂度。
一道简单题,卡半天,很尴尬。
10.有无汽车公司的相关工作经验?
无