对象的创建 虚拟机遇到一条 new 指令时,首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 在类加载检查…
分类:java虚拟机
深入理解java虚拟机第四章读书笔记
性能监控工具 java自带的工具 jps jps:列出系统中所有的java应用程序。通过jps可以方便的查看java进程中的启动类,传入参数以及java虚拟机参数等信息。 https://www.jianshu.com/…
深入理解java虚拟机第六章读书笔记
类文件结构 class类文件的结构 1.class文件是一组以8位字节为基础单位的二进制流,各个数据项目按顺序紧凑的排列没有分隔符,当遇到占用8位以上的空间的数据时,则按照高位在前的方式分割成若干个8位字节进行存储。 2…
[深入理解Java虚拟机]第一章实战 自己编译JDK
实战:自己编译JDK 想要一探JDK内部的实现机制,最便捷的路径之一就是自己编译一套JDK ,通过阅读和跟踪调试JDK源码去了解Java技术体系的原理,虽然门槛会高一点,但肯定会比阅读各种书籍、文章更加贴近本质。另外,J…
[深入理解Java虚拟机]第二章 内存区域
概述 对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”又是从事最基础工作的“劳动人民”—— 既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。 对于Java…
[深入理解Java虚拟机]第二章 HotSpot虚拟机对象探秘
介绍完Java虚拟机的运行时数据区之后,我们大致知道了虚拟机内存的概况,读者了解了内存中放了些什么后,也许就会想更进一步了解这些虚拟机内存中的数据的其他细节,譬如它们是如何创建、如何布局以及如何访问的。对于这样涉及细节的…
[深入理解Java虚拟机]第二章 实战 :OutOfMemoryError异常
在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下文称00M )异常的可能,本节将通过若干实例来验证异常发生的场景(代码清单2-3〜代码清单2-9的…
[深入理解Java虚拟机]第三章 对象存活判定算法
在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着 ,哪些已经“死去”(即不可能再被任何途径使用的对象)。 引用计数算法 很多教科书判断对象是否存…
[深入理解Java虚拟机]第四章 虚拟机性能监控与故障处理工具
理论总是作为指导实践的工具,能把这些知识应用到实际工作中才是 我们的最终目的。 给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线…
[深入理解Java虚拟机]第五章 调优案例分析与实战
案例分析 高性能硬件上的程序部署策略 例 如 ,一个15万PV/天左右的在线文档类型网站最近更换了硬件系统,新的硬件为4个CPU、16GB物理内存,操作系统为64位CentOS 5.4 , Resin作为Web服务器。整…
[深入理解Java虚拟机]第六章 无关性的基石
如果计算机的CPU指令集只有x86一种 ,操作系统也只有Windows—种 ,那也许Java语言就不会出现 。 Java在刚刚诞生之时曾经提出过一个非常著名的宣传 口 号 :“ 一 次 编 写 ,到 处 运 行 ( Wr…
[深入理解Java虚拟机]第六章 Class类文件的结构
在本章关于Class文件结构的讲解中,我们将以《Java虚拟机规范(第2版 )》 (1999年发布,对应于JDK 1.4时代的Java虚拟机)中的定义为主线,这部分内容虽然古老,但它所包含的指令、属性是Class文件中最…