JVM相关
内容大部分来自 周志明<深入理解Java虚拟机>第二版基于jdk1.7
吃一口瓜
这个作者很懒,什么都没留下…
展开
-
虚拟机二:自动内存管理机制 之 运行时数据区域
一、运行时数据区域 图片引用 周志明<深入理解Java虚拟机>1.1、程序计数器 .class文件也叫字节码文件,是虚拟机解释运行的目标文件。程序计数器就是当前线程所执行的字节码的行号指示器,属于线程私有的一块小内存。当多线程来回切换时,使用程序计数器能正确的恢复到之前执行的位置。 如果正在执行Java方法,则程序计数器记录的是正在执行的字节码指令的地址;如果是native方法...原创 2020-01-01 14:12:07 · 157 阅读 · 0 评论 -
虚拟机一:Java
展望Java的未来 1、模块化:OSGI模块化、代码热替换、模块热部署 2、混合语言:期待更多语言运行在Java虚拟机上 3、多核并行 4、进一步丰富语法 5、64位虚拟机 ...原创 2020-01-01 11:48:46 · 135 阅读 · 0 评论 -
虚拟机七:类加载机制(二)之类加载器
类加载器: 虚拟机加载阶段,“通过全限定名来获取此类的二进制字节流”这一动作交给外部实现,这个模块的实现称为 类加载器。 一、类与类加载器的关系 对于任意一个类,在虚拟机中的唯一性是依靠类本身与加载此类的类加载器一共决定的。简单理解就是:相同类通过不同的类加载器加载到虚拟机中,类的身份是不同的;在你使用equals()、isAssignableFrom()、isInstance()方法时可能...原创 2019-12-31 22:32:01 · 149 阅读 · 0 评论 -
虚拟机七:类加载机制(一)之类加载过程
虚拟机真正加载的是.class的二进制流,所以并不要求.class的来源必须是本地磁盘,也可以是网络或其他地方,这当然取决于使用怎样的类加载器。从简单的Applet、JSP到相对复杂的OSGI技术都依赖这样的特性。 类的生命周期 其中,加载、校验、准备与初始化是必要的步骤。步骤执行并非严格的顺序执行,是在执行一个阶段的同时也可能开始了后续的阶段。 类加载的过程 加载: 虚拟机需要进行...原创 2019-12-31 11:54:37 · 256 阅读 · 1 评论 -
Class类文件格式
Class类文件格式 类型 名称 数量 描述 u4 magic 1 魔数。用来鉴别是不是class文件 u2 minor_version 1 jdk的支线版本号 u2 major_version 1 jdk的主线版本号 u2 constant_pool_count 1 常量池数量 cp_...原创 2019-12-30 21:42:25 · 225 阅读 · 0 评论 -
Jvm4、GC收集器
我之前的文章介绍过GC的算法有标记-复制、标记-压缩等。也介绍到了GC工作时,堆内存中是如何进行复制与压缩的。现实情况中,JVM中是不断的有对象产生、灭亡的;这就对会GC行为中标记对象产生很大的冲突。总不能GC正标记对象呢,jvm里这些对象又一会儿活跃一会儿灭亡的。所以GC时,将会暂停jvm中的一切活动,直到垃圾回收完毕。也叫作 Stop the Wrold~ stop the world 现象...原创 2019-04-15 22:47:14 · 391 阅读 · 1 评论 -
Jvm3、JVM和GC常用的参数
一、跟踪参数 1、-verbose:gc -XX:+printGC 二者都可以打印GC的简要信息 在Idea中设置VMoptions: 例如--> -verbose:gc。 2、-XX:+PrintGCDetails 可以打印GC的详细信息 -XX:+PrintHeapAtGC 每次GC时都打印堆信息 3、-Xmx -Xms 指定堆内存的最大值和最小值...原创 2019-04-14 22:40:15 · 178 阅读 · 0 评论 -
Jvm2、JVM的内存模型与GC算法
1、内存模型 jvm会使用ClassLoader类加载器加载生成的XXX.class文件。将类信息、方法、对象、常量等进行保存在内存里。 如此,jvm的内存模型变分为: 方法区 Java堆 Java栈 本地方法区 同时,GC垃圾回收器就是针对这个内存进行工作的。 方法区:保存类信息、各种类型的常量、类的字段、方法等。通常与永久区(Perm)关联在一起。 Java...原创 2019-03-27 11:35:41 · 333 阅读 · 0 评论 -
Jvm1、初次认识JVM
您好,很感谢您接受我对您的访问。也非常感谢多年以来您对Coding界的支持。 JVM:全程 Java Virtual Machine,Java虚拟机。是通过软件模拟、但具有完整硬件系统功能的一种环境。 常见的其他的虚拟机还有VMware、VirtualBox等。 JDK1.8时,Sun公司被Oracle收购。jvm已经优化为Hotspot VM为基础,并移植了JRockit的优秀特性。...原创 2019-03-26 20:56:46 · 187 阅读 · 0 评论