Java
一、jvm模块
-
jvm是什么?
是一用用于计算设备的规范,虚构出来的计算机,在计算机上仿真模拟各种计算机功能来实现
-
jvm 作用是什么?
java中所有类必须装载jvm中才能运行,这个装载工作有jvm装载器完成,.class类型文件能在jvm虚拟器中运行,但不能直接在系统中运行,需要jvm解释给系统,同时需要java类库,这就是人机交互,jvm作用
-
jvm内存模型
方法区(线程共享) 常量,静态变量 以及方法信息(修饰符,方法名,返回值,参数等)、类信息等 堆(线程共享) 实例对象, 内存最大的一块 栈(虚拟机栈-线程私有) 生命周期、线程结束,栈内存就释放了,主要存储 8大基本类型 + 对象饮用 + 实例方法 本地方发栈 线程隔离 主要就是Java里面 native修饰的方法,指责与虚拟机栈一样,只不过针对的是 c++曾 程序计数器 线程隔离 保存的是 jvm指令集,程序计数器总是指向下一条指令地址,生命周期与线程生命周期一样
-
类加载器都有哪些?这里只介绍java
bootstrap classloader: 引导类加载器 c++编写,用于家在java核心库,jir/lib目录下jar包,无法直接获取 Extension classloader:扩展类加载器 负责jir/lib/ext目录下jar包 或 -D java.ext dirs 制定目录下的jar包 Application classloader 系统类加载器,负责 java-classpath 或 -D java classpath制定目录下的jar包 Custom classloader 自定义类加载器