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()方法,就能取得一个实例对象。
相关推荐
Mysql 与 java 的时间类型 MySql的时间类型有 Java中与之对应的时间类型 datejava.sql.Date Datetimejava.sql
可热插拔的Java类型检查
25.java类型转换.zip25.java类型转换.zip25.java类型转换.zip25.java类型转换.zip25.java类型转换.zip25.java类型转换.zip25.java类型转换.zip25.java类型转换.zip25.java类型转换.zip25.java类型转换.zip25.java...
JAVA类型转换[文].pdf
记录了JAVA各类型的转换
hibernate和java类型转换,hibernate和java类型转换
java中jython操作把python数据类型转成java类型 例如list->List dict->Map set->Set 以及一些基本操作的包装整合
类型转换器 1.Object to Long 2.Object to Integer 3.Object to Double 4.Object to String
Hibernate 映射类型与Java 类型的对照表
关于将SQL数据类型和Java类型进行映射的内容
java类型转换,是java很基础的一部分,但很多时候偏偏就会在这样的基础细节部分出错,希望能对大家有帮助。
JAVA类型转换.pdf
java类型转换运算符
SQL Server数据库与Java类型对照 2010年04月16日
controller 和 service ,dao等,全程使用 Java 类型 作为参数,自动解析,无需 过多的手动干预。 配套教程 https://blog.csdn.net/w1047667241/article/details/127697481
java类型转换.pdf
sqlserver数据库类型对应Java中的数据类型
jtsgen :将Java类型转换为TypeScript tl; dr在TypeScript项目中启用Java类型的代码完成。 注释: 处理器: 特征 该项目从Java源发出TypeScript类型。 jtsgen被实现为注释处理器,因此应该轻松地将其集成到当前的...
java类型转换IntegerStringLongFloatDoubleDate.doc