安卓笔记侠

专注安卓开发

导航

2018年8月6日 #

深入理解Java虚拟机06--虚拟机字节码执行引擎

摘要: 一.前言 物理机的执行引擎是直接在物理硬件如CPU、操作系统、指令集上运行的,但是对于虚拟机来讲,他的执行引擎由自己实现。 执行引擎有统一的外观(Java虚拟机规范),不同类型的虚拟机都遵循了这一规范,输入字节码文件,解析字节码处理,然后输出结果。 二.运行时栈帧结构 1、栈帧概念栈帧(Stack 阅读全文

posted @ 2018-08-06 13:37 安卓笔记侠 阅读(437) 评论(0) 推荐(0) 编辑

深入理解Java虚拟机05--虚拟机类加载机制

摘要: 一.前言 我们一定心里有个疑问,我们那个多态是怎么回事?我们指定的一个接口,却可以等到运行时可以对应于不同的实现类。这是因为,Java有个特性就是依赖运行期动态加载和动态连接,这样实现了Java可以动态进行扩展。我们甚至可以从网络或者其他的地方加载一个二进制流作为程序的一部分。所以,我们通过编译器将 阅读全文

posted @ 2018-08-06 11:32 安卓笔记侠 阅读(608) 评论(1) 推荐(2) 编辑

深入理解Java虚拟机04--类结构文件

摘要: 一.程序存储格式 统一的程序存储格式:不同平台的虚拟机于所有平台都统一使用程序存储格式——字节码(ByteCode); Java 虚拟机不关心 Class 文件的来源,而只和“Class文件"这种二进制文件格式关联,也就是说Java虚拟机只认识“Class"文件; Java 编译器可以把 Java 阅读全文

posted @ 2018-08-06 11:15 安卓笔记侠 阅读(455) 评论(0) 推荐(0) 编辑

深入理解Java虚拟机03--垃圾收集器与内存分配策略

摘要: 一.概述 哪些内存需要回收? 什么时候回收? 如何回收? 二.对象已死吗 1.引用计数算法 定义:给对象添加一个引用计数器,当增加一个引用时,加1,当一个引用时,减1; 缺陷:当对象之间互相循环引用时,就会变的像“不死对象”; 2.可达性分析算法 在主流的商用程序语言(Java、C#,甚至包括前面提 阅读全文

posted @ 2018-08-06 10:06 安卓笔记侠 阅读(336) 评论(0) 推荐(0) 编辑

深入理解Java虚拟机02--Java内存区域与内存溢出异常

摘要: 一.概述 我们在进行 Java 开发的时候,很少关心 Java 的内存分配等等,因为这些活都让 JVM 给我们做了。不仅自动给我们分配内存,还有自动的回收无需再占用的内存空间,以腾出内存供其他人使用。但是我们经常面临的一个问题就是内存泄漏,JVM无法完成回收工作,导致内存占用暴涨,最后可能让程序奔溃 阅读全文

posted @ 2018-08-06 09:59 安卓笔记侠 阅读(356) 评论(0) 推荐(0) 编辑

深入理解Java虚拟机01--概述

摘要: 本课题是对《深入理解Java虚拟机》周志明 第二版的总结 具体可以参考:https://pan.baidu.com/s/1v_mPp--XV4u4rCBMkbR37A 第1版 可以忽略 直接看 第2版就行 阅读全文

posted @ 2018-08-06 09:30 安卓笔记侠 阅读(292) 评论(0) 推荐(0) 编辑