反射的概念:
反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。
public class Demo1 { public static void main(String[] args) { String s = new String("hello"); Class clz = s.getClass(); System.out.println("类名:"+ clz.getName()); System.out.println("包名:"+clz.getPackage()); System.out.println("是否为接口:"+clz.isInterface()); System.out.println("是否为基本类型:"+clz.isPrimitive()); System.out.println("是否为数组:"+clz.isArray()); System.out.println("String类的父类:"+clz.getSuperclass()); Class clz1 = String.class; System.out.println("类名:"+clz1.getName()); System.out.println("包名:"+clz1.getPackage()); System.out.println("是否为接口:"+clz1.isInterface()); System.out.println("是否为基本类型:"+clz1.isPrimitive()); System.out.println("是否为数组:"+clz1.isArray()); System.out.println("String类的父类:"+clz1.getSuperclass()); System.out.println(clz == clz1); int a = 100; System.out.println(int.class); } }