8341次浏览
《Java虚拟机精讲》内容简介:HotSpot VM是目前市面上高性能JVM的代表作之一,它采用解释器+JIT 编译器的混合执行引擎,使得Java 程序的执行性能从此有了质的飞跃。本书以极其精练的语句诠释了 HotSpot VM的方方面面,比如:字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析 HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法、垃圾收集器(重点讲解了Serial 收集器、ParNew收集器、Parallel收集器、CMS(Concurrent-Mark-Sweep)收集器和 G1(Garbage-First)收集器)、类加载机制,以及HotSpot VM 基于栈的架构模型和执行引擎(解释器的工作流程、JIT 编译器的工作流程、分层编译策略、热点探测功能)等技术。如果你对JVM 感兴趣,并且从未接触过 JVM,那么本书将会是你探索 JVM 世界的必备入门工具。本书适用于任何对Java 虚拟机感兴趣的Java 开发人员、系统架构师、Java 虚拟机爱好者。尤其是对于那些从未接触过Java 虚拟机的Java 开发人员,本书笔者
11429次浏览
内容介绍这是一部从工作原理和工程实践两个维度深入剖析JVM的著作,是计算机领域公认的经典,繁体版在台湾也颇受欢迎。自2011年上市以来,前两个版本累计印刷36次,销量超过30万册,两家主要网络书店的评论近90000条,内容上近乎零差评,是原创计算机图书领域不可逾越的丰碑。第3版在第2版的基础上做了重大修订,内容更丰富、实战性更强:根据新版JDK对内容进行了全方位的修订和升级,围绕新技术和生产实践新增逾10万字,包含近50%的全新内容,并对第2版中含糊、瑕疵和错误内容进行了修正。全书一共13章,分为五大部分:第一部分(第1章)走近Java系统介绍了Java的技术体系、发展历程、虚拟机家族,以及动手编译JDK,了解这部分内容能对学习JVM提供良好的指引。第二部分(第2~5章)自动内存管理详细讲解了Java的内存区域与内存溢出、垃圾收集器与内存分配策略、虚拟机性能监控与故障排除等与自动内存管理相关的内容,以及10余个经典的性能优化案例和优化方法;第三部分(第6~9章)虚拟机执行子系统深入分析了虚拟机执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎,以及多个类加载及其执行子系
3744次浏览
苏布拉马尼亚姆所著的《Java虚拟机并发编程》是Java并发编程领域的里程碑之作,由资深Java技术专家、并发编程专家、敏捷开发专家和Jolt大奖得主撰写,Amazon五星级畅销书。它系统深入地讲解在JVM平台上如何利用JDK同步模型、软件事务内存模型和基于角色的并发模型更好地进行并发编程。全书以示例驱动,通俗易懂,包含大量编程技巧、注意事项和最佳实践。要重点强调的是,本书并不仅仅只适合于Java语言的并发编程,它还适用于clojure、Groovy、JRuby和Scala等所有运行在JVM平台上的编程语言。《Java虚拟机并发编程》共10章,分为五个部分。第一部分:并发策略,阐释了影响并发性的因素、如何有效实现并发,以及并发的设计方法等;第二部分:现代Java/JDK并发,讨论了现代Java API的线程安全和效率,以及如何处理已有应用程序中的现实问题和重构遗留代码时的原则;第三部分:软件事务内存,深入讨论了STM并就如何在各种主要的JVM语言里使用STM给出了指导意见;第四部分:基于角色的并发,详细讲解了如何在基于角色的模型下消除并发问题以及如何在自己的首选语言中使用角色模型;第五
3302次浏览
堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,如下图所示:对年轻代(包括 Eden 和 Survivor 区域)进行GC被称为 Minor GC,对老年代进行GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的JDK里默认包括了对永生带即方法区的回收(JDK8中无永生带了),出现Full GC的时候经常伴随至少一次的Minor GC,但非绝对的。Major GC的速度一般会比Minor GC慢10倍以上。下边看看有那种情况会导致JVM进行Full GC及解决办法。1、System.gc()方法的调用 此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的频率,也即增加了间歇性停顿的次数。建议能不使用此方法就别使用,让虚拟机自己去管理它的内存,可通过通过-XX:+ DisableExplicitGC来禁止RMI调用System.gc()。2、老年代空间不足老年代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足
3135次浏览
深入理解java虚拟机导图笔记,包含Java内容区域与内存溢出异常、垃圾收集器与内存分配策略、类文件结构、类加载机制、虚拟机字节码执行引擎、编译期优化、运行期优化、Java内存模型与线程、线程安全与锁优化几个方面。
4241次浏览
《Java性能调优指南》主要展示了如何在当今先进的多核硬件和复杂的操作系统环境下,系统且主动地提高Java性能。本书对Charlie Hunt 和Binu John的经典图书《Java Performance》进行延伸,提供了两个前所未有的、强大的Java平台创新细节:Garbage First(G1)垃圾收集器和HotSpot虚拟机服务代理。阅读《Java性能调优指南》,你就可以在任何情况下从JDK8或9中发挥Java的最大性能。前言 VII 致谢 IX 作者介绍 XII 第1章 Garbage First综述 1 术语 1 并行垃圾收集器 2 串行垃圾收集器 4 并发标记清除(CMS)垃圾收集器 5 收集器的概括总结 7 Garbage First(G1)垃圾收集器 8 G1设计 10 巨型(Humongous)对象 12 Full垃圾收集 12 并发周期 13 堆空间调整 13 引用 14 第2章 深入Garbage First垃圾收集器 15 背景 15 G1中的垃圾收集 16 年轻代 17 年轻代收集暂停 18 对象老化与老年代 19 巨型分区 19 混合收集 22 收集集合
4915次浏览
《揭秘Java虚拟机:JVM设计原理与实现》从源码角度解读HotSpot的内部实现机制,本书主要包含三大部分——JVM数据结构设计与实现、执行引擎机制及内存分配模型。数据结构部分包括Java字节码文件格式、常量池解析、字段解析、方法解析。每一部分都给出详细的源码实现分析,例如字段解析一章,从源码层面详细分析了Java字段重排、字段继承等关键机制。再如方法解析一章,给出了Java多态特性在源码层面的实现方式。《揭秘Java虚拟机:JVM设计原理与实现》通过直接对源代码的分析,从根本上梳理和澄清Java领域中的关键概念和机制。执行引擎部分包括Java方法调用机制、栈帧创建机制、指令集架构与解释器实现机制。这一话题是《揭秘Java虚拟机:JVM设计原理与实现》技术含量高的部分,需要读者具备一定的汇编基础。不过千万不要被“汇编”这个词给吓着,其实在作者看来,汇编相比于高级语言而言,语法非常简单,语义也十分清晰。执行引擎部分重点描述Java源代码如何转换为字节码,又如何从字节码转换为机器指令从而能够被物理CPU所执行的技术实现。同时详细分析了Java函数堆栈的创建全过程,在源码分析的过程中,带领
5341次浏览
G1 GC提出了不确定性Region,每个空闲Region不是为某个固定年代准备的,它是灵活的,需求驱动的,所以G1 GC代表了先进性。《深入理解JVM & G1 GC》主要为学习Java语言的学生、初级程序员提供GC的使用参考建议及经验,着重介绍了G1 GC。中国的软件开发行业已经有几十年了,从目前的行业发展来看,单纯的软件公司很难有发展,目前流行的云计算、物联网企业实际上是综合性IT技术的整合,这就需要有综合能力的程序员。《深入理解JVM & G1 GC》作者力求做到知识的综合传播,而不是仅仅针对Java虚拟机和GC调优进行讲解,也力求每一章节都有实际的案例支撑。《深入理解JVM & G1 GC》具体包括以下几方面:JVM基础知识、GC基础知识、G1 GC的深入介绍、G1 GC调优建议、JDK自带工具使用介绍等。通读《深入理解JVM & G1 GC》后,读者可以深入了解G1 GC性能调优的许多主题及相关的综合性知识。读者也可以把《深入理解JVM & G1 GC》作为参考,对于感兴趣的主题,直接跳到相应章节寻找答案。序 VII 前言 IX 第1章 JVM & GC基础知识 1 1.1
5726次浏览
Java虚拟机非常复杂,要想真正理解它的工作原理,最好的方式就是自己动手编写一个!本书是继《深入理解Java虚拟机》之后的又一经典著作,它一方面遵循《Java虚拟机规范》,一方面又独辟蹊径,不仅能让Java虚拟机的学习变得更加简单和有趣,而且能让你对Java虚拟机的原理认识更深入和更深刻!本书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机,取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机,整个过程不仅能让读者做到对Java虚拟机知其然而且知其所以然,还能屏蔽大量不必要的繁琐细节,体会到实现过程中的成就感,让学习过程更加轻松、愉悦和高效。更重要的是,这种方式能引导读者更深入地认识和掌握Java虚拟机的工作原理。前言 第1章 命令行工具 1 1.1 准备工作 1 1.2 java命令 4 1.3 编写命令行工具 5 1.4 测试本章代码 7 1.5 本章小结 8 第2章 搜索class文件 9 2.1 类路径 9 2.2 准备工作 10 2.3 实现类路径 11 2.4 测试本章代码 20 2.5 本章小
3117次浏览
《Java虚拟机规范 (Java SE 7 中文版)》是一份根据《Java Virtual Machine Specification (Java SE 7)》翻译的、非官方的、以Open Document形式发布的文档。本译文由ItEye社区三位水友IcyFenix、wupuyuan、langyu合作完成,我们的翻译工作完全基于技术研究目的,任何人也都可以在以技术研究为目的前提下任意阅读、传播、使用这份文档。但没有得到原文作者和译者授权,不得用于商业出版。《Java虚拟机规范》并非某一款虚拟机实现的说明书,它是一份保证各个公司的Java虚拟机实现具备统一外部接口的契约文档,书中的概念和细节描述曾经与Sun的早期虚拟机的实现高度吻合,但是随着技术的发展,高性能虚拟机真正的细节实现方式已经渐渐与虚拟机规范所描述的内容产生了越来越大的差距。《java虚拟机规范(java se 7版)》 译者序 前言 第2版前言 第1版前言 第1章 引言1 1.1 简史1 1.2 java虚拟机2 1.3 各章节摘要2 1.4 说明3 第2章 java虚拟机结构4 2.1 class文件格式4 2.2 数据
9694次浏览
本书完整而准确地阐释了Java虚拟机各方面的细节,围绕Java虚拟机整体架构、编译器、class文件格式、加载、链接与初始化、指令集等核心主题对Java虚拟机进行全面而深入的分析,深刻揭示Java虚拟机的工作原理。同时,书中不仅完整地讲述了由Java SE 8所引入的新特性,例如对包含默认实现代码的接口方法所做的调用,还讲述了为支持类型注解及方法参数注解而对class文件格式所做的扩展,并阐明了class文件中各属性的含义,以及字节码验证的规则。译者序 前 言 第1章 引言1 1.1 简史1 1.2 Java虚拟机2 1.3 各章节摘要2 1.4 说明3 1.5 反馈3 第2章 Java虚拟机结构4 2.1 class文件格式4 2.2 数据类型5 2.3 原始类型与值5 2.3.1 整数类型与整型值6 2.3.2 浮点类型、取值集合及浮点值6 2.3.3 returnAddress类型和值8 2.3.4 boolean类型8 2.4 引用类型与值9 2.5 运行时数据区9 2.5.1 pc寄存器9 2.5.2 Java虚拟机栈10 2.5.3 Java堆10 2.5.4 方法区11
3596次浏览
本书作者曾因本书荣获专业技术杂志《Java Report》评选的优秀作者奖,细心的读者可以从网上找到许多对本书第1版的赞誉。作者以易于理解的方式深入揭示了Java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益!本书共分20章,第1-4章解释了Java虚拟机的体系结构,包括Java栈、堆、方法区、执行引擎等;第5-20章深入描述了Java技术的内部细节,包括垃圾收集、Java安全模型、Java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中第6章和附录A-C安全可以作为class文件和指令集的参考手册。本书还附带光盘,光盘中包含用以辅助说明正文内容的交互式例示applet及示例源代码。译者序 前言 第1章 Java体系结构介绍 第2章 平台无关 第3章 安全 第4章 网络移动性 第5章 Java虚拟机 第6章 Java class文件 第7章 类型的生命周期 第8章 连接模型 第9章 垃圾收集 第10章 栈和局部变量操作 第11章 类型转换 第12章 整数运算 第13章 逻辑运算 第14章 浮点运算 第15章 对象和数组 第16章 控制
5068次浏览
随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为了一个充满活力的生态圈。《实战Java虚拟机——JVM故障诊断与性能优化》将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。《实战Java虚拟机——JVM故障诊断与性能优化》共11章。第1~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~5章介绍了垃圾回收的算法和各种垃圾回收器。第6章介绍了Java虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是对锁的支持。第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机中类的装载系统。第11章介绍了Java虚拟机的执行系统和字节码,并给出了通过ASM框架进行字节码注入的案例。《实战Java虚拟机——JVM故障诊断与性能优化》不仅适合Java程序员,还适合任何一名工作于Java虚拟机之上的研发人员、软件设计师、架构师。第1章 初探Java虚拟机 1 1.1 知根知底:追溯Java的发展历程
3831次浏览
最全的jvm视频教程,共110讲,包括jvm性能调优+内存模型+虚拟机原理,讲解详细,可作为java进阶学习资料。课程大纲第1节说在前面的话 [免费观看] 00:05:07分钟第2节整个部分要讲的内容说明 [免费观看] 00:06:58分钟第3节环境搭建以及jdk,jre,jvm的关系 [免费观看] 00:20:48分钟第4节jvm初体验-内存溢出问题的分析与解决 [免费观看] 00:17:59分钟第5节jvm再体验-jvm可视化监控工具 [免费观看] 00:21:17分钟第6节杂谈 [免费观看] 00:12:37分钟第7节Java的发展历史 00:27:24分钟第8节Java的发展历史续 00:02:27分钟第9节Java技术体系 00:08:46分钟第10节jdk8的新特性 00:07:31分钟第11节lanmbda表达式简介 00:07:02分钟第12节Java虚拟机-classic vm 00:06:06分钟第13节Java虚拟机-ExactVM 00:03:35分钟第14节Java虚拟机-HotSpotVM 00:04:23分钟第15节Java虚拟机-kvm 00:03:04
6092次浏览
Java性能优化圣经!Java之父重磅推荐!本书由曾任职于Oracle/Sun的性能优化专家编写,系统而详细地讲解了性能优化的各个方面,帮助你学习Java虚拟机的基本原理、掌握一些监控Java程序性能的工具,从而快速找到程序中的性能瓶颈,并有效改善程序的运行性能。Java性能优化的任何问题,都可以从本书中找到答案!第1章 策略、方法和方法论 1 1.1 性能问题的现状 1 1.2 性能分析的两种方法:自顶向下和自底向上 4 1.2.1 自顶向下 4 1.2.2 自底向上 5 1.3 选择正确的平台并评估系统性能 5 1.3.1 选择正确的CPU架构 6 1.3.2 评估系统性能 7 1.4 参考资料 7 第2章 操作系统性能监控 8 2.1 定义 8 2.2 CPU使用率 9 2.2.1 监控CPU使用率:Windows 9 2.2.2 监控CPU使用率:Windows typeperf 12 2.2.3 监控CPU使用率:Linux 13 2.2.4 监控CPU使用率:Solaris 14 2.2.5 命令行监控CPU使用
4810次浏览
《HotSpot实战》深入浅出地讲解了HotSpot虚拟机的工作原理,将隐藏在它内部的本质内容逐一呈现在读者面前,包括OpenJDK与HotSpot项目、编译和调试HotSpot的方法、HotSpot内核结构、Launcher、OOP-Klass对象表示系统、链接、运行时数据区、方法区、常量池和常量池Cache、Perf Data、Crash分析方法、转储分析方法、垃圾收集器的设计演进、CMS和G1收集器、栈、JVM对硬件寄存器的利用、栈顶缓存技术、解释器、字节码表、转发表、Stubs、Code Cache、Code生成器、JIT编译器、C1编译器、编译原理、JVM指令集实现、函数的分发机制、VTABLE和ITABLE、异常表、虚拟机监控工具(如jinfo、jstack、jhat、jmap等)的实现原理和开发方法、Attach机制、基于GUI的JVM分析工具(如MAT、VisualVM)等内容。除了HotSpot技术,《HotSpot实战》还对方法论进行了探讨。在各个章节的讲解中,都会有一些与系统运行机制相关的实战或练习,供读者练手。通过这些实战练习,不仅有助于读者加深对知识或原理的理
6586次浏览
1、jstat摘要: Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。jstat 用法$ jstat -help
Usage: jstat -help|-options
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
Definitions:
<option> An option reported by the -options option
<vmid> Virtual Machine Identifier. A vmid takes the following form:
<lv
5942次浏览
《深入理解Java虚拟机:JVM高级特性与最佳实践》第1版两年内印刷近10次,4家网上书店的评论近4?000条,98%以上的评论全部为5星级的好评,是整个Java图书领域公认的经典著作和超级畅销书,繁体版在台湾也十分受欢迎。第2版在第1版的基础上做了很大的改进:根据最新的JDK 1.7对全书内容进行了全面的升级和补充;增加了大量处理各种常见JVM问题的技巧和最佳实践;增加了若干与生产环境相结合的实战案例;对第1版中的错误和不足之处的修正;等等。第2版不仅技术更新、内容更丰富,而且实战性更强。《深入理解Java虚拟机:JVM高级特性与最佳实践》共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解本书后面内容有重要帮助。第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见虚拟机监控与故障处理工具的原理和