1、 自我介绍
2、String 类型为什么是final类型?String 为啥不可变?
String 类型是final类型原因:
1.不可变性支持线程安全(为了线程安全)
2.不可变性支持字符串常量池,提升性能(为了实现字符串池)
3.String字符串作为最常用数据类型之一,不可变防止了随意修改,保证了数据的安全性。(为了实现String可以创建HashCode不可变性)
String 不可变的原因:
String类被final修饰,是不可继承和修改的。当一个String变量被第二次赋值时,不是在原有内存地址上修改数据,而是在内存中重新开辟一块内存地址,并指向新地址。
注意:final修饰的String,代表了String的不可继承性,final修饰的char[]代表了被存储的数据不可更改性。但是:虽然final代表了不可变,但仅仅是引用地址不可变,并不代表了数组本身不会变
看如下图:
3、HashMap实现底层原理结构是怎么实现
4、java 内存泄漏 的问题,你是如何查询定位的
5、SpringMVC的实现原理
6、spring 事物实现原理
7、Java 线程的 run 和start 方法的区别
8、 Java线程池的原理
9、 数据库的悲观锁和乐观锁的实现
10、项目使用什么设计模式
11、假如你们系统在高并发的情况下,处理多个大数据量请求的情况下,你们系统是如何设计的