JVM
文章平均质量分 80
supereagle
2010年本科毕业于华中科技大学计算机学院,2013年硕士毕业于浙江大学计算机学院。目前在IBM上海从事自动化测试,专注于Java开发。
展开
-
Java虚拟机之体系结构
Java虚拟机是运行java程序的载体。每一个java程序,都会启动一个单独的Java虚拟机。虚拟机之间有自己独立的空间,相互之间不会干扰。那么,java程序的class文件是如何在虚拟机上运行的呢?我们先了解一下Java虚拟机的体系结构,以及其工作原理。Java虚拟机的体系结构图1.类装载器 负责查找并装载类型。Java虚拟机提供两种类装载器:Java虚拟机中的启原创 2012-12-04 20:40:43 · 1185 阅读 · 0 评论 -
Java虚拟机之对象的生命周期
要在JVM的堆中创建某类型的实例化对象,必须先完成该类型的加载、连接和初始化。因此,对象的生命周期只是类生命周期中的使用阶段,而类的生命周期要比对象的生命周期要长。对象的生命周期开始于类的实例化,中间经历使用阶段,结束于对象的垃圾收集。下面主要介绍对象生命周期中的这三个阶段。1. 类实例化 Java程序中,类可以被显式或者隐式地实例化。 显式实例化的4种途径:原创 2013-01-26 15:51:55 · 1473 阅读 · 0 评论 -
Java虚拟机之垃圾回收
内存作为程序运行时非常重要的一个系统资源,直接影响到程序的正常运行和程序性能。C/C++需要程序员显式地分配和释放内存,这不仅给程序员带来工作负担,而且还会给程序带来内存错误访问和泄露的安全隐患。Java的垃圾回收能够自动地管理内存,不仅提高了程序开发效率,而且保证了系统的安全性。 Java的垃圾回收机制主要的任务有两个:1. 识别不再被使用的对象;2. 释放不再被使用对原创 2013-01-15 19:02:14 · 1364 阅读 · 0 评论 -
Java虚拟机之Class文件
Class文件是Java程序的二进制格式,全面描述Java类或者接口。每个Class文件只能描述一个Java类或者接口的全部信息。Class文件的特点:1. 8位字节的二进制流;2. 按照数据项顺序存储,高位在前;3. 数据项之间没有间隔。Java虚拟机是通过读取和解析Class文件来执行Java程序,但是其他一些语言可以编译成Class文件在Java虚拟机上运行。因此,Java虚拟机并不关心Cl原创 2013-01-21 11:16:08 · 1551 阅读 · 0 评论 -
Java虚拟机之线程同步
对于多线程,我们更多地是在操作系统中接触到这个概念,但是Java却在语言级支持多线程,这也是Java语言的一大优势。Java所使用的线程同步机制是监视器。1. 监视器Java监视器支持两种线程同步:互斥和协作。互斥:通过对象锁来实现,允许多个线程在同一个共享数据上独立而不干扰地工作。协作:通过Object类的wait方法和notify方法来实现,允许多个线程为了同一个目标而共同原创 2013-02-24 21:50:29 · 1369 阅读 · 0 评论 -
Java虚拟机之连接模型
Java程序在运行之前,每个类和接口都是独立的class文件。JVM是怎样装载和解析这些class文件,使它们之间能够相互关联呢?下面我们来深入研究Java体系结构中非常重要的一方面——连接模型。 Java程序经过编译后,得到的是每个类或者接口的独立的class文件。虽然这些文件看上去毫无关联,但是JVM通过动态连接过程,使它们之间通过接口(harbor)符号相互联系,或与Java原创 2013-02-28 18:53:02 · 1515 阅读 · 0 评论 -
Java虚拟机之类的生命周期
Java作为一种面向对象语言,类是其非常重要的组成部分。Java程序经过编译之后,每个类或接口都会对应一个class文件。Java类型的生命周期就是指一个类型的class文件从被JVM加载到被JVM卸载的全过程。类型的生命周期一般包括装载、连接、初始化、使用和卸载五个阶段。1.装载 在装载阶段,Java虚拟机类加载器把类信息从二进制class文件读入JVM的方法区中,并在堆中创建该类原创 2013-01-24 14:02:27 · 1529 阅读 · 0 评论