摘要:
这篇博客很不错 阅读全文
摘要:
一、类的生命周期 类的生命周期指的是:类从加载到虚拟机内存中开始,到卸载出内存为止。可以同一张图概括: 注意:加载、验证、准备、初始化和卸载必须按顺序开始,而解析阶段不一定,在某种情况下可以在初始化阶段之后再开始。 二、类加载过程 Class文件需要加载到虚拟机之后才能运行和使用,系统加载Class 阅读全文
摘要:
代码清单7-1 public class Six { static { System.out.println("SuperClass init!"); } public static int value = 123; } public class Seven extends Six{ static 阅读全文
摘要:
代码1-1 新生代 Minor GC 博客1 博客2 一、新生代 Minor GC public class One { private static final int _1MB = 1024 * 1024; /** * VM参数:-XX:+UseSerialGC -verbose:gc -Xms 阅读全文
摘要:
一、垃圾收集器 HotSpot虚拟机的垃圾收集器 如图展示了7种作用于不同分代的收集器,虚拟机所处的区域,则表示它是属于新生代收集器(Serial、ParNew、Parallel Scavenge)还是老年代收集器(CMS、Serial Old、Parallel Old)。需要注意的是,G1可以独立 阅读全文
摘要:
第三章 垃圾收集器与内存分配策略 3.1 概述 垃圾收集(Garbage Collection,GC),需要完成三件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 3.1.1 哪些内存需要回收? 程序计数器、Java虚拟机栈、本地方法栈这三个区域随线程而生,随线程而灭(Java虚拟机栈中的栈 阅读全文
摘要:
package JVM; import java.util.ArrayList; import java.util.List; public class test1 { static class OOMObject{} public static void main(String[] args) { 阅读全文
摘要:
线程组中的一个线程出现异常,该线程停止运行,默认情况下其他线程仍然会继续执行。如果要实现线程组内的一个线程出现异常,其他线程也全部停止该怎么处理? 那么我们需要重新定义ThreadGroup,然后重写uncaughtException方法,处理异常。 class MyThreadGroup exte 阅读全文
摘要:
在Java的多线程技术中,我们可以使用UncaughtExceptionHandler类对多线程中的异常进行“捕捉”。 setUncaughtExceptionHandler()的作用是对指定的线程对象设置默认的异常处理器。在Thread类中还可以使用setDefaultUncaughtExcept 阅读全文