深入理解Java虚拟机
2016-05-07 18:51:56 2 举报
AI智能生成
登录查看完整内容
Java虚拟机(JVM)是Java技术的核心和基础。它是一个虚拟的计算机,具有指令集、处理器、内存、硬盘等硬件。JVM能够执行Java字节码,这种字节码可以在任何支持Java的平台上运行,从而实现了“一次编写,到处运行”的理念。JVM还具有垃圾回收、内存管理等功能,能够自动管理内存,防止内存泄漏。此外,JVM还有多线程的支持,可以充分利用多核CPU的优势。深入理解JVM,可以帮助我们更好地理解Java程序的运行机制,提高Java编程的效率和质量。
作者其他创作
大纲/内容
深入理解Java虚拟机
第2章 Java内存区域与内存溢出异常
2.1 概述
2.2 运行时数据区域
线程独占
2.2.1 程序计数器
2.2.2 Java虚拟机栈
2.2.3 本地方法栈
线程共享
2.2.4 Java堆
2.2.5 方法区
2.2.6 运行时常量池
2.2.7 直接内存
2.3 HotSpot虚拟机对象探秘
2.3.1 对象的创建
2.3.2 对象的内存布局
2.3.3 对象的访问定位
2.4 实战:OutOfMemoryError异常
2.4.1 Java堆溢出
2.4.2 虚拟机栈和本地方法栈溢出
2.4.3 方法区和运行时常量池溢出
2.4.4 本机直接内存溢出
第6章 类文件结构
第7章 虚拟机类加载机制
7.1 概述
7.2 类加载的时机
会触发初始化的5中情形
new
反射
当初始化一个类的时候其父类还没有进行初始化,则先触发父类的初始化
启动jvm时执行的主类(包含main方法)
jdk1.7中的动态语言支持
不会触发初始化的情形
通过子类引用父类的静态字段不会导致子类初始化
引用自身的常量字段(不论是父类还是子类调用)
通过数组定义来引用类,不会触发此类的初始化
第12章 Java内存模型与线程
第13章 线程安全与锁优化
13.2 线程安全
五类
不可变
绝对线程安全
相对线程安全
线程兼容
线程独立
实现方法
互斥(阻塞)同步
synchronized
monitorenter
monitorexit
ReentrantLock
非阻塞同步
无同步方案
可重入代码
线程本地存储
锁优化
自旋锁
自适应自旋
常用虚拟机参数
-Xms
-Xmx
-Xmn
-XX:MaxPernSize
-XX:SurvivorRatio
-Xss
0 条评论
回复 删除
下一页