java技术体系(sun公司官方定义):java程序设计语言、各种硬件平台上的java虚拟机、Class文件格式、java API类库、来自商业机构和开源社区的第三方java类库 JDK:java程序设计语言、java虚…
分类:java虚拟机
深入理解Java虚拟机学习笔记1-JVM运行时内存分布
一、为什么需要了解虚拟机的内存分布? Java程序员和C++、C程序员在内存管理领域是不一样的,对java程序员来说,java程序员不需要关注内存管理,就能编写代码…
java虚拟机故障处理工具
概述 给系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。 java开发人员可以在jdk安装的bin目录下找到除了java,javac以外的其他命令。这些命令主要是一些用于监视虚拟机和故…
《深入理解Java虚拟机》第2版笔记(完整)
第1章 走近Java 1.2 Java技术体系 Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。 1…
《深入理解Java虚拟机》笔记-类文件结构
各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码是构成平台无关性的基石。 1. Class类文件的结构 Class文件是以8位字节为基础单位的二进制流,各个数据项紧凑地排列在Class文件中,没有任何分隔…
《深入理解Java虚拟机——JVM高级特性与最佳实践》学习笔记——线程安全与锁优化
线程安全与锁优化 线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线…
Java内存分配策略——《深入理解Java虚拟机》笔记
概述 Java自动内存管理包含两方面的含义:给对象分配内存以及回收分配给对象的内存。 Java对象的内存分配主要是指在堆上分配(也有经过JIT编译后被拆散为标量类型并间接地在栈上分配的情况),对象主要分配在新生代的Ede…
深入了解Java虚拟机之Java虚拟机栈
与程序计数器(想了解计数器看我上一篇博客)一样,Java虚拟机栈也是线程私有的,他的生命周期与线程相同,虚拟机栈描述的是Java方法执行的内存模式:每个方法在执行的…
深入理解java虚拟机总结
第二章:Java内存区域和内存溢出异常 1. 内存区域 程序计数器:线程私有。指示当前线程执行的字节码的行号。是jvm中唯一不会发生oom的区域。 栈:线程私有(每个线程有一个栈)。对于每个方法会创建一个栈帧,栈帧是虚拟…
深入理解Java虚拟机系列——Java虚拟机OOM之方法区溢出
方法区用于存放 Class 的相关信息,如类名、访问修饰符、常量池、字段描述、方法描述等。 对于这个区域的测试,基本的思路是运行时产生大量的类去填满方法区,直到溢出。虽然直接使用 JavaSE API 也可以动…
2.深入理解java虚拟机--垃圾收集算法
常见的一些算法 引用计数算法 过程:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器就减一;任何时刻计数器为0的对象就是不可能再被使用的。(摘录书) &n…
深入理解Java虚拟机之G1收集器
G1是一款面向服务端应用的垃圾收集器,HotSpot团队赋予它的使命是未来可以替换掉CMS收集器,G1收集器的特点: 并行与并发:G1可以充分利用多CPU,多核环境下的硬件优势,使用多个CPU来缩短Stop-The-Wo…