java基础 JDK1.5新特性总结

来源:互联网 发布:米家台灯 知乎 编辑:程序博客网 时间:2024/05/18 20:13
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前面多了一个@符号.
注释类也可以用注释类注释,如此下去.
原创粉丝点击