A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© --_.Is’攸稀 中级黑马   /  2014-2-16 20:29  /  1824 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

额~才开始学到反射~字节码是什么?谁能具体形象的告诉一下?

评分

参与人数 1黑马币 +5 收起 理由
何伟超 + 5

查看全部评分

4 个回复

倒序浏览
字节是电脑里的数据量单位 字节码(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");

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
一年_Hei 来自手机 中级黑马 2014-2-16 23:00:19
藤椅
简单的说,类的字节码就是一个java类通过类加载器加载到内存中的二进制文件。个人理解就是java类在内存中形式。
回复 使用道具 举报
lgqioi 发表于 2014-2-16 21:25
字节是电脑里的数据量单位 字节码(Byte-code)是一种包含执行程序、由一序列 op 代码/数据对组成的二进制文 ...

受教了!
回复 使用道具 举报
Java是一种跨平台的语言,它可以跨平台,是因为我们编译的结果是中间代码:字节码。而不是机器码。字节码在运行时通过JVM做一次转换生成机器指令,所以能够更好的跨平台运行。定义好一个类编译时会被类加载器加载到内存中,内存中存储的内容就是这个类的字节码。其实你可以把字节码想象成未完全解析的二进制码,没有字节码就没有最终的二进制码。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马