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. 9.11 test

    题面.pdf T1:通过打表发现,从一个点出发只有距离为1,2,3,5,6,9,10,13,17的点才不能到达: 那么我们转移的时候只有距离在20以内才不一定能直接转移,那么我们离散化之后; 对于每一 ...

  2. JS画图之七【时钟】

    样例:http://www.zhaojz.com.cn/demo/draw12.html 依赖:圆 一.定义对象:针 //定义钟表指针 //dotClock 原点 //len 指针长度 functio ...

  3. rtmp流媒体搭建的所需安装包

    说明:这是基于nginx rtmp控件  搭建的rtmp流媒体服务器,在此附上的是搭建所需要的安装包,具体的搭建过程看我之前的"ubuntu流媒体搭建" 链接地址:http://p ...

  4. MySQL 字符集问题及安全的更新操作

    一.字符集乱码 1.操作系统字符集 [root@mysql5 ~]# cat /etc/system-release /etc/sysconfig/i18n CentOS release 6.5 (F ...

  5. Nginx完整配置配置样例【官方版】

    我们主要参考nginx官方给出的完整配置的样例: https://www.nginx.com/resources/wiki/start/topics/examples/full/# 完整摘录如下: n ...

  6. [编织消息框架][JAVA核心技术]动态代理介绍

    由于java是种强类型静态语言,在执行时无法动态生成代码,静态语言基本都有这特性 动态生成代码有几种好处,也是弱类型语言的优点 1.部份逻辑可以实现热更新 2.远程调用实现非常适合 3.能动态生成扩展 ...

  7. SSH KEY 批量分发

    代码 #!/bin/sh . /etc/init.d/functions ];then echo "sh $0 arg0" exit fi for ip in 172.23.216 ...

  8. JAVA个人理解

    为了找到别人写的好文章,先分享下自己的知识,找找感觉路线. 学java前接触的c,后来转向java.第一个照面理解的就是面向对象,没想到让我想了好多年.当时有个负责任的老师说面向对象这个词具体释义众说 ...

  9. VS2017 调试不能命中断点问题

    去掉勾

  10. Python学习_09_模块

    模块 模块是python中的最高组织单元,在物理层面上,模块以文件存储,模块的文件名就是模块的名字.py,每个模块都有自己的名称空间. python按照路径搜索来查找模块文件,在PYTHONPATH环 ...