首页 > 其他 > 详细

JVM复习笔记

时间:2016-02-19 12:05:44      阅读:119      评论:0      收藏:0      [点我收藏+]

1. JVM是什么?

    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

    Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,

    Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上

    不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

2. 为什么使用JVM?

    在不同平台上运行时不需要重新编译。

3. 与**有什么不同?

4. 骨架

    1). Java 虚拟机自带的加载器

          a). 根类加载器(Bootstrap): 虚拟机核心类库,java.lang.*等

          b). 扩展类加载器(Extension):从java.ext.dirs系统属性所指定的目录加载类库或者从JDK的安装目录jre/lib/ext 

          c). 系统类加载器(System):classpath

 

5. 怎么用?

6. 使用注意事项

    1). 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。

         方法区内是类的二进制数据结构,堆内存中才是Class对象,且Class对象指向方法区中类二进制数据结构。当堆内没有Class对象指向方法区中类二进制数据结构时,该二进制数据将会被卸载。

         类的加载的最终产品是位于堆区中的Class 对象。Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。

    2). 需要指出的是,加载器之间的父子关系实际上指的是加载器对象之间的包装关系,而不是类之间的继承关系。一对父子加载器可能是同一个加载器类的两个实例,也可能不是。在子加载器对象中包装

         了一个父加载器对象。 

    3). 每个类加载器都有自己的命名空间,命名空间由该加载器及所有父加载器所加载的类组成。在同一个命名空间中不会出现类的完整名字(包括类的包名)相同的两个类;在不同的命名空间中有可能会

         出现类的完整名字(包括类的包名)相同的两个类。

7. 优化

8. 监控

 

JVM复习笔记

原文:http://www.cnblogs.com/Jtianlin/p/5200181.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!