关于java反射的总结

1.反射

1.1java文件和.class文件的关系

 

Java文件
    Java文件中包含代码的所有内容,类,接口,成员变量,成员方法....

.class字节码问题
    .java文件 通过 javac编译工具生成对应的.class字节码文件
    使用JDK中提供的反编译工具,可以看到.class文件中包含 
        Class 完整的包名.类名
        Field 成员变量,成员变量的名字和成员变量的数据类型[如果是引用数据类型,也是
            完整的包名.类名]
        Method 成员方法,方法权限修饰符,返回值类型,方法名,形式参数列表数据类型

总结:
    .class字节码文件中,包含了Java文件的所有内容

 

1.2 程序加载过程和.class文件的关系

 

在Java文件运行过程中,当前程序需要哪一个类参与代码执行,那么就需要加载这个类的.class字节码文件,该.class字节码文件时在程序的加载阶段,存在于内存的【代码区】
    
    .class字节码文件既然加载到内存的【代码区】
    .class文件中包含对应Java程序的所有内容
    代码区存在一块空间 ==> .class ==> Java程序的所有内容

1.3java中的万物皆对象

在Java代码中,把在内存代码区保存的.class字节码内存空间,看做是一个对象。而该对象中包含了对应Java文件的所有内容。

class文本保存在内存的代码区

关于java反射的总结_第1张图片

 

1.4什么叫Class

class Person {
    int age;
    String name;
    
    public Person() {}
    
    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }
    
    public void test() {
        sout("方法");
    }
}

class Dog {
    String name;
    char gender;
    
    public Dog() {}
    
    public Dog(String name, char gender) {
        this.name = name;
        this.gender = gender;
    }
    
    public void eat() {
        sout("狗狗吃肉");
    }
}

Class引出图片

关于java反射的总结_第2张图片

 

 

 

 

 

你可能感兴趣的:(java学习,java)