笔筒虫
笔筒虫
全部文章
《深入理解Ja...
Java多线程&并发(13)
Java常用类库(5)
Java常识(6)
Java虚拟机(6)
MySQL数据库(7)
《深入理解Java虚拟机》读书笔记(7)
剑指offer题解(13)
未归档(65)
算法基础(5)
计算机操作系统(3)
计算机网络(6)
通过UML和小DEMO学习设计模式(10)
归档
标签
去牛客网
登录
/
注册
笔筒虫的博客
全部文章
/ 《深入理解Java虚拟机》读书小册
(共8篇)
十五:运行时栈帧结构
栈帧( Stack frame) 用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)s的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在...
2019-06-08
0
849
十四:类加载的过程
加载->验证->准备->解析->初始化 1.加载 比如运行时计算生成,这种场景使用得最多的就是动态代理技术,在java.lang.reflect.Proxy中,就是用了ProxyGenerator.generateProxyClass来为特定接口生成形式为“*$...
2019-06-07
0
526
十三:类加载的时机
类的生命周期: 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括: 加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7...
2019-06-07
0
663
十二:Class文件常量池
Java代码在进行Javac编译的时候,并不像C和C++那样有“连接”这一步骤,而是在虚拟机加载 Class文件的时候进行动态连接 也就是说,在 Class文件中不会保存各个方法、字段的最终内存布局信息,因此这些字段、方法的符号引用不经过运行期转换的话无法得到真正的内存入口地址,也就无法直接被虚拟...
2019-06-07
0
596
十一:堆外内存导致的溢出错误
问题导入: 某项目运行在内存4GB的32位Windows机器上,运行Jetty服务器,划分了1.6GBA给堆内存,但是依旧不时会抛出内存溢出异常 原因: 操作系统对每个进程能管理的内存是有限制的,这台服务器使用的32 位 Windows平台的限制是2GB,其中划了16GB给Java堆...
2019-06-07
0
517
九:内存分配与回收策略
1.对象优先在新生代的Eden区进行分配 大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够空间进行分配时,虚拟机将发起一次 Minor GC。 2.大对象直接进入老年代 3.长期存活的对象将进入到老年代(虚拟机设置值,默认阈值为15) 为了能够识别哪些对象存在新生代,哪些老年...
2019-06-07
0
650
八:垃圾回收相关参数
-verbose:gc 显示gc详细信息
2019-06-07
0
535
二:关于直接内存的溢出问题
DirectMemory容量可通过-XX:MaxDirectMemorySize指定,如果不指定,则默认与Java 堆最大值(-Xmx指定)一样 由DirectMemory导致的内存溢出,一个明显的特征是在Heap Dump文件中不会看见明显的异常,如果读者发现OOM之后Dump文件...
2019-05-12
0
452