摘要: 二、虚拟机类加载机制 1、概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 类的加载和连接过程都是在运行期间完成的,java的动态扩展语言特性就是依赖这样的特性实现的。 类的加载过程可以被分成:加载、验证、准备、解 阅读全文
posted @ 2018-04-18 17:22 jing_2017 阅读(97) 评论(0) 推荐(0)
摘要: 一、类文件结构 虚拟机和字节码存储格式是java实现平台无关性的基石。 Class文件是一组以8位字节为基础的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符。具体的存储结构为: 1、魔数 用来确定文件是否是一个能被虚拟机接受的Class文件。 2、版本号 j 阅读全文
posted @ 2018-04-18 11:09 jing_2017 阅读(283) 评论(0) 推荐(0)
摘要: 内存分配与回收策略 一、对象优先在Eden分配 大多数情况下,对象在新生代Eden区中分配,当Eden区没有足够的空间进行分配时,虚拟机将发起一次Minor GC。 Minor GC:指发生在新生代的垃圾收集动作,因为java对象大多都具备朝生夕灭的特征,所以Minor GC非常频繁,一般回收速度也 阅读全文
posted @ 2018-04-09 11:06 jing_2017 阅读(143) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2018-04-09 10:10 jing_2017 阅读(1) 评论(0) 推荐(0)
摘要: 文章从这篇开始,属于《深入理解java虚拟机》这本书的读书笔记。自认为我的能力一般,水平有限,因此,这个系列只限于我对读书时候得到的感悟的总结,不保证正确,网友以及我自己,都要批判地阅读。 运行时数据区 1、程序计数器 1>“线程私有” 2>如果执行java方法,计数器记录正在执行的虚拟机字节码指令 阅读全文
posted @ 2018-04-04 14:44 jing_2017 阅读(116) 评论(0) 推荐(0)
摘要: 结论:java中是值传递 1、java内存模型 在赋值操作中,基本类型的20及其引用n都被存在了栈空间中; 引用类型的引用的地址被存储在栈空间,新建的对象则被存储在堆空间。(String字面量赋值方式除外,字面量会存储在常量池里) 2、方法调用过程 方法的调用就是给形参赋值的过程。 对于基本类型来说 阅读全文
posted @ 2018-04-02 21:54 jing_2017 阅读(110) 评论(0) 推荐(0)