
java-se
文章平均质量分 90
宋常华
不积跬步,无以至千里。
展开
-
垃圾收集器和内存分配策略
刚刚在前面介绍了内存的运行时数据区域,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭。栈中的栈帧随着方法的进入和退出而有条不紊的执行着入栈和出栈的操作,每一个栈帧中分配多少内存是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收具备确定性,当方法结束或者线程结束时,内存自然就随着回收。而Java堆和方法区不一样,我们只有在程序出于运行期间才知道会创建哪些对象,这部分内存区原创 2015-06-20 20:39:41 · 552 阅读 · 0 评论 -
Java内存区域和内存溢出异常
运行时存储区域Java虚拟机管理的的内存会包括以下几个运行时内存区域:程序计数器 程序计数器是一块较小的内存空间,可以看成当前线程所执行的字节码行号指示器。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式实现的,在一个确定的时刻,一个处理器都会执行一条线程当中的指令。因此,为了线程切换后能后恢复到正确执行的位置,每个线程都需要一个独立的线程计数器,各条线程之间的计数器原创 2015-06-16 22:07:35 · 548 阅读 · 0 评论 -
HotSpot虚拟机垃圾收集器
垃圾收集器这了讨论的收集器基于JDK1.7 Update 14之后的HotSpot虚拟机,这个虚拟机包含的所有收集器如图所示。 HotSpot虚拟机的垃圾收集器图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明他们可以搭配使用。收集器所处的区域,则表示它是属于新生代收集器还是老年代收集器。1.Serial收集器 Serial收集器是最基本原创 2015-06-25 19:38:31 · 712 阅读 · 0 评论 -
Java虚拟机ClassLoader知识详解(2)
Java虚拟机加载器Java虚拟机加载器类型–Java虚拟机自带的加载器 •根类加载器(Bootstrap) •扩展类加载器(Extension) •系统类加载器(System) –用户自定义的类加载器 •java.lang.ClassLoader的子类 •用户可以定制类的加载方式类加载器并不需要等到某个类被“首次主动使用”时再加载它。JVM规范允原创 2015-06-09 21:52:19 · 436 阅读 · 0 评论 -
Java虚拟机ClassLoader知识详解(1)
Java虚拟机ClassLoader知识详解(1)最近在学习Java虚拟机,所以把知识点放出来,对自己是梳理巩固,也希望能帮到别人。 首先看一个据说Java新手程序员都会犯的错误,上代码:package com.classLoader;public class Test { static class Singleton{ private static Singlet原创 2015-06-08 22:39:19 · 474 阅读 · 0 评论 -
静态工厂方法强化Singleton属性
JDK1.5发行版本之前,实现Singleton有两种方法。这两种方法都要把构造器私有,并导出公有的静态成员,以便允许客户端能够访问该类的唯一实例,在第一种方法中,公有静态成员是个final域:// Singleton with public final fieldpublic class Elvis { public static final Elvis INSTANCE = new E原创 2016-08-07 20:59:20 · 551 阅读 · 1 评论