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. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ HTTP请求

    POST/GET请求--常见请求方式处理

  2. OC学习12——字符串、日期、日历

    前面主要学习了OC的基础知识,接下来将主要学习Foundation框架的一些常用类的常用方法.Foubdation框架是Cocoa编程.IOS编程的基础框架,包括代表字符串的NSString(代表字符 ...

  3. 用VS2015写一个简单的ASP.net网站

    第一步:打开VS2015,然后新建一个空的解决方案,其中解决方案的名称WebSiteTest可类似认为是本次网站的名称,系统会以该名称(WebSiteTest)生成一个文件夹,在WebSites文件夹 ...

  4. epoll的使用实例

    在网络编程中通常需要处理很多个连接,可以用select和poll来处理多个连接.但是select都受进程能打开的最大文件描述符个数的限制.并且select和poll效率会随着监听fd的数目增多而下降. ...

  5. JAVA中的设计模式一(单例模式)

    单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个 ...

  6. 深度搜索DFS-Lake Counting(POJ NO.2386)

    题目链接POJ NO.2386 解题思路: 这个也是一个dfs 的应用,在书上的例子,因为书上的代码并不全,基本都是函数分块来写,通过这个题目也规范了代码,以后能用函数的就都用函数来实现吧.采用深度优 ...

  7. NOIP2002 字符变换

    啊本来以为2002的题应该会比较友善于是很naive地像模拟一样用着stl乱玩结果死也过不了最后一个点qaq 心情很悲痛于是为了解放自我 #include<iostream> #inclu ...

  8. Linux的编码及编码转换

    如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在Li ...

  9. 三十天学不会TCP,UDP/IP网络编程-TraceRoute的哲学

    新年快乐,继续来部分粘贴复制我的这一系列文章啦,如果对和程序员有关的计算机网络知识,和对计算机网络方面的编程有兴趣,欢迎去gitbook(https://www.gitbook.com/@rogerz ...

  10. centos7 安装solr

    1 下载solr安装包 下载6.4.1版本 2.创建 存放数据的文件夹 solr_data 和 安装目录 solr_installation 3.进入solr的bin目录执行 /install_sol ...