您的位置:首页 > 编程语言 > Java开发

java基础 JDK1.5新特性总结

2013-09-03 01:28 357 查看
1, 可变参数 相当一个数组 m(String …s)一个方法只能有一个可变参数,且只是最后一个参数

2, Foreach循环(for(objecto:list))方便遍历数组和集合

3, 枚举

enum Course{

UNIX ("Luxw") {

public void study(){}

},

COREJAVA ("Huxz"){

public void study(){}

};

Public void study();

}


使用:

class test {
Course [] cs=Course.values();
for(Course c:cs){
System.out.println(s.ordinal+s+s.getName())}}


注意的问题:1枚举值之间用逗号隔开,最后一个用分号2枚举中可以有抽象,但必须在枚举值中实现;

4, 泛型 泛型解决集合中不安全性,泛型强制集合中都是一个类型

List<Integer> l=new ArrayList<Integer>();Map<Integer,String> m=newHashMap<Integer,String>();

泛型方法:public static <T> void copy(List<T> l,T[]os){ for(T o:os){l.add(o);}}

<T extendsInteger> <? Extends Integer>

5,反射 类对象,类加载时把类的信息保存在jvm中就会产生一个相应的对象(记录类信息的对象),只要类对象存在则类信息就在

获得类对象应用的三种方式:

①Class c1=ArrayList.class; ②Objectl=new ArrayList();Class c2=l.getClass();

③StringclassName="java.util.ArrayList"; Class c3=Class.forName(className);

Class[] cs=c1.getInterfaces();//获得接口

Class c=Animal.class;

Field[] fs=c.getDeclaredFields();//获得属性的数组

Method[] ms=c.getDeclaredMethods();//获得本类所有公私有的方法,getMethods()获得父类所有公开的方法

Constructor[]cons=c.getDeclaredConstructors();//获得构造方法的数组

Object o2=c.newInstance();//创建类的对象

Method m1=c.getDeclaredMethod("study");//找到方法名是study的方法

m1.setAccessible(true);//设置为可以调用

m1.invoke(o2);//调用m1方法

Methodm2=c.getDeclaredMethod("study", String.class);

m2.setAccessible(true);

m2.invoke(o2,"CoreJava");//调用m2的方法,方法的参数是CoreJava

6,注释,===注释是一种类型(总共有四种类型:类,接口,枚举,注释)

定义注释

如:@Override;

标记:@注释名

单值:@注释名(属性名=属性值)

多值:@注释名(属性1=值1,属性2=值2,......)

import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target()

public @interface MyType {
String authorName();
 String lastModified();
 String bugFixes() default "ok";
 }


在类中应用注释:

import java.lang.annotation.*;
@MyType(authorName="hadeslee",lastModified="20061207")
public class Test1 {
  /** Creates a new instance of Test1 */
  public Test1() {
  }
  @Deprecated
  @MyType(authorName="hadeslee",lastModified="20061207",bugFixes="what")
  public void doSth(){
  }


这里我定义了一个我自己的注释类,声明方式和声明接口差不多,只不过在interface前面多了一个@符号.

注释类也可以用注释类注释,如此下去.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: