摘要: 1、JVM内存模型 总结:可以发现最明显的一个变化是元空间从虚拟机转移到了本地内存。默认情况下,元数据空间大小仅受限于本地内存, 这意味着以后不会因为永久代大小不够而抛出OOM异常了。 jdk1.8以前,HotSpot VM将class和类的jar包数据存储在PermGen里, PermGen大小是 阅读全文
posted @ 2019-08-13 15:53 北方有鱼 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 原文转自: https://blog.csdn.net/Strong997/article/details/80033787 1、GC 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中 阅读全文
posted @ 2019-08-13 15:47 北方有鱼 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1. 一段java程序是如何运行起来的呢? Java源文件,通过编译器,产生.Class字节码文件,字节码文件通过Java虚拟机中的解释器,编译成特定及其上的机器码,那Java虚拟机又是怎样加载java程序并执行起来的呢?简单来说:通过类加载器加载字节码文件,被分配到JVM的运行时数据区的字节码会被 阅读全文
posted @ 2019-08-13 14:32 北方有鱼 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 本文转自:https://www.jianshu.com/p/d2d806ca7859 1.对象的创建 虚拟机接收到new指令时,检查这个指令能否在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化。如果都没有,先执行类加载过程。 在类加载通过后,虚拟机为新对象分 阅读全文
posted @ 2019-08-13 13:00 北方有鱼 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 1、什么是jvm? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 2、jvm 运行时数据区域 堆和方法区是所有线程共有的。 虚拟机栈,本地方法栈和程序计数器则 阅读全文
posted @ 2019-08-13 12:56 北方有鱼 阅读(126) 评论(0) 推荐(0) 编辑