jvm全称 java virtual machine (java虚拟机),也就是在计算机上再虚拟一个计算机,它存在于计算机内存中并运行在操作系统之上的。 javap -v class文件名 > 输出文件名 命令:将class文件,翻译成可读懂的字节码指令文件,里面包含了各种各样的指令。 字节码文件( ...
分类:
其他好文 时间:
2019-03-03 09:54:33
阅读次数:
162
1、程序计数器 1.1 一块较小的内存空间、可以看作是当前线程所执行的字节码的行号指示器; 1.2 在JVM的概念模型中,字节码解释器的作用:通过改变程序计数器的值来选取下一条需要执行的字节码指令(分支、循环、异常处理、线程恢复等基础功能 都需要依赖程序计数器来实现); 1.3 JVM的多线程实现方 ...
分类:
其他好文 时间:
2019-02-12 17:18:29
阅读次数:
168
类的生命周期 加载,验证,准备,初始化,卸载这五个过程顺序是固定的 类加载时机 new、getstatic、putstatic、invokestatic这4个字节码指令时对类进行初始化(即:实例化对象、读写静态对象、调用静态方法时,进行类的初始化) 使用反射机制对类进行调用时,进行类的初始化 初始化 ...
分类:
其他好文 时间:
2019-02-10 17:35:57
阅读次数:
190
java内存区域 Java虚拟机执行java程序时会将管理的内存划分为若干个区域: 1. 程序计数器 程序计数器是一个”线程私有“的内存区域,用于获取下一条需要执行的字节码指令,如分支、循环、跳转等。 2. Java虚拟栈 在Java内存划分的时候,经常会听到将其分为”堆内存“和”栈内存“,这种分法 ...
分类:
编程语言 时间:
2019-01-21 22:50:30
阅读次数:
200
java虚拟机规范虽然没有强制性约束在什么时候开始类加载过程,但是对于类的初始化,虚拟机规范则严格规定了有且只有四种情况必须立即对类进行初始化,遇到new、getStatic、putStatic或invokeStatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这4条指令 ...
分类:
编程语言 时间:
2019-01-20 14:06:08
阅读次数:
185
JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细... ...
分类:
编程语言 时间:
2019-01-17 20:04:02
阅读次数:
183
JVM下的内存分布: 1.程序计数器:每一个线程都有一个程序计数器,执行java方法时,计数器存放着正在执行的虚拟机字节码指令的地址,执行Native方法时,计数器为空。 2.栈:线程私有,生命周期与线程的生命周期相同,内存空间在编译期完成分配,运行时不会改变。 3.堆:堆是被所有线程共享的一块内存 ...
分类:
其他好文 时间:
2019-01-14 23:13:06
阅读次数:
217
一、Java运行时数据区域 1、程序计数器 “线程私有”的内存,是一个较小的内存空间,它可以看做当前线程所执行的字节码的行号指示器。Java虚拟机规范中唯一一个没有OutOfMemoryError情况的区域。 字节码解释器工作时就说通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、 ...
分类:
编程语言 时间:
2019-01-12 00:28:30
阅读次数:
252
程序计数器 1、 线程所执行的字节码的行号指示器; 2、JVM的多线程是通过线程轮流切换并分配处理器执行时间的方式; 3、 每条线程都需要有一个独立的程序计数器,所以是线程私有的内存区域; 4、 执行Java方法,记录的是正在执行的虚拟机字节码指令的地址; 5、 执行Native方法,计数器值为空; ...
分类:
其他好文 时间:
2019-01-06 18:10:46
阅读次数:
181
按照Java虚拟机规范的规定, JVM自动管理的内存将包括以下几个运行时的数据区域: 下面分别对几个数据区域进行说明: 1.程序计数器 程序计数器是JVM中一块较小的内存区域, 保存着当前线程执行的虚拟机字节码指令的内存地址. Java多线程的实现, 其实是通过线程间的轮流切换并分配处理器执行时间的 ...
分类:
其他好文 时间:
2019-01-03 14:07:45
阅读次数:
176