1.介绍一下springloc的情况,解决了什么问题?
2. String为什么设计为Final的,是为了解决什么问题?
3. String和String Buffer有什么区别?
4.介绍一下NIO,为了解决什么问题?
5. spring是怎么解决依赖循环的?
6. 介绍一下Class文件?
7. Java热部署是怎么做的?
8. 虚拟机的垃圾收集算法和常用的垃圾收集器
9. spring核心模块有哪些?
10. springaop有什么用?解决了什么问题?
11.mysql的隔离级别有哪些?
12. mysql常用的存储引擎有哪些?有什么区别?
13.mysql的binlog和redoLog有什么区别?
14. es用过吗?倒排索引说一下?
15.数据库的数据有2亿数据,有50列,每天会加200万数据,为什么插入数据会慢?如何解决这个问题?
16. linux用的熟吗?连接到inux的命令,查询文件的命令,批量查询数据的命令,grep
1.介绍一下springloc的情况,解决了什么问题?
IOC 翻译过来就是控制反转,对象的创建、配置和生命周期,都交给 Spring 容器来管理,且不需要人工来管理对象之间的复杂关系。
好处:解耦。
Spring 提供了两种 IOC 容器:BeanFactory 和 ApplicationContext。
2. String为什么设计为final的,是为了解决什么问题?
final + private 修饰,保证 String 不可变。
String 类被 final 修饰导致其不能被继承,进而避免了子类破坏 String 可变。
_public final class _String
�
首先,String是引用类型,也就是每个字符串都是一个String实例。通过源码可以看到String底层维护了一个byte数组:private final byte[] value;(JDK9中为byte数组,并非网上所说的char数组)。虽然该数组被修饰为final,但这并不能保证数组的数据不会变化,因此还需要声明为private防止被其他类修改数据。
Java 8
private final char value[];

Java 9
private final byte[] value;
关于 final:
被 final 关键字修饰的类不能被继承,被修饰的方法不能被重写,被修饰的变量是基本数据类型则值不能改变,被修饰的变量是引用类型则不能再指向其他对象。
3. String和String Buffer有什么区别?
线程安全性
String 中的对象是不可变的,也就可以理解为常量,线程安全。AbstractStringBuilder 是 StringBuilder 与 StringBuffer 的公共父类,定义了一些字符串的基本操作,如 expandCapacity、append、insert、indexOf 等公共方法。StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。StringBuilder 并没有对方法进行加同步锁,所以是非线程安全的。
性能
每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象。StringBuffer 每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象并改变对象引用。相同情况下使用 StringBuilder 相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升,但却要冒多线程不安全的风险。
对于三者使用的总结:
- 操作少量的数据: 适用 String
- 单线程操作字符串缓冲区下操作大量数据: 适用 StringBuilder
- 多线程操作字符串缓冲区下操作大量数据: 适用 StringBuffer
非阻塞 IO,解决 BIO 的线程阻塞问题。
4.介绍一下NIO,为了解决什么问题?
5. spring是怎么解决依赖循环的?
6. 介绍一下Class文件?
7. Java热部署是怎么做的?
8. 虚拟机的垃圾收集算法和常用的垃圾收集器
9. spring核心模块有哪些?
10. springaop有什么用?解决了什么问题?
11.mysql的隔离级别有哪些?
12. mysql常用的存储引擎有哪些?有什么区别?
13.mysql的binlog和redoLog有什么区别?
- es用过吗?倒排索引说一下?
15.数据库的数据有2亿数据,有50列,每天会加200万数据,为什么插入数据会慢?如何解决这个问题?
- linux用的熟吗?连接到inux的命令,查询文件的命令,批量查询数据的命令,grep
