final常量+static
public static final int AGE_0F_PERSON = 20;
List
ArrayList list = new ArrayList();
list.add list.get(0) size() addLast() getFirst() removeFirst()
* 类型转化处理*
String.valueOf(XXX);转化为String类型 Boolean.valueOf(XXX);类似的
Integer.intValue(XXX) :将Integer转化为int
HashSet
HashSet set = new HashSet();
set.add()
set 的取值通过iterator迭代器的方式:
Iterator iter = set.iterator();
While(iter.hasNext()){
String value = (String)iter.next();
}
现在?
for(XXX:XXXs){}
TreeSet
升序排序 (降序排序的话,需要自己定义一个类,写一个compare方法)
Map
map.put("", ); get("")
Set set = map.entrySet();//由map对象转化为set对象
map获取键值对 : getKey() getValue()
反射机制:运行期动态调用
1,Method getDeclaredMethods()
2,Method invoke newInstance
获取某个类或某个对象所对应的Class对象的常用的3种方式:
a) 使用Class类的静态方法forName:Class.forName(“java.lang.String”);
b) 使用类的.class语法:
String.class;
c) 使用对象的getClass()方法:
String s = “aa”;
Class<?> clazz = s.getClass();
若想通过类的不带参数的构造方法来生成对象,我们有两种方式:
a) 先获得Class对象,然后通过该Class对象的newInstance()方法直接生成即可:
Class<?> classType = String.class;
Object obj = classType.newInstance();
b) 先获得Class对象,然后通过该对象获得对应的Constructor对象,再通过该Constructor对象的newInstance()方法生成:
Class<?> classType = Customer.class;
Constructor cons = classType.getConstructor(new Class[]{});
Object obj = cons.newInstance(new Object[]{});
若想通过类的带参数的构造方法生成对象,只能使用下面这一种方式:
Class<?> classType = Customer.class;
Constructor cons = classType.getConstructor(new Class[]{String.class, int.class});
Object obj = cons.newInstance(new Object[]{“hello”, 3});
Field
// 获取字节码文件对象
Class c = Class.forName
// 获取单个的成员变量
// 获取address并对其赋值
Field addressField = c.getField("address");
// public void set(Object obj,Object value)
// 将指定对象变量上此 Field 对象表示的字段设置为指定的新值。
addressField.set(obj, "北京"); // 给obj对象的addressField字段设置值为"北京"
–getName():获得类的完整名字。
–getFields():获得类的public类型的属性。
–getDeclaredFields():获得类的所有属性。
–getMethods():获得类的public类型的方法。
–getDeclaredMethods():获得类的所有方法