Java虚拟机:JVM
weixin_46785731
这个作者很懒,什么都没留下…
展开
-
JVM运行时会产生三个ClassLoader,我竟刚知道是什么......
阅读目录 ClassLoader重要方法 类装载工作由ClassLoader及其子类负责,ClassLoader是一个重要的Java执行时系统组件,它负责在运行时查找和装入Class字节码文件。JVM在运行时会产生三个ClassLoader:根装载器、ExtClassLoader(扩展类装载器)和AppClassLoader(系统类装载器)。其中,根装载器不是ClassLoader的子类,它使用C++编写,因此我们在Java中看不到它,根装载器负责装载JRE的核心类库,如JRE目标下的rt.jar、c原创 2020-08-18 14:02:25 · 178 阅读 · 0 评论 -
原来JVM还会分新生代与老年代,不分代不能完成吗?
1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这样就会腾出很大的空间出来。 2.年轻代中的GC HotSpot JVM把年轻代分为了三部分:1个Eden区和2个S原创 2020-08-18 14:02:46 · 243 阅读 · 0 评论 -
通过Java程序中参数传递深入理解JVM之内存区域与内存分配
看到深入两字,相信很多的JAVA初学者都会直接忽略这样的文章,其实关于JVM内存区域的知识对于初学者来说其实是很重要的,了解Java内存分配的原理,这对于以后JAVA的学习会有更深刻的理解,这是我个人的看法。 先来看看JVM运行时候的内存区域 大多数 JVM 将内存区域划分为Method Area(Non-Heap)(方法区),Heap(堆),Program Counter Register(程序计数器),VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的),Native M...原创 2020-08-17 15:06:55 · 207 阅读 · 0 评论