JVM的核心内容
程序员文章站
2022-07-10 19:07:44
1.JVM对于java程序员的重要性可以用一下两句话来概述1.1 关于任何java的技术问题都可以追溯到java虚拟机里面去1.2 一个Java程序员水平的高低就看你对Java虚拟机这个东西有多了解2.了解JVM需要先理解jdk与jre的关系2.1 jdk是开发工具包2.2 jre是程序运行时的环境2.3 JVM与java应用程序是一对一的关系3.JVM的作用3.1 跨平台3.1.1 java通过编译成抽象的指令(java字节码),用不同版本的java虚拟机来实现运行时...
1.JVM对于java程序员的重要性可以用一下两句话来概述
1.1 关于任何java的技术问题都可以追溯到java虚拟机里面去
1.2 一个Java程序员水平的高低就看你对Java虚拟机这个东西有多了解
2.了解JVM需要先理解jdk与jre的关系
2.1 jdk是开发工具包
2.2 jre是程序运行时的环境
2.3 JVM与java应用程序是一对一的关系
3.JVM的作用
3.1 跨平台
3.1.1 java通过编译成抽象的指令(java字节码),用不同版本的java虚拟机来实现运行时的解释(如下图所示)
3.1.2 Java字节码=抽象的指令
3.1.3 JVM负责编译抽象的指令
3.1.4 编程语言运行时都是要靠调用windos操作系统底层的函数才能实现
3.1.5 JVM内部里面有一个JIT解释器,这个JIT解释器碰到一个字节码就把他翻译成一个能让操作系统识别的机械码,就是用来存放热点代码,也就是做缓存用的,用来提高程序运行的效率
3.2 自动内存管理
3.2.1 java虚拟机里面有一个垃圾回收器
3.2.2 垃圾回收器回收的是不被任何引用的对象占据的内存空间,而不是对象本身
4.JVM怎么启动的
4.1 java.exe------>2.jvm.dll------>3.rt.jar------>4.自己编写的main()
java.exe:程序入口
.dll Dynamic Link library动态链接库,一般用C语言开发的
jvm.dll(虚拟机本身) 负责向我们的操作系统去申请,我要产生一个新的进程,
你操作系统要给我分配一些内存,所以当加载到jvm.dll的时候,
意味着虚拟机开始在操作系统上面产生一个进程了,
虚拟机的内存空间他就有了
rt.jar (核心类库)
5.JVM的总体架构
5.1 你对下面这张图有一定的了解了,你就对JVM内部有一定的了解了
类加载器:就是负责把class文件里面的类装载到方法区里面去
方法区(Method Area):是系统分配的一个内存逻辑区域,是JVM装载类文件时,用于储类型信息的(类的描述信息)
堆(Heap):用于存放有new创建的对象和数组,在堆中分配的内存,由java虚拟机自动垃圾回收器来管理
虚拟机栈:(VM Stack):线程工作的地方(线程的办公桌)
栈:线程执行代码的地方,它的特点是先进后出,与它相反的是队列(先进先出)
程序计数器(:Program Counter Register):用来记录线程工作的日志(秘书)
本文地址:https://blog.csdn.net/qq_48257717/article/details/107459007
上一篇: 设计模式之中介者
下一篇: java笔记_多态的相关使用