JAVA 之"反射"
1、类型模板 Class:
物以类聚:
我们可以用class Person{ } class Animal{ }来描述一类人或一类动物;
那么再想一下,我们是不是可以用class Class{ } 来抽象描述类呢?
答案时可以的,这就是jdk中的 Class 类(类型模板),
Class类也可以简单的理解为描述类的类;
我们得到一个类的类型模板就像得到了一个人的DNA,
DNA中包含的一个人的所有外部形态特征,
某个类的Class类型模板中也就包含的该类的所有特征(如类名、包名、方法……等) 。
所以我们 只要得到了一个类的类型模板,就能将一个类剖析的很清楚。
2、获取Class类型模板对象的方法:
(1):通过对象调用getClass()方法创建。
(2):利用Class类中的forName()方法来创建。
(3):利用类型名(类名)来创建。
3、通过反射方法动态来获取类中的方法以及构造函数(五步)。
(1).先获取类型模板对象,
《1》Student stu=new Student();
Class c=stu.getClass();
《2》Class c=Class.forName("类全名");
《3》Class c=Student.class;
(2).通过类型模板对象来获取构造函数
《1》获取无参(默认构造)
Class[] arr={};//构造方法的参数 类型、顺序、个数,此处为无参构造。
Constructor con=c.getDeclaredConstructor(arr);
《2》获取有参构造
Class[] arr={String.class,int.class,Integer.class};// 构造方法的参数 类型、顺序、个数。
Constructor con=c.getDeclaredConstructor(arr);
(3).调用构造方法创建对象
&nbs
相关文档:
最近开始在看java,对Applet这节比较感兴趣,改了改书上的代码,权当留个印记
import java.awt.*;
import java.applet.*;
public class HelloApplet extends Applet
{
Font f1 = new Font("Times New Roman", Font.PLAIN, 12);
Font f2 = new Font("宋体", Font.BOLD, 24);
Font f3 = new Font("黑体", Fon ......
构造方法:
String()
初始化一个新创建的 String 对象,它表示一个空字符序列。
String(byte[] bytes)
构造一个新的 String,方法是使用平台的默认字符集解码字节的指定数组。
String(byte ......
转贴自 http://www.3800hk.com/Article/cxsj/java/jcjcjave/2009-11-10/Article_181759.html
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据
的地方。与C++不同,Java自动
治理栈和堆,程序员不能直接地设置栈或堆。
2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是, ......
一 线程的基本概念
线程是一个程序内部的顺序控制流.一个进程相当于一个任务,一个线程相当于一个任务中的一条执行路径.;多进程:在操作系统中能同时运行多个任务 (程序);多线程:在同一个应用程序中有多个顺序流同时执行;Java的线程是通过java.lang.Thread类来实现的;JVM启动时会有一个由主方法(public static voi ......
不提倡使用的方法是为支持向后兼容性而保留的那些方法,它们在以后的版本中可能出现,也可能不出现。Java 多线程支持在版本 1.1 和版本 1.2 中做了重大修订,stop()、suspend() 和 resume() 函数已不提倡使用。这些函数在 JVM 中可能引入微妙的错误。虽然函数名可能听起来很诱人,但请抵制诱惑不要使用它们。
调试线程化的 ......