
JVM
iteye_4653
这个作者很懒,什么都没留下…
展开
-
JVM-体系结构
大家都知道,java号称一次编译,处处运行。之所以能够这么强大,jvm功不可没。直接上图: [img]http://dl2.iteye.com/upload/attachment/0116/5326/4b64421c-95b1-3abb-bbd0-32dc52171f63.png[/img] 笔者看过这张图很多次,一直没能理解。一直到最近,觉得能够明白到写博客了。一个java文件通过编译可以得...原创 2016-04-12 08:21:32 · 74 阅读 · 0 评论 -
JVM-类型的生命周期
类型的生命周期包括:装载,连接,初始化,卸载(和类装载器有关,不一定有)。 [color=red]装载:[/color]将类的结构信息装载到内存中(这其中就包括很重要的角色--类的常量池,但是符号引用还没有解析),装载完毕之后会生成一个该类的Class对象。 [color=red]连接:[/color]连接又包括[color=red]验证,准备和解析[/color]。验证就是检验class文件...2016-04-13 10:50:41 · 123 阅读 · 0 评论 -
JVM-对象的生命周期
当一个类型经历了装载,连接,初始化之后,就可以为这个类变量实例化一个对象了。在java中,一个类可以被显式或者隐式的实例化。 显式实例化有四种方法: 1 使用new操作符 2 调用java.lang.reflect.Constructor的newInstance方法 3 调用现有对象的clone方法 4 通过java.io.ObjectInputStream的readObject方法反序...2016-04-13 14:58:18 · 100 阅读 · 0 评论 -
JVM-线程同步
在语言级别支持多线程是java语言的一大优势。之前的java并发系列博客中介绍了一些相关的基础知识。这里我们来看看java虚拟机对java多线程的支持。 [color=red]JVM对多线程的支持有两种: 1 互斥:通过对象锁来实现 2 协同:通过Object类的wait,notify,notifyAll方法来实现[/color] [color=red][b]关于互斥:[/b][/...2016-04-14 08:58:06 · 82 阅读 · 0 评论 -
JVM-典型的垃圾收集器
从前面的博客知道,类实例化产生的对象在堆区中存储,而堆区不可能无限大,因此需要有垃圾收集器。[color=red]JVM的垃圾收集器干两件事: 1 碎片整理:整理内存碎片 2 垃圾回收:以某种算法发现垃圾,并使用某种算法清除垃圾。[/color] [color=red]JVM常见的垃圾发现算法包括引用计数和追踪[/color]。其中,[b]引用计数[/b]就是为每个对象维护一个数字,这个...原创 2016-04-14 19:10:37 · 128 阅读 · 0 评论 -
JVM-常量池
学习JVM之后,发现对常量池的理解又深入了一些。下面就从JVM的层面去理解JAVA程序中那些常见的语句。 读过笔者博客“JVM-类的生命周期“[url]http://yizhenn.iteye.com/blog/2290619[/url]的读者都应该已经知道,JVM在加载class文件时经历了装载,连接,初始化的过程,其中连接又包括验证,准备和解析。我们就来说说这个解析。 [b]所谓解析,...2016-04-15 20:17:12 · 100 阅读 · 0 评论 -
JVM-ClassLoader装载class的流程
在JVM中,有三种默认的类加载器,分别为Bootstrap ClassLoader,Extension CLassLoader以及App ClassLoader。其中,Bootstrap Classloader用于加载JAVA的核心类库,Extension Classloader用于加载JAVA的扩展类库,而App ClassLoader则用于装载类路径中的用户自定义的类。 具体的流程如下:...2016-05-18 14:28:28 · 132 阅读 · 0 评论