目录:
1.String、StringBuffer、StringBuilder区别以及使用场景?
2.怎样去声明一个类不会被继承,什么场景下使用?
3.自定义异常在生产中是如何使用的?
4.ABA问题?
5.Class初始化过程是什么?
6.ConcurrentHashMap底层原理是什么?
7.GC 如何判断对象可以被接受?
8.Java类加载器有哪些?
9.JVM8为什么要增加元空间?
10.jvm有哪些垃圾回收器?实际中如何选择?
12.程序适合开多少线程?
13.创建线程的方式有哪些?
14.线程的声明周期和状态?
15.如何预防死锁?
16.内存溢出的原因有哪些?,如何排查线上问题?
17.什么是守护线程?
18.什么是字节码?以及它的组成?
19. 双亲委派机制是什么?
20.为什么要使用线程池?
1.String、StringBuffer、StringBuilder区别以及使用场景?


2.怎样去声明一个类不会被继承,什么场景下使用?

比如Math类:

构造器被private修饰,那么这个Math类就不能再外界构造对象了,但是它的属性方法都加了一个static来修饰,那么就可以通过类名.方法名(类名.属性名)的方式来调用,根本不用借助对象了,这个Math类的设计是非常巧妙的
3.自定义异常在生产中是如何使用的?

4.ABA问题?

5.Class初始化过程是什么?


6.ConcurrentHashMap底层原理是什么?


7.GC 如何判断对象可以被接受?


8.Java类加载器有哪些?



9.JVM8为什么要增加元空间?




10.jvm有哪些垃圾回收器?实际中如何选择?





11.synchoronized和lock有啥区别?


12.程序适合开多少线程?
13.创建线程的方式有哪些?




14.线程的声明周期和状态?




15.如何预防死锁?

16.内存溢出的原因有哪些?,如何排查线上问题?


17.什么是守护线程?

18.什么是字节码?以及它的组成?




19. 双亲委派机制是什么?



20.为什么要使用线程池?
21.线程的sleep、wait、join、yield如何使用?



