黑马程序员技术交流社区

标题: 反射中老说到字节码 啥意思 呢 谁给详细讲讲啊 [打印本页]

作者: 沙漠里的小鱼    时间: 2012-2-9 16:25
标题: 反射中老说到字节码 啥意思 呢 谁给详细讲讲啊
反射中老说到字节码 啥意思 呢谁给详细讲讲啊
作者: 余海龙    时间: 2012-2-9 16:30
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;
对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。


作者: 林铁柱    时间: 2012-2-9 17:22
就是.class文件,Class的实例对象不能主动创建,当一个类被加载,或当加载器的defineClass()被JVM调用,JVM 便自动产生一个Class实例对象。一下是部分源代码:
public final   
class Class<T> implements Serializable,   
java.lang.reflect.GenericDeclaration,   
java.lang.reflect.Type,   
java.lang.reflect.AnnotatedElement {   
private Class() {}     //构造方法为私有的  
public String toString() {   
return ( isInterface() ? "interface " :   
(isPrimitive() ? "" : "class "))   
+ getName();   
}
作者: 成果    时间: 2012-2-9 23:44
字节码就是我们在执行javac XX.java时候生成的一个XX.class文件。把用java编写的包括其modifiers(诸如public, static 等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,都存进.class文件当中了。然后通过命令java xxx解析执行class文件。
作者: 侯丽星    时间: 2012-2-14 18:52
字节码:即类被编译后,产生的.class文件被加载到内存后的内容。
一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同类的字节码是不同的,所以他们在内存中的内容也是不同的。这一个个的空间可分别用一个个的对象来表示,这些对象显然具有相同的类型,这个类型就是Class类。

得到每个字节码对应的实例对象的方法有3种:
1. 类名.class,例如:Date.class
2. 对象.getClass(),例如:New Date().getClass()
3. Class.forName("类名"),例如:Class.forName("java.util.Date")




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2