java学习之反射初接触

    技术2025-09-05  91

     

     反射就是把java中各个成分(比如方法,属性,package,数组之类的有统一名字,又能抽象出来的东西)映射成java中相应的各种类

     

    字节码:当加载类时,先把类的二进制字节码加载到内存中,再用字节码复制一个又一个对象

     

    得到字节码方式:如果内存中已经存在该字节码,则返回该字节码,如不存在,则先加载,再返回加载的字节码

     

    三种方式获得字节码:

     

    1.   对象.getClass();

    2.   类.Class

    3.  Class.forName("");

     

    如:

      String str= “”;

      Class cs1= str.getClass();

      Class cs2= String.Class();

      Class cs3= Class.forName("java.lang.String");

     

    public class ReflectTest {    public static void main(String args[]) {        String str1="";        Class cls1 = str1.getClass();        Class cls2 = String.class;        try {            Class cls3 = Class.forName("java.lang.String");            System.out.println(cls1==cls3);        } catch (ClassNotFoundException e) {            e.printStackTrace();        }        System.out.println(cls1==cls2);

            System.out.println(cls1.isPrimitive());        //String不是基本类型,isPrimitive判断是否为基本类型            }}

    也就是说,String类型的实例对象他们因为字节码相同

    所以他们相等

     

    最新回复(0)