Java Reflection (JAVA反射)
Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。
Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。
JavaBean 是 reflection 的实际应用之一,它能让一些工具可视化的操作软件组件。这些工具通过 reflection 动态的载入并取得 Java 组件(类) 的属性。
1. 一个简单的例子
考虑下面这个简单的例子,让我们看看 reflection 是如何工作的。
import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}
按如下语句执行:
java DumpMethods java.util.Stack
它的结果输出为:
public java.lang.Object java.util.Stack.push(java.lang.Object)
public synchronized java.lang.Object java.util.Stack.pop()
public synchronized java.lang.Object java.util.Stack.peek()
public boolean java.util.Stack.empty()
public synchronized int java.util.Stack.search(java.lang.Object)
这样就列出了java.util.Stack 类的各方法名以及它们的限制符和返回类型。
这个程序使用 Class.forName 载入指定的类,然后调用 getDeclaredMethods 来获取这个类中定义了的方法列表。java.lang.reflect.Methods 是用来描述某个类中单
相关文档:
FLEX:
[Bindable] public var ary1:Array=[];
private function init():void{
ary1.push('黄晓华');
......
JAVA annotation入门
最近对spring源码感兴趣,今天看到annotation部分,略记之。
一. 最常见的annotation
@Override:用在方法之上,用来告诉别人这一个方法是改写父类的
@Deprecated:建议别人不要使用旧的API的时候用的,编译的时候会用产生警告信息,可以设定在 ......
题计:这里给出java解析xml,以帮助人们理解许多容器是怎么做的。。像spring,struts等.
1.mysql.xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<datasource>
<servername>localhost</servername>
<serverport>3306</serverport>
<databasen ......
Java设计模式之Singleton单例模式篇
java 单例模式的实现方式
实现1:
public class Singleton {
private static Singleton instance;
private Singleton (){ //首先有一个私有的构造器
}
......
关于java虚拟机使用内存的思考
JVM(java虚拟机)其实就是操作系统(如windows)上的一个普通程序(进程名叫java,这个程序可以解释执行class文件)。
当java进程启动时会首先分配一块堆内存(最小内存),以后每当class字节码程序要求JVM(java进程)分配内存时,JVM
就会在预先分配的那块内存上面为class字节 ......