![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 71
iteye_6926
这个作者很懒,什么都没留下…
展开
-
Java虚拟机类加载器机制-Java类加载器的时机、过程
[b]一、定义:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 与需要在编译时进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以...原创 2016-09-17 23:44:44 · 78 阅读 · 0 评论 -
《 Java并发编程从入门到精通》 常见的内存溢出的三种情况(转载)
[size=medium]鸟欲高飞先振翅,人求上进先读书。本文是原书的第9章 线程的监控及其日常工作中如何分析里的9.3.3节常见的内存溢出的三种情况。[b]3. 常见的内存溢出的三种情况:[color=red]1)JVM Heap(堆)溢出:java.lang.OutOfMemoryError: Java heap space[/color][/b]JVM在启动的时候会自动设置J...原创 2016-10-19 20:08:42 · 144 阅读 · 0 评论 -
JVM性能优化(一)JVM技术入门(转载)
[size=small]Java应用程序是运行在JVM上的,但是你对JVM技术了解吗?这篇文章(这个系列的第一部分)讲述了经典Java虚拟机是怎么样工作的,例如:Java一次编写的利弊,跨平台引擎,垃圾回收基础知识,经典的GC算法和编译优化。之后的文章会讲JVM性能优化,包括最新的JVM设计——支持当今高并发Java应用的性能和扩展。如果你是一个开发人员,你肯定遇到过这样的特殊感觉,你突然...原创 2016-10-18 23:42:55 · 99 阅读 · 0 评论 -
Java内存模型
[b]一、内存模型[/b] Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model)来屏蔽掉各种硬件和操作系统之间的内存访问差异,以实现Java程序在各种平台下都能达到一致的内存访问效果。 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存取出变量这样的底层细节。此处所说的变量包括实例变量,类变量...原创 2016-10-07 10:20:38 · 106 阅读 · 0 评论 -
JVM垃圾收集器种类及特点
[size=small] 垃圾收集器是内存回收的具体实现。Java虚拟机规范中对垃圾收集器如何实现没有明确的规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能存在很大差别,并且一般都会提供参数供用户自己根据自己的应用特点和要求组合出各个年代所使用的垃圾收集器。目前在JDK1.7 Update14以后的hotspot虚拟机,都包含了如下的垃圾收集器:[img]http://dl...原创 2016-10-04 09:41:18 · 204 阅读 · 0 评论 -
JVM垃圾收集算法
在JVM中,程序计数器、虚拟机栈、本地方法栈3个区域随着线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊的执行的出栈和入栈操作。每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,因此这几个区域内疚不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就随着回收了。而Java堆和方法区则不一样,一个接口中的多个实现类需...原创 2016-10-03 15:04:52 · 88 阅读 · 0 评论 -
再谈引用(强引用,软引用,弱引用,虚引用)的概念,回收方法区
[size=small] [b]再谈引用[/b] 无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象的引用链是否可达,判定对象是否存活都与“引用”有关。在JDK1.2之前,Java中的引用定义如下:如果reference类型的数据中存储的数值代表的是另一块内存的起始地址,就称这块内存代表着一个引用。这种定义很纯粹,但是太过狭隘,一个对象在这种定义下自由被引...原创 2016-10-03 09:41:12 · 241 阅读 · 0 评论 -
JVM运行时数据区域名词解释
运行时数据区域,Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用户,以及创建和销毁的时间,有的区域随着虚拟机进程的启动儿存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(JavaSE 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图所示。[img]http://dl2.ite...原创 2016-10-01 22:54:18 · 163 阅读 · 0 评论 -
类加载器的双亲委派模型
[size=medium][b]双亲委派模型[/b] 从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++实现,时虚拟器自身的一部分;另一种就是所有其他的类加载器,这类加载器都由Java实现,独立于虚拟机外部,并且都继承自抽象类java.lang.ClassLoader。 从开发人员的...原创 2016-10-01 10:55:19 · 104 阅读 · 0 评论 -
查看jvm栈深度
jinfo -flag ThreadStackSize 11351(pid)原创 2016-10-28 18:44:15 · 647 阅读 · 0 评论