摘要: 第十二章 Java内存模型与线程 1、硬件效率与一致性 由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲。 每个处理器都有自己的高速缓存,而它们又共享同一主内存(Main 阅读全文
posted @ 2019-10-04 12:36 慢漫长路 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 第十一章 晚期(运行期)优化 1、HotSpot虚拟机内的即时编译 解释器与编译器: 许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码)两种选择 即时编译器: 当虚拟机发现某个方法或者代码块的运行特别频繁时,就会把这些代码认定为 阅读全文
posted @ 2019-10-04 12:35 慢漫长路 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 第十章 早期(编译期)优化 1、Javac的源码与调试 编译期的分类: 前端编译期:把*.java文件转换为*.class文件的过程。例如sun的javac、eclipseJDT中的增量编译器。 JIT编译期:后端运行期编译器,把字节码转换成机器骂的过程。例如 HotSpot VM的C1、C2编译器 阅读全文
posted @ 2019-10-04 12:34 慢漫长路 阅读(419) 评论(0) 推荐(1) 编辑
摘要: 第九章 类加载及执行子系统的案例与实战 Q:如果有10个WEB应用程序都是用Spring来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享。Spring要对用户程序的类进行管理,自然要能访问到用户程序的类,而用户程序显然是放在/WEB-IN 阅读全文
posted @ 2019-10-04 12:33 慢漫长路 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 第八章 虚拟机字节码执行引擎 1、运行时栈帧结构 概述: 栈帧是用于支持虚拟机进行方法调用的和方法执行的数据结构,他是虚拟机运行时数据区中的虚拟机栈的栈元素,栈帧存储了方法的局部变量,操作数栈,动态连接和方法返回值等信息,每个方法从调用开始到执行完成的过程都对应着一个栈帧在虚拟机栈里面从入栈到出栈的 阅读全文
posted @ 2019-10-04 12:31 慢漫长路 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 第七章 虚拟机类加载机制 1、类加载的时机 虚拟机的类加载机制: 虚拟机把描述类的数据从class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成了可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类从被加载到虚拟机内存中开始到卸载出内存为止,他的整个生命周期包括加载、验 阅读全文
posted @ 2019-10-04 12:29 慢漫长路 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 第五章 调优案例分析与实战 第五章 调优案例分析与实战 阅读全文
posted @ 2019-10-04 12:28 慢漫长路 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 第四章 虚拟机性能监控与故障处理工具 1、JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程。 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local Virtual Machine Identifier)省略主类的名称。 -m 输出虚拟机进程启动时传 阅读全文
posted @ 2019-10-04 12:26 慢漫长路 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 第三章 垃圾收集器与内存分配策略 1、判断对象是否已死 引用计数法: 给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,每当引用失效时,计数器值就减1。 任何时刻计数器为0的对象就是不可能再被使用的。 引用计数器实现简单,判定效率高,但是无法解决对象相互循环引用。 可达性分析: 通过 阅读全文
posted @ 2019-10-04 12:24 慢漫长路 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 第二章 Java内存区域与内存溢出异常 1、运行时数据区域 程序计数器: 当前线程所执行的字节码的行号指示器,用于存放下一条需要运行的指令。 运行速度最快位于处理器内部。 线程私有。 虚拟机栈: 描述的是Java方法执行的内存模型,用于存放对象的引用和基本数据类型。 每个方法执行的时候都会创建一个栈 阅读全文
posted @ 2019-10-04 12:23 慢漫长路 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 第六章 类文件结构 1、无关性的基石 各种不同平台的虚拟机与所有平台都统一使用程序存储格式——字节码是构成平台无关的基石。 实现语言无关性的基础仍然是虚拟机和字节码存储格式,Java虚拟机不和包括Java在内的任何语言绑定只能与class文件这种特定的二进制文件格式所关联。 class文件包含了Ja 阅读全文
posted @ 2019-10-04 12:20 慢漫长路 阅读(191) 评论(0) 推荐(0) 编辑