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 · 63 阅读 · 0 评论 -
JVM-类型的生命周期
类型的生命周期包括:装载,连接,初始化,卸载(和类装载器有关,不一定有)。[color=red]装载:[/color]将类的结构信息装载到内存中(这其中就包括很重要的角色--类的常量池,但是符号引用还没有解析),装载完毕之后会生成一个该类的Class对象。[color=red]连接:[/color]连接又包括[color=red]验证,准备和解析[/color]。验证就是检验class文件...2016-04-13 10:50:41 · 111 阅读 · 0 评论 -
JVM-对象的生命周期
当一个类型经历了装载,连接,初始化之后,就可以为这个类变量实例化一个对象了。在java中,一个类可以被显式或者隐式的实例化。显式实例化有四种方法:1 使用new操作符2 调用java.lang.reflect.Constructor的newInstance方法3 调用现有对象的clone方法4 通过java.io.ObjectInputStream的readObject方法反序...2016-04-13 14:58:18 · 88 阅读 · 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 · 70 阅读 · 0 评论 -
JVM-典型的垃圾收集器
从前面的博客知道,类实例化产生的对象在堆区中存储,而堆区不可能无限大,因此需要有垃圾收集器。[color=red]JVM的垃圾收集器干两件事:1 碎片整理:整理内存碎片2 垃圾回收:以某种算法发现垃圾,并使用某种算法清除垃圾。[/color][color=red]JVM常见的垃圾发现算法包括引用计数和追踪[/color]。其中,[b]引用计数[/b]就是为每个对象维护一个数字,这个...原创 2016-04-14 19:10:37 · 113 阅读 · 0 评论 -
JVM-常量池
学习JVM之后,发现对常量池的理解又深入了一些。下面就从JVM的层面去理解JAVA程序中那些常见的语句。读过笔者博客“JVM-类的生命周期“[url]http://yizhenn.iteye.com/blog/2290619[/url]的读者都应该已经知道,JVM在加载class文件时经历了装载,连接,初始化的过程,其中连接又包括验证,准备和解析。我们就来说说这个解析。[b]所谓解析,...2016-04-15 20:17:12 · 88 阅读 · 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 · 117 阅读 · 0 评论