PS:本文就Java基础需要掌握的反射知识做下汇总和分析。

Java-reflect:java反射,对应我们研究框架、底层框架起到基本的知识储备。

  • Class类
    Java的世界类,万事皆对象,所有的类都是java.lang.Class类的实例对象
     Thers is a class named Class
     所有的类不管是内部类,都是Class的对象
     任何一个类都是Class类的实例对象,这个实例对象有三种表示方式
     1. Class c1=类名.class;
         任何一个类都是有个隐含的静态成员变量
     2.Calss c2=类实例.getClass();
        c1和c2都是类的类型
        类也是对象,是Class类型对象
       一个类是Class类的一个对象
    3.Class c3=Class.forName("类的完整路径”);
    PS:我们可以通过类类型去创建实例对象,newInstance(),其会调用无参数构造方法,需要进行强制类型转换,这个就是反射!!!!
  • 动态加载类
    什么是编译、什么是运行??
    静态加载:编译时刻加载了类就是静态加载,new 类();
    动态加载:class.forName是动态加载,实在运行的时候加载类
    PS:考虑两者有什么不同点,静态加载有一个类找不到的时候,整个项目都使用不了。动态加载实在项目运行的时候,才会去加载,我用什么就加载什么。
         功能性的类要使用动态加载,后续扩展比较容易
  • 基本的数据类型
    1.Class c1=int.class;//int的类类型
    2.Class c2=String.class;//String类的类类型
    3.Class c3=double.class;
    4.Class c4=Double.class;
    5. Class c5=void.class;
  • Class 类的基本的API
    public static void printClassMessage(Object ob){
            //传递的是那个子类的对象,那么c就是那个,底层是java实现的
            Class c=ob.getClass();
            //获取类的名称
            System.out.println("类的全路径名称:"+c.getName());
            System.out.println("类的名称:"+c.getSimpleName());
            //获取类的方法,获取的是所有的public方法
            Method[] msPulbic=c.getMethods();
            //获取当前类的所有的方法,不管修饰符
            Method[] msOwn=c.getDeclaredMethods();
            //打印方法名
            for (Method method : msPulbic) {
                //获取返回参数的类类型
                Class returnType=method.getReturnType();
                System.out.println("方法的返回值:"+returnType.getName());
                //获取参数类型,参数列表的类类型
                Class<?>[] paramTypes=method.getParameterTypes();
                for (Class<?> classType : paramTypes) {
                    System.out.println("方法的参数:"+classType.getName());
                }
            }
        }

Java-反射初级知识掌握的更多相关文章

  1. Java反射-高级知识掌握

    PS:本文就Java反射的高级知识做下汇总,理清在什么情况下,我们应该去使用反射,提供框架的健壮性,ps:xieyang@163.com/xieyang@163.com

  2. Java反射-中级知识掌握

    PS:本文就Java反射常用的中级知识做下汇总和分析/cnxieyang@163.com/xieyang@e6yun.com

  3. java反射基础知识(五)反射应用实践

    详解Java反射各种应用   Java除了给我们提供在编译期得到类的各种信息之外,还通过反射让我们可以在运行期间得到类的各种信息.通过反射获取类的信息,得到类的信息之后,就可以获取以下相关内容: Cl ...

  4. java反射基础知识(三)

    原文地址:http://tutorials.jenkov.com/java-reflection/index.html http://www.cnblogs.com/penghongwei/p/329 ...

  5. java反射基础知识(二)

    1. 了解 Java 中的反射 1.1 什么是 Java 的反射 Java 反射是可以让我们在运行时获取类的函数.属性.父类.接口等 Class 内部信息的机制.通过反射还可以让我们在运行期实例化对象 ...

  6. java反射基础知识(一)

    一.反射 反射:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ...

  7. Java反射基础知识

    反射机制就是可以把一个类,类的成员(属性.方法)当成一个对象来操作,也就是说,类,类的成员,我们在运行的时候可以动态的去操作它们. 所有的Java类都继承了Object类,在Object类中定义了一个 ...

  8. java反射基础知识(四)反射应用实践

    反射基础 p.s: 本文需要读者对反射机制的API有一定程度的了解,如果之前没有接触过的话,建议先看一下官方文档的Quick Start. 在应用反射机制之前,首先我们先来看一下如何获取一个对象对应的 ...

  9. java对象初级知识

    this属于类 方法中没有自己的this指针(本来以为js方法中有,其实并没有里,那是被new出来的function 在声明的时候可以赋初值: int a =12 但不能   int a  ;   a ...

  10. Java反射实战

    一.背景 最近的项目中需要使用到Java 反射的知识,以前不怎么了解,也基本没怎么用过,抽出一片时间,来具体学习和实战下Java的反射!拿来和大家分享以及记录方便以后学习! 二.反射相关概念解析 1. ...

随机推荐

  1. Nginx优点

    1.高并发响应性能非常好,官方Nginx处理静态文件并发5w/s 2.反向代码性能非常强(可用于负载均衡) 3.内存和cpu占比率低(为Apache的1/5-1/10); 4.对后端服务有健康检查功能 ...

  2. Lucene实现索引和查询

    0引言 随着万维网的发展和大数据时代的到来,每天都有大量的数字化信息在生产.存储.传递和转化,如何从大量的信息中以一定的方式找到满足自己需求的信息,使之有序化并加以利用成为一大难题.全文检索技术是现如 ...

  3. socket编程部分API

    以TCP协议为例,UNIX的相关API int socket(int domain , int type , int protocol); 根据指定的地址族,数据类型,协议来分配一个socket的描述 ...

  4. win10 下 学习 xe10 误以为调试失效

    1. XE里面运行的有两个按扭,你点后面一个,就是debug 的了,前面一个是直接运行,不一样的!,被delphi7老思维导向错了  1)绿色箭头是直接运行,快捷键:ctrl+shfit+F9  2) ...

  5. Android Activity生命周期详细解析

    概况 讲Android Activity那怎么都绕不过这张图,这篇文章也是围绕这幅图详细分析. 背景 假设这是你的APP,以此为背景,下面的每个part请结合上图理解. #Case 1 当按下app启 ...

  6. 每周.NET前沿技术文章摘要(2017-06-07)

    汇总国外.NET社区相关文章,覆盖.NET ,ASP.NET等内容: .NET .NET Core and .NET Framework Working Together, Or: The Magic ...

  7. 【Zookeeper】源码分析目录

    Zookeeper源码分析目录如下 1. [Zookeeper]源码分析之序列化 2. [Zookeeper]源码分析之持久化(一)之FileTxnLog 3. [Zookeeper]源码分析之持久化 ...

  8. python方法的延迟加载

    数据挖掘的过程中,数据进行处理是一重要的环节,我们往往会将其封装成一个方法,而有的时候这一个方法可能会被反复调用,每一次都对数据进行处理这将是一个很耗时耗资源的操纵,那么有没有办法将计算后的结果缓存起 ...

  9. Linux第七节随笔 diff /uniq /stat

    linux第七讲(上)1.diff link 作用:diff命令能比较单个文件或者目录内容.如果指定比较的是文件,则只有当输入为文本文件时才有效.以逐行的方式,比较文本文件的异同处. 如果指定比较的是 ...

  10. eslint常见规则总结

    google: eslint+rules es6: impot When you import the module's default, don't use brace {} 意思是,当你使用默认的 ...