![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
J-Proton
这个作者很懒,什么都没留下…
展开
-
JAVA类加载器总结
一个java类在系统中要面临编译和运行两种过程 编译是指将java文件通过javac命令转换为字节码生成 .class文件 而运行是将.class文件交给jvm虚拟机运行。 类的加载就是运行的初期,jvm加载.class文件,解析生成对应的class对象,并把相关类的信息加载到内存里。 jvm是加载类是按需加载,如果得到一个类,经过在自己的class文件中找不到相关的信息,他才会加载 类的加载过程...原创 2019-11-09 20:37:09 · 228 阅读 · 0 评论 -
Java 虚拟机 垃圾回收
如何判断对象已是垃圾 引用计数法 引用计数法实现简单,判定效率也很高,但是JAVA虚拟机并没有用引用计数法来判断对象是否存活 原理:给对象中添加一个引用计数器,每当一个地方引用他的时候,计数器的值就加一,当引用失效时就减一,任何时刻计数器为0时对象就是不可能被使用的。 缺点:对于两个互相引用的对象无法当做垃圾收集,虽然他们再无任何引用。 可达性分析算法 原理: 通过一系列的称为“GC Roots”...原创 2019-12-16 19:52:16 · 131 阅读 · 0 评论 -
Java JVM 内存溢出Oom
Java 虚拟机的默认内存分配: -Xms 设置初始化默认内存,初始默认为物理内存的1/64 -Xmx最大分配内存,初始为物理内存的1/4 验证: 本机的实际内存为16G: public class Test { public static void main(String[] args) { long maxMemory = Runtime.getRuntime().ma...原创 2019-12-07 16:05:49 · 220 阅读 · 0 评论 -
java JVM 对象与内存
对象的创建 一 判断是否需要类加载 虚拟机遇到new 指令时,先去常量池中检查有没有这个类的符号引用,并且检查这个符号引用代表的类是否已被加载,解析和初始化过。如果没有,必须先执行类加载过程 二 对象内存的分配 在确定了对象的空间大小之后,为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。 分配的方法有两种,取决于Java堆所采用的垃圾收集器是否带有压缩整理。 如果用Seria...原创 2019-12-05 22:32:46 · 171 阅读 · 0 评论 -
java JVM 系统架构
类加载器 这里写过: https://blog.csdn.net/qq_30519765/article/details/102990891 本地方法接口 本地方法接口的作用是融合不同的编程语言为java所用,因为当一些功能必须调用c++本地方法是,所以就在内存中专门开辟出一块区域处理标记为native的代码 ...原创 2019-12-04 21:08:09 · 129 阅读 · 0 评论