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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我能驾驭住 中级黑马   /  2012-6-15 14:31  /  3103 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*字节码:
                 * 每一个字节码都是一个类的实例化对象;
                 * 当一个文件存放到硬盘时,就会产生一个二进制码,然后二进制码加载到内存里面来,然后去创建一个一个对象;
                 * 首先把类的字节码加载到内存里面,再用字节码去复制一个一个对象;
               
                //获取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”")
               

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
JAVA中的是字节码java编译后的,可以由java虚拟机运行的代码。就相当于二进制,可以被普通机器识别一样

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼主你可将自己获取的cls1,cls2,cls3输出一下,看看是不是。输出如下:
class java.lang.String
class java.lang.String
class java.lang.String
看来不是二进制码,呵呵,有时有疑问时可以自己试试

点评

输出不是万能的,输出之前会自动调用toString方法,所以输出的并不是他本身~~但是有这个试试的想法很好,虽然答错了~~~  发表于 2012-6-15 16:54

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
字节码(Byte-code)是一种包含执行程序、由一序列 op 代码/数据对组成的二进制文件。字节码是一种中间码,它比机器码更抽象。它经常被看作是包含一个执行程序的二进制文件,更像一个对象模型

点评

哥,请不要把百度生硬的解答发过来,要发也好歹翻译一下先啊~  发表于 2012-6-15 16:57
回复 使用道具 举报
是二进制的,其实也只是jvm的机器码。可以看一下深入jvm规范里,有讲到class的格式
回复 使用道具 举报
我晕了,看来以后也的上上百度了。
回复 使用道具 举报
因为计算机识别的是二进制码,而java编译后的字节码文件就是可以让jvm识别的,所以可以看作是二进制码
回复 使用道具 举报
java的字节码是有对应的jvm翻译成对应的二进制码,然后再在操作系统上执行的,所以只要在对应的操作系统上安装对应的jvm就可以执行java程序了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马