随笔分类 - java JVM
摘要:一、定义 直接内存(Direct Memory)并不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。但是这部分内存也被频繁地使用,而且也可能导致 OutOfMemoryError 异常出现。(即不属于JVM虚拟机内存区域,属于操作系统的内存) 在 JDK1.4 中新引入了
        阅读全文
                
摘要:一、定义 方法区:与java堆一样,是各个线程共享的内存区域。用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据。 和堆一样不需要连续的内存,并且可以动态扩展,动态扩展失败一样会抛出 OutOfMemoryError 异常 该区域的内存回收目标主要是针对常量池的回收和
        阅读全文
                
摘要:一、定义 Java 堆(Heap)(线程共享) 所有线程共享的一块内存区域,在虚拟机启动时创建。 此内存区域的唯一目的就是存放对象实例,“几乎”所有的对象实例都在这里分配内存(用new创建的类变量才是实例) 特点: 它是线程共享的,堆中对象都需要考虑线程安全的问题 有垃圾回收机制,是垃圾回收的主要区
        阅读全文
                
摘要:一、定义 本地方法栈(线程私有)与 java 虚拟机栈类似,它们之间的区别只是虚拟机栈执行 Java 方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的本地(Native)方法服务。 本地方法一般是用其他语言(C、C++ 或 汇编语言等)编写的,并且被编译为基于本机硬件和操作系统的程序,对待
        阅读全文
                
摘要:一、定义 Java Virtual Machine Stacks (Java 虚拟机栈)(线程独享): 虚拟机栈描述的是Java 方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(StackFrame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用到执行完成的过程,
        阅读全文
                
摘要:参考:https://www.cnblogs.com/newAndHui/p/11878504.html 一、定义 Program Counter Register 程序计数器(寄存器)(线程独享):程序计数器是一块 较小 的内存空间,它可以看做是当前线程所执行的字节码的 行号指示器 ;在虚拟机的概
        阅读全文
                
摘要:转载:https://zhuanlan.zhihu.com/p/48487801 ps:Java11 以后没有单独的jre 一、三者的关系 首先 三者之间存在包含关系 JVM + 核心类库 = JRE JRE + java开发工具(javac.exe/jar.exe) = JDK 二、JVM Jav
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号