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