JVM
JVM(Java Virtual Machine,Java虚拟机)
1.什么是JVM
JVM相对Java来说是一个操作系统,相对程序员来说JVM是一个进程。因此他也有他自己的运行生命周期,也有自己的代码和数据空间.JVM包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。
2.Java的跨平台特性
java的跨平台特性主要是因为Java编译过后的文件会转为字节码文件,而字节码文件可以在任何具有jvm的计算机或者电子设备上运行。
3.内存模型
方法区:也叫永久区,用于存储已经被虚拟机加载的类信息,常量,静态变量(static变量)等数据。
堆:Java堆是程序员需要重点关注的一块区域,因为涉及到内存的分配与回 收;
栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中。
本地方法栈:Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法(一般非Java实现的方法)的调用。
程序计算器:每个线程都有自己的程序计数器这样当线程执行切换的时候就可以在上次执行的基础上继续执行,仅仅从一条线程线性执行的角度而言,代码是一条一条的往下执行的,这个时候就是程序计数器。