前言 前面介绍类加载器的时候,介绍了一下命名空间这个概念.今天就通过一个例子,来详细了解一下[类加载器的命名空间].然后通过这个例子,我们可以总结一下双亲委托模型的好处与优点. 例1(不删除classpath下的class文件) 首先定义一个MyPerson package com.jamie.jvmstudy; public class MyPerson { private MyPerson myPerson; public void setMyPerson(Object obj){ this…
本文摘自深入理解 Java 虚拟机第三版 概述 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有的区域则是依赖用户线程的启动和结束而创建和销毁.因此,我们可以根据这个特点将区域划为为线程公有区域和线程私有区域两部分 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器.字节码解释器…
垃圾收集器 新生代收集器 1.Serial收集器 特点: 单线程工作,收集的时候就会停止其他所有工作线程,用户不可知不可控,会使得用户界面出现停顿. 简单高效,是所有收集器中额外内存消耗最少的. 没有线程交互的开销,单线程收集效率高. 对于客户端模式下的虚拟机是一个很好的选择. 采用标记复制算法. 2.ParNew收集器 是Serial收集器的多线程版本.采用多条GC线程并行地清理垃圾.任然需要在清理过程中停止一切用户线程. 特点: 多线程执行,适合多处理器环境,单处理器效率不如Serial.…
作者:平凡希 原文地址:https://www.cnblogs.com/xiaoxi/p/6486852.html 一.为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收.除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此.所以,垃圾回收是必须的. 二.哪些内存需要回收? 哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓"要回收的垃圾"无非就是那些不可能再被任何途径使用的对象.那么如何找到这些对象? 1.引用计数法 这…
Java 容器之Hashset 详解.http://blog.csdn.net/nvd11/article/details/27716511…
Java 反射 设计模式 动态代理机制详解 [ 转载 ] @author 亦山 原文链接:http://blog.csdn.net/luanlouis/article/details/24589193 摘要:代理的基本构成.InvocationHandler.JDK动态代理----通过接口.cglib动态代理----通过类继承 class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中.这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码.J…
牛客网 Java 工程师能力评估 20 题 - 详解 不知在看博客的你是否知道 牛客网,不知道就太落后了,分享给你 : 牛客网 此 20 题,绝对不只是 20 题! 免责声明:本博客为学习笔记,如有侵权请联系删除 牛客网 Java 工程师能力评估 20 题(仅题目模式) (1)下面有关 JVM 内存,说法错误的是? 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的 虚拟机栈描述的是 Java 方法执行的内存模型,用于存储局部变量,操作数栈,动态链接,方…
Thread作为线程的抽象,Thread的实例用于描述线程,对线程的操纵,就是对Thread实例对象的管理与控制. 创建一个线程这个问题,也就转换为如何构造一个正确的Thread对象. 构造方法列表 构造方法核心 如前面两个图所示,Thread共有8个构造方法 而且所有的构造方法都依赖于init方法     private void init(ThreadGroup g, Runnable target, String name,long stackSize) 所以换一个角度思考,可以认为只有一…
前言 Android中绘图离不开的就是Canvas了,Canvas是一个庞大的知识体系,有Java层的,也有jni层深入到Framework.Canvas有许多的知识内容,构建了一个武器库一般,所谓十八般武艺是也,Paint是Canvas的一个重要的合作伙伴,但今天要讲的不是Canvas也不是Paint,而是与Paint相关的知识点Shader. 什么是Shader? Shader在英语辞典中被解释为着色器.查阅维基百科,有以下结论: In the field of computer graph…
Java性能分析之线程栈详解 Java性能分析迈不过去的一个关键点是线程栈,新的性能班级也讲到了JVM这一块,所以本篇文章对线程栈进行基础知识普及以及如何对线程栈进行性能分析. 基本概念 线程堆栈也称线程调用堆栈,是虚拟机中线程(包括锁)状态的一个瞬间状态的快照,即系统在某一个时刻所有线程的运行状态,包括每一个线程的调用堆栈,锁的持有情况.虽然不同的虚拟机打印出来的格式有些不同,但是线程堆栈的信息都包含: 1.线程名字,id,线程的数量等. 2.线程的运行状态,锁的状态(锁被哪个线程持有,哪个线…