jvm
摸鱼小助手03
这个作者很懒,什么都没留下…
展开
-
java自动装箱、拆箱
java自动装箱和自动拆箱 自动装箱:把一个基本数据类型直接赋值给一个对应的包装类。 自动拆箱:把一个包装类对象直接赋值给对应的基本数据类型。 例如: Integer i=10;//这是自动装箱 int p=i;//这是自动拆箱 基本数据类型boolean/ byte/ int / float / double/ long /short / char 例1: 输出的结果为原创 2017-05-28 14:15:15 · 246 阅读 · 0 评论 -
java类加载机制
部分转自:http://www.cnblogs.com/ityouknow/p/5603287.html 一、java类加载机制 分为5步:加载、校验、准备、解析、初始化 (1)加载:查找并加载类的二进制数据 (2)校验:确保被加载类的正确性 (3)准备:为类的静态变量分配内存空间,并将其初始化为默认值 (4)解析:把类的符号引用转换为直接引用 (5)初始化:将类的静态变量赋予正确的初转载 2017-07-03 15:50:56 · 303 阅读 · 0 评论 -
java虚拟机内存分布
《深入理解java虚拟机》,很好的解释了JVM的工作原理,下面是我自己在学习这本时,总结的一些笔记,摘自周志明的《深入理解java虚拟机》第二版 理解jvm的工作原理,对java员来说是非常必要的。 java虚拟机运行时数据区分为:方法区,堆区,栈区,程序计数器。 1、程序计数器 程序计数器是一块比较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。 多线程时,为了线程切换原创 2017-05-27 15:36:00 · 699 阅读 · 0 评论 -
新生代和老年代
以下为我学习java新生代和老年代所整理的笔记。摘自《深入理解java虚拟机》一书。 java堆可以细分为新生代和老年代 新生代:生命周期比较短的对象。 老年代:生命周期比较长的对象。 1、新生代常采用的算法:复制算法 现在商业虚拟机都采用这种收集算法来回收新生代。 新生代的对象98%都是“朝生夕死”,将内存分为一块较大的Eden空间和from survior和 to surv原创 2017-05-28 15:28:05 · 3644 阅读 · 1 评论 -
两个互相引用对象的垃圾回收
部分转自:《深入理解java虚拟机》一书。 判断对象是否存活 1、引用计数算法 给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1。 当引用失效时,计数器值就减1。 任何时刻计数器为0的对象就是不可能再被使用的。 但是主流的java虚拟机没有采用引用计数算法,其中最主要的原因就是它很难解决对象之间互相循环引用的问题。 例子: 对象A和B互相引用,但除此之外,这两个对象原创 2017-06-19 16:56:16 · 8410 阅读 · 0 评论 -
java的四种引用方式
java有四种引用方式。 强引用、软引用、弱引用、虚引用。 强引用: Object object = new Object(); String str = "hello"; 只要强引用还在,垃圾回收器永远不会回收掉被引用的对象。 软引用: 用来描述一些还有用但并非必须的对象。 如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它; 如果内存空间原创 2017-06-19 21:12:37 · 357 阅读 · 0 评论