1、JVM运行时内存区域划分;
答: 1.堆, 2.虚拟机栈 3.本地方法栈,4.方法区,5.程序计数器
程序计数器:1.小 2. 记录当前线程所执行的字节码的行号指示器,选取下一条执行的字节码 3.线程私有。
java虚拟机栈:1.线程私有,生命周期与当前线程相同。 2.存储局部变量表、操作栈、动态链接、方法出口。 3.栈大小在编译器完成。
本地方法栈:1.虚拟机使用Navicat的
堆: 1. 大 2.所有线程共享 3.存放对象实例
方法区:1.各个线程共享 2.存放已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码。
2、GC分哪两种,Minor GC 和FullGC有什么区别?分布采用什么算法?
3、JVM里的有几种classloader,为什么会有多种?
4、什么是双亲委派机制?介绍一些运作过程。
5、什么反双亲委派模型,过程?
6、线程池的原理,为什么要创建线程池?线程池的二级调度策略?
参考:https://blog.csdn.net/he90227/article/details/52576452
答: 服务器完成一个线程,从线程创建、使用、销毁三部分,而线程池为了减少线程创建和销毁的时间。
线程池的4个部分:
1.线程池管理器(ThreadPool):用于创建并管理线程池,包括创建线程池、销毁线程池、添加任务。
2.工作线程(poolWorker):线程池中的线程,在没有任务处于等待状态,可以循环执行任务。
3.任务接口(Task):每个任务必须实现的接口,任务的具体实现。
4.任务队列(taskQueue