zoukankan      html  css  js  c++  java
  • 反射_1.深入理解Class

    1.Class类是什么?

       摘自张孝祥老师PPT:每一个JAVA类都属于同一类事物,描述这类事物的java类就是Class

    2.获取类Class的三种方式?

    String str = "123";
    // 1.使用对象的getClass方法获取
    Class c1 = str.getClass();
    // 2.使用类.class获取
    Class c2 = String.class;
    // 3.使用Class类自带的方法,传递类路径加载字节码到内存
    Class c3 = null;
    try {
         c3 = Class.forName("java.lang.String");
    } catch (ClassNotFoundException e) {
       e.printStackTrace();
    }
    System.out.println(c1 == c2);
    System.out.println(c1 == c3);

    控制台结果:

      true
      true

    3.这三种方式有什么异同吗?

       getClass()方式和xxx.class方式获取都是通过从jvm内存已有的类字节码中创建对象

      而Class.forName("java.lang.String")是通过先去硬盘加载class字节码文件到内存,再从类字节码中创建对象。

      相当于步骤多了一步。

    4.常用方法有哪些?

       

    c1.newInstance();//创建一个对象
    c1.getName();//得到该类对象的名字(即全路径:es:java.lang.String)
    c1.getSimpleName();//得到类名(es:String)
    c1.getSuperclass();//得到父类

      -_-就先写这么多,其它看看API吧,都很简单

    5.Person p1=new Student();其中Student是Person的子类,请问p1.getClass()得到的是Person.class还是Student.class呢?

      答:是Student.class

    --------------------------------------------------------------------------------------------------------------------------------------------------

        

    --------------------------------------------------------------------------------------------------------------------------------------------------  

     6.Integer.class和int.class是同一个对象吗?为什么?

     System.out.println(Integer.class==int.class); // 结果为false;

     不是同一个对象,因为他们不属于同一个类。

     附图:

      

  • 相关阅读:
    apache 修改文件上传大小限制
    linux 桥接模式下 固定ip 设置
    简易 红包生成
    Sublime Text 3 快捷键
    excle 文件的导入和导出
    php 下载文件
    右则css 小浮条
    html 自动跳转页面
    Media Queries详细
    mobile响应式页面meta信息相关记录
  • 原文地址:https://www.cnblogs.com/dingjm01/p/8317211.html
Copyright © 2011-2022 走看看