Java常见面试题(第三弹)

欢迎关注我的个人公众号:小谢backup

1、throw 和 throws 的区别?

throw:真实抛出一个异常。
throws:声明可能会抛出一个异常。

 

2、spring 常用的注入方式有哪些?

setter 属性注入
构造方法注入
注解方式注入

 

3、JVM有哪些垃圾回收器?

Serial

Serial Old

ParNew

Parallel

Parallel Old

CMS

G1

 

4、堆用来放什么?

对象实例

数组

 

5、类加载分为几个步骤?

加载、验证、准备、解析、初始化。最后是使用和卸载

 

6、如何判断一个对象是否存活?

引用计数法(循环引用问题)
引用链法

 

7、给对象分配堆内存的方式有哪些?

如果堆内存规整,采用"指针碰撞";
如果堆内存不规整,采用"空闲列表"

 

8、访问对象有哪些方式?

句柄
直接指针

 

9、并发创建对象时,有什么处理策略?

1)同步处理
2)本地线程分配缓冲区

 

10、出现线程安全问题的原因有哪些?

线程切换带来的原子性问题
缓存导致的可见性问题
编译优化带来的有序性问题

posted @ 2021-05-18 22:27  小谢backup  阅读(32)  评论(0)    收藏  举报