java 反射基本认识

最近重新复习java反射的知识,有了新的理解。

class类?

在面向对象中,万事万物皆对象。类也是个对象,是java.lang.class类的实例对象。

public class ClassDemol {
public static void main(String arg[]){
//创建了Person 类的实例对象
// 如何创建Person 类的类对象
Person person = new pserson();
//有三种方法表示
//第一种
Class c1 = Person.class;
//第二种
Class c2 = person.getClass();
// 第三种
Class.fromName("java.xx.xx");
}
} class Person{}

java 静态加载类和动态加载类

  • 在编译时期,会加载需要使用所有的类,成为静态加载类。比如 new 创建对象,那么该类在编译时期,就需要加载。
  • 在运行时期,会加载需要使用所有的类,成为动态加载类。比如 class 类对象的NewInstance()方法创建某个类的对象,再运行时期,需要加载。

class类的方法

 // 获取类类型
class c = obj.getClass();
//获取类的名称
c.getName();
//获取类的自身public 方法以及继承的public 方法
Method[] ms= c.getMethod();
//获取类的自身public 方法以及继承的public 方法
Method[] ms= c.getMethods();
//获取类的自身所有方法
Method[] ms= c.getDeclareMethods();
//获取类的某个方法返回类型的类型
Class returntype = ms[i].getReturnType();
//获取类的某个方法参数类型的类型
Class paramtype = ms[i].getParamType();

方法反射

//获取相应的方法类类型

Method m = c.getMethod("printf",int.class,int.class);

//方法调用,可以调到相应的方法

m.invoke(c,19,19);

java 反射基本认识的更多相关文章

  1. 第28章 java反射机制

    java反射机制 1.类加载机制 1.1.jvm和类 运行Java程序:java 带有main方法的类名 之后java会启动jvm,并加载字节码(字节码就是一个类在内存空间的状态) 当调用java命令 ...

  2. Java反射机制

    Java反射机制 一:什么事反射机制 简单地说,就是程序运行时能够通过反射的到类的所有信息,只需要获得类名,方法名,属性名. 二:为什么要用反射:     静态编译:在编译时确定类型,绑定对象,即通过 ...

  3. java反射(基础了解)

    package cn.itcast_01; /** *Person类 */ public class Person {    /** 姓名 */    private String name;     ...

  4. java基础知识(十一)java反射机制(上)

    java.lang.Class类详解 java Class类详解 一.class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时 ...

  5. java基础知识(十一)java反射机制(下)

    1.什么是反射机制? java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象都能够调用他的属性和方法,这种动态获取属性和方法的功能称为java的反射机制. ...

  6. java反射学习之二万能EXCEL导出

    一.EXCEL导出的实现过程 假设有一个对象的集合,现在需要将此集合内的所有对象导出到EXCEL中,对象有N个属性:那么我们实现的方式是这样的: 循环这个集合,在循环集合中某个对象的所有属性,将这个对 ...

  7. java反射学习之一反射机制概述

    一.反射机制背景概述 1.反射(reflection)是java被视为动态语言的一个关键性质 2.反射机制指的是程序在运行时能获取任何类的内部所有信息 二.反射机制实现功能概述 1.只要给定类的全名, ...

  8. java反射 之 反射基础

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

  9. java反射 cglib asm相关资料

    有篇文章对java反射的调用的效率做了测试,写的比较好.猛击下面地址 http://www.blogjava.net/stone2083/archive/2010/09/15/332065.html ...

  10. 超详细的java反射教程

    看技术博客时,看到关于java反射的博文,写的非常好.猛击下面的地址,开始java反射之旅 中文翻译地址:http://ifeve.com/java-reflection/ 英文原版地址:http:/ ...

随机推荐

  1. 利用python去实现数学基本值的计算

    def get_nums(): nums = []#获取列表 num = input('请输入数字:').strip() while num != '': nums.append(num)#添加数字 ...

  2. Rust多线程中的消息传递机制

    代码说话. use std::thread; use std::sync::mpsc; use std::time::Duration; fn main() { let (tx, rx) = mpsc ...

  3. UML类图基础说明

    UML类图主要由类和关系组成. 类: 什么具有相同特征的对象的抽象, 具体我也记不住, 反正有官方定义 关系: 指各个类之间的关系 类图 类就使用一个方框来表示, 把方框分成几层, 来表示不同的信息, ...

  4. Misc-不简单的压缩包

    题目下载地址 https://ctf.bugku.com/files/e5a937a3985f5264a723bcbd0e062b0f/zip 友情连接同时也是网上看到的第一份关于这题的writeup ...

  5. TeamyinyinFish-> 测试报告

    测试人员 1. 姓名:鱼嘤嘤 2. 年龄: 21 3. 职业: 大三学生 4. 感情状况: 单身 用户故事 软件工程课上,老师想要他们组实现一个小组项目,鱼嘤嘤原本想摸鱼,但是转念一想觉得 还是需要好 ...

  6. day79_10_28git使用基础

    一.git与svn比较. git就是版本控制器,控制的对象是开发的项目代码. 可以根具时间轴进行回滚代码,改变代码版本. svn的特点就是服务版与用户版分离,当开发这需要进行开发时,需要先在代码仓库中 ...

  7. 【转】Redis面试题

    1.谈谈Redis的主从复制流程 有几个重点:主节点负责写,从节点负责读,slave node 主要用来进行横向扩容,做读写分离,扩容的 slave node 可以提高读的吞吐量.必须开启 maste ...

  8. BZOJ2733/LG3324 「HNOI2014」永无乡 权值线段树合并

    问题描述 BZOJ2733 LG3224 题解 对于每个结点建立一棵权值线段树. 查询操作就去查询第 \(k\) 大,合并操作就合并两颗权值线段树. 并查集维护连通性. 同时 STO hkk,zcr, ...

  9. 优雅的阅读CSDN博客

    CSDN现在似乎不强制登录了2333.但是广告多了也是碍眼的不行...将下列css添加到stylus中就行了. 代码转自xzz的博客. 自己修改了一下,屏蔽了登录弹出框. .article_conte ...

  10. Linux添加组播

    sudo route add -net 224.1.1.0 netmask 255.255.255.0 dev ens33