黑马程序员技术交流社区
标题:
反射:字节码是指二进制码吗?
[打印本页]
作者:
我能驾驭住
时间:
2012-6-15 14:31
标题:
反射:字节码是指二进制码吗?
/*字节码:
* 每一个字节码都是一个类的实例化对象;
* 当一个文件存放到硬盘时,就会产生一个二进制码,然后二进制码加载到内存里面来,然后去创建一个一个对象;
* 首先把类的字节码加载到内存里面,再用字节码去复制一个一个对象;
//获取Class类字节码有三种方式
Class cls1 = str.getClass();// 1:对象调用getClass()方法 格式:对象.getClass()
Class cls2 = String.class;// 2:用类名调用Class 格式:类名.Class
Class cls3 = Class.forName("java.lang.String");// 3:调用forName静态方法,格式:Class.forName("类名//例如:“java.lang.String”")
作者:
宋建华
时间:
2012-6-15 14:39
JAVA中的是字节码java编译后的,可以由java虚拟机运行的代码。就相当于二进制,可以被普通机器识别一样
作者:
武剑峰
时间:
2012-6-15 14:41
楼主你可将自己获取的cls1,cls2,cls3输出一下,看看是不是。输出如下:
class java.lang.String
class java.lang.String
class java.lang.String
看来不是二进制码,呵呵,有时有疑问时可以自己试试
作者:
陌花╮有意、
时间:
2012-6-15 14:43
字节码(Byte-code)是一种包含执行程序、由一序列 op 代码/数据对组成的二进制文件。字节码是一种中间码,它比机器码更抽象。它经常被看作是包含一个执行程序的二进制文件,更像一个对象模型
作者:
郑冬
时间:
2012-6-15 14:47
是二进制的,其实也只是jvm的机器码。可以看一下深入jvm规范里,有讲到class的格式
作者:
武剑峰
时间:
2012-6-15 19:38
我晕了,看来以后也的上上百度了。
作者:
王广丛
时间:
2012-6-15 21:42
因为计算机识别的是二进制码,而java编译后的字节码文件就是可以让jvm识别的,所以可以看作是二进制码
作者:
刘建龙
时间:
2012-6-15 21:53
java的字节码是有对应的jvm翻译成对应的二进制码,然后再在操作系统上执行的,所以只要在对应的操作系统上安装对应的jvm就可以执行java程序了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2