Java虚拟机之垃圾收集器(7)

一、关于Java垃圾回收的简介(1)Java 内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。(2)每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由 JIT 编...

2015-04-16 17:20:53

阅读数 2492

评论数 0

Java虚拟机OOM之方法区溢出(6)

方法区用于存放 Class 的相关信息,如类名、访问修饰符、常量池、字段描述、方法描述等。 对于这个区域的测试,基本的思路是运行时产生大量的类去填满方法区,直到溢出。虽然直接使用 JavaSE API 也可以动态产生类(如反射时的GeneratedConstructorAccessor 和动态代...

2015-04-14 19:12:49

阅读数 2663

评论数 0

Java虚拟机OOM之运行时常量池溢出(5)

如果要向运行时常量池中添加内容,最简单的做法就是使用 String.intern()这个 Native 方法。该方法的作用是:如果池中已经包含一个等于此 String 对象的字符串,则返回代表池中这个字符串的String 对象;否则,将此 String 对象包含的字符串添加到常量池中,并且返回此 ...

2015-04-14 19:09:14

阅读数 2376

评论数 0

Java虚拟机OOM之虚拟机栈和本地方法栈溢出(4)

一、在 Java 虚拟机规范中,对虚拟机栈这个区域规定了两种异常状况:(1)如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError 异常; (2)如果虚拟机栈可以动态扩展(当前大部分的 Java 虚拟机都可动态扩展,只不过 Java 虚拟机规范中也允许固定长度的虚...

2015-04-14 19:05:26

阅读数 3842

评论数 0

Java虚拟机OutOfMemoryError 异常详解及解决方法(3)

上图是一张Java运行时的内存分布图,可知虚拟机内存都有发生OutOfMemoryError(下文称 OOM)异常的可能,作为一个合格的Java开发人员,我们应该做到的是:(1)第一,通过代码验证 Java 虚拟机规范中描述的各个运行时区域储存的内容; (2)第二,遇到内存溢出的时候,应该可以找...

2015-04-14 18:22:03

阅读数 2662

评论数 0

Java虚拟机值对象访问以及如何使用对象的引用(2)

对象访问在 Java 语言中无处不在,是最普通的程序行为,但即使是最简单的访问,也会却涉及 Java 栈、 Java 堆、方法区这三个最重要内存区域之间的关联关系,如下面的这句代码:Object obj = new Object();我们知道在Java栈中保存的是对象的引用,在Java堆中才是具体...

2015-04-14 17:42:23

阅读数 1904

评论数 0

Java 虚拟机内存区域划分详解(1)

一、概述 对于 C 和 C++程序开发的开发人员来说,在内存管理领域,程序员对内存拥有绝对的使用权,但是也要主要到正确的使用和清理内存,这就要求程序员有较高的水平。而对于 Java 程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个 new 操作去写配对的 delete/free ...

2015-04-14 17:02:20

阅读数 3090

评论数 0

java内存管理深入浅出

转载http://blog.csdn.net/evankaka摘要:本文主要讲解了Java中的内存管理机制、泄露机制及各种数据的存储方式,内存管理是JAVA学习中的一个重点,深入理解它有助于帮助我们加深对JAVA程序的理解1.java是如何管理内存的为了判断Java中是否有内存泄露,我们首先必须了...

2015-04-02 14:54:09

阅读数 1950

评论数 0

初识JVM byte code

关于JVM和其上的byte code,网上其实有足够多的资料了,我这里就简单做个提纲和介绍,权当记录吧。stack-based VMJava byte code运行在JVM上,就像机器指令运行在物理机上,是需要遵循这个机器的指令规范的。所以认识JVM byte code,是需要稍微了解下JVM的。...

2015-04-02 14:46:19

阅读数 2594

评论数 0

对象A和B循环引用,最后会不会不被GC回收?-------关于Java的GC机制

①首先说一下,GC里边在JVM当中是使用的ROOT算法,ROOT算法,什么称作为ROOT呢,就是说类的静态成员,静态成员就是static修饰的那种,是“根”的一个,根还包括方法中的成员变量,只有成员或对象不挂在根上,GC的时候就可能把他们搞掉,这里提到的循环引用,就看这个循环引用是否挂在根上,如果...

2015-04-02 14:43:10

阅读数 7926

评论数 0

单例模式讨论篇:单例模式与垃圾回收

讨论命题:当一个单例的对象长久不用时,会不会被jvm的垃圾收集机制回收。首先说一下为什么会产生这一疑问,笔者本人再此之前从来没有考虑过垃圾回收对单例模式的影响,直到去年读了一本书,《 设计模式 之禅》秦小波著。在书中提到 在j2ee应用中,jvm垃圾回收机制会把长久不用的单例类对象当作垃圾,并在c...

2015-04-02 14:42:31

阅读数 1299

评论数 0

提示
确定要删除当前文章?
取消 删除