java基础 JDK1.5新特性总结

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前面多了一个@符号.
注释类也可以用注释类注释,如此下去.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值