![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
sunByFeng
这个作者很懒,什么都没留下…
展开
-
《深入理解java虚拟机》学习笔记6——类加载机制
Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。 在加载阶段,java虚拟机需要完成以下3件事: a.通过一个类的全限定名来获取定义此类的二进制字节流。 b.将定义类的二进制字节流所代表的静态存储结构转换为方法区的运行时数据结构。 c.在java堆中生成一个代表该类的java.la转载 2017-05-21 21:30:35 · 298 阅读 · 0 评论 -
《深入理解java虚拟机》学习笔记2——Java内存溢出实例
(1).java堆溢出: Java堆用于存储实例对象,只要不断创建对象,并且保证GC Roots到对象之间有引用的可达,避免垃圾收集器回收实例对象,就会在对象数量达到堆最大容量时产生OutOfMemoryError异常。 想要方便快速地产生堆溢出,要使用如下java虚拟机参数:-X原创 2017-05-20 10:52:10 · 301 阅读 · 0 评论 -
成为JavaGC专家(1)—深入浅出Java垃圾回收机制
转载:http://www.cnblogs.com/wozixiaoyao/p/5658950.html对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。这仅仅代表我个人的意见,但我坚信一个精通GC的人往往是一个好的Java开发者。如果你对GC的处理过程感兴趣,说明你已经具备较大规模应用的转载 2017-07-12 17:29:44 · 240 阅读 · 0 评论 -
成为JavaGC专家(2)—如何监控Java垃圾回收机制
在本文中,我将解释JVM到底是如何执行垃圾回收处理的。什么是GC监控?垃圾回收收集监控指的是搞清楚JVM如何执行GC的过程,例如,我们可以查明:1. 何时一个新生代中的对象被移动到老年代时,所花费的时间。2. Stop-the-world 何时发生的,持续了多长时转载 2017-07-12 17:35:17 · 582 阅读 · 0 评论 -
成为Java GC专家(3)—如何优化Java垃圾回收机制
———-为什么需要优化GC或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但前提是所运行的基于Java的系统,包含了如下参数或行为:已经通过 -Xms 和–Xmx 设置了内存大小包含了 -server 参数系统转载 2017-07-12 17:43:22 · 244 阅读 · 0 评论 -
《深入理解java虚拟机》学习笔记5——Java Class类文件结构
Java语言从诞生之时就宣称一次编写,到处运行的跨平台特性,其实现原理是源码文件并没有直接编译成机器指令,而是编译成Java虚拟机可以识别和运行的字节码文件(Class类文件,*.class),字节码文件是一种平台无关的中间编译结果,字节码文件由java虚拟机读取,解析和执行,java虚拟机屏蔽了不同操作系统和硬件平台的差异性。 如今的java虚拟机已经称为一种通用平台,不但能够运行java语言,转载 2017-05-21 21:27:23 · 243 阅读 · 0 评论 -
《深入理解java虚拟机》学习笔记8—— java虚拟机性能监控与故障处理工具
Sun JDK 监控和故障处理工具 **(1)jps:JVM process Status Tool,显示指定系统内所有的HotSpot虚拟机进程 (2)jstat:JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据 (3)jinfo:Configuration Info for Java,显示虚拟机配置信息原创 2017-05-21 21:38:12 · 564 阅读 · 0 评论 -
《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
Java堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法,年老代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK1.6中Sun HotSpot虚拟机的垃圾收集器如下: 图中如果两个垃圾收集器直接有连线,则表明这两个垃圾收集器可以搭配使用。 (1).Serial垃圾收集器: Serial是最基本、历史最悠原创 2017-05-21 21:19:03 · 290 阅读 · 0 评论 -
《深入理解java虚拟机》学习笔记3——垃圾回收算法
Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的内存。 常用的垃圾回收算法有: (1).引用计数算法: 给对象中添加一个引用计数器,每当有一个地原创 2017-05-21 21:12:38 · 343 阅读 · 0 评论 -
《深入理解java虚拟机》学习笔记8——Tomcat类加载器体系结构
omcat 等主流Web服务器为了实现下面的基本功能,都实现了不止一个自定义的类加载器: (1).部署在同一个服务器上的两个web应用程序所使用的Java类库可以相互隔离。 (2).部署在同一个服务器上的两个web应用程序所使用的java类库可以相互共享。 (3).许多Web服务器本身使用java语言实现,因此服务器所使用的类库应与应用程序的类库相互独立。 (4).支持JSP应用的Web服务转载 2017-05-21 21:36:39 · 326 阅读 · 0 评论 -
《深入理解java虚拟机》学习笔记7——Java虚拟机类生命周期
C/C++等纯编译语言从源码到最终执行一般要经历:编译、连接和运行三个阶段,连接是在编译期间完成,而Java在编译期间仅仅是将源码编译为Java虚拟机可以识别的字节码Class类文件,Java虚拟机对中Class类文件的加载、连接都在运行时执行,虽然类加载和连接会占用程序的执行时间增加性能开销,但是却可以为java语言带来高度灵活性和扩展性,java的针对接口编程和类加载器机制实现的OSGi以及热部转载 2017-05-21 21:33:14 · 229 阅读 · 0 评论 -
《深入理解java虚拟机》学习笔记1——Java内存结构
Java虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下: 其中方法区和堆是由所有线程共享的数据区。 Java虚拟机栈,本地方法栈和程序计数器是线程隔离的数据区。 (1).程序计数器: 是一块较小的内存空间,其作用可以看作是当前线程所执行的字节码原创 2017-05-20 10:41:59 · 350 阅读 · 0 评论