黑马程序员技术交流社区
标题:
Class 字节码?
[打印本页]
作者:
--_.Is’攸稀
时间:
2014-2-16 20:29
标题:
Class 字节码?
额~才开始学到反射~字节码是什么?谁能具体形象的告诉一下?
作者:
lgqioi
时间:
2014-2-16 21:25
字节是电脑里的数据量单位 字节码(Byte-code)是一种包含执行程序、由一序列 op 代码/数据对组成的二进制文件。字节码是一种中间码它比机器码更抽象。它经常被看作是包含一个执行程序的二进制文件,更像一个对象模型。字节码被这样叫是因为通常每个 opcode 是一字节长,但是指令码的长度是变化的。
一:Class类代表Java类,它的各个实例对象又分别对应什么呢?
1:对应各个类在内存中的字节码,例如,Person类的字节码,ArrayList类的字节码,等等。
2:
一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节 码是不同的,所以它们在内存中的内容是不同的
,这一个个的空间可分别用一个个的对象来表示,这些对象显然具有相同的类型,这个类型是什么呢?
二:如何得到各个字节码对应的实例对象( Class类型)
1:类名.class,例如,System.class
2:对象.getClass(),例如,new Date().getClass()
3:Class.forName("类名"),例如,Class.forName("java.util.Date");
作者:
一年_Hei
时间:
2014-2-16 23:00
简单的说,类的字节码就是一个java类通过类加载器加载到内存中的二进制文件。个人理解就是java类在内存中形式。
作者:
kkopopo
时间:
2014-2-17 00:28
lgqioi 发表于 2014-2-16 21:25
字节是电脑里的数据量单位 字节码(Byte-code)是一种包含执行程序、由一序列 op 代码/数据对组成的二进制文 ...
受教了!
作者:
徐青松
时间:
2014-2-17 00:31
Java是一种跨平台的语言,它可以跨平台,是因为我们编译的结果是中间代码:字节码。而不是机器码。字节码在运行时通过JVM做一次转换生成机器指令,所以能够更好的跨平台运行。定义好一个类编译时会被类加载器加载到内存中,内存中存储的内容就是这个类的字节码。其实你可以把字节码想象成未完全解析的二进制码,没有字节码就没有最终的二进制码。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2