`
laosu
  • 浏览: 12812 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java类型

    博客分类:
  • JAVA
阅读更多

 

        java文件被JDK编译成为class文件,class文件又被jvm加载到内存生成Class对象,Class对象又可以在运行时,生成java类的对象。这篇文章就来介绍一下他们之间的转化关系。

1>    class文件

        当使用编辑器编写完毕class文件后,使用javac命令或者编译器自动就把java文件编译成为class文件。class文件是以十六进制字节码的形式保存。java的编译过程就是把java文件翻译成为class字节码的过程。有关class文件的详细介绍,可以查看《深入理解Java虚拟机:JVM高级特性与最佳实践》一书,里面有非常详尽的介绍。

2>  Class对象

    class文件作为物理文件,可以再磁盘上保存,可以作为普通文件复制粘贴,但是Class对象只能在内存中,他是class文件在内存中的代言人,是在内存中的保存方式。

    当java程序运行时,需要使用到一个java类的实例,jvm现在方法区中判断Class对象是否被加载,没有被加载,类加载器根据使用类的路径找到class文件,把class文件加载到内存中,生成Class对象。Class对象存放于方法区(方法区和堆区区别可以查看《深入理解Java虚拟机:JVM高级特性与最佳实践》)。

    Class对象生成方式有三种:

    1.Class.forName("类名字符串")  (注意:类名字符串必须是全称,包名+类名)
    2.类名.class
    3.实例对象.getClass()

    理解Class对象是学习反射和代理的基础。

3>  java类对象

    java类对象又称为java实例对象等,是java程序的主要执行者。保存到堆内存中。

    使用Class对象的newInstance()方法,就能取得一个实例对象。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics