java--jdk5.0

来源:互联网 发布:淘宝店铺关注怎么设置 编辑:程序博客网 时间:2024/06/01 20:08

这个集合中能装一切对象,但需要强制类型转换。所以有风险。
集合比不上数组。
java.lang
实现了Iterable接口 才能用foreach遍历
Math.random() :返回一个随机数
java.util.Formatter 规范
tiger jdk5.0
1、泛型:来源C++,主要用于模版编程

不同泛型之间是不能相互赋值的
泛型的通配符:
?任何类型
?extends Number 是number类和Number的任何子类
? super Number number类或Number的任何父类
String、Double、Integer类都实现了Compable接口
Number与Object没有实现
? extends Comparable:任何实现Comparable接口的类

泛型方法:
在修饰符之后,返回值之前

package chp10;public class TestGenerics1 {    public static void main(String[] args) {        // TODO Auto-generated method stub    }}class ClassA{    public void method(String s){        ClassC c1=new ClassC();        Object o=null;        c1.method(o);        ClassC<String> c2=new ClassC<String>();        c2.method("abc");        ClassC<Integer> c3=new ClassC<Integer>();        c3.method(123);    }}class ClassB{public void method(Integer i){}}class ClassC<T>{   //T是个类型    public void method(T t){    }}interface I<T,V>{    T m(V o);}class I1 implements I<Integer,String>{    public Integer m(String s){        return 0;    }}

2、foreach:

package chp10;import java.util.*;public class TestForeach {    public static void main(String[] args) {        // TODO Auto-generated method stub      String[] ss={"Huxz","Liucy","Zhang3","Li4"};      /*      for(int i=0;i<ss.length;i++){         String s=ss[i];         System.out.println(s);      }      */      for(String s:ss){   //循环变量s          System.out.println(s);      }      Collection<String> c=new HashSet<String>();      c.add("Huxz");      c.add("Liucy");      c.add("Zhang3");      c.add("Li4");      /*       Iterator it=c.iterator();       while(it.hasNext()){       String s=(String)it.next();       System.out.println(s);       }      */      for(String s:c){   //循环变量s  .本质还是迭代遍历          System.out.println(s);      }      Map<String,Integer> map=new HashMap<String,Integer>();      map.put("Huxz", 100);      map.put("Liucy", 80);      map.put("Zhang3", 90);      Set<String> ks=map.keySet();      for(String k:ks){          int v=map.get(k);         System.out.println(k+"-------"+v);       }       Set<Map.Entry<String, Integer>> es=map.entrySet();       for(Map.Entry<String, Integer> me:es){           String k=me.getKey();           int v=me.getValue();           System.out.println(k+"------"+v);       }    }}

3、自动封箱
4、静态引用:
用到一个类中静态成员时,可以省略类名。

package chp10;import java.util.*;import static java.lang.System.*;import static java.lang.Math.*;public class TestStaticImport {    public static void main(String[] args) {        // TODO Auto-generated method stub    // int[] a={3,4,6,5,8};    // Arrays.sort(a);        //System.out.println(Math.random());        out.println(Math.random());    }}

5、可变长参数:就是数组参数。
由编译器负责将多个实参封装成数组。
一个方法中,最多有一个变长参数,且必须是参数表中最后一个参数。
m(String s1,String… s2)
6、格式化的输入输出:
输入:System.in

package chp10;import java.util.*;public class TestInOut {    public static void main(String[] args) {        // TODO Auto-generated method stub      Scanner sc=new Scanner(System.in);      int i=sc.nextInt();      System.out.println(i*2);    }}

(大点东西)
7、枚举(自古就有):
是一个类:这个类的对象是构造好的,不允许用户构造类的新对象。
关键字:enum

特殊的类 所有枚举的子类都是Enum的子类。 final类
所有的构造方法必须是私有的
枚举值:枚举类的对象,也是枚举类中的公开静态常量。
没有子类。枚举中可以定义抽象方法,不是给子类实现的,是留给枚举值实现的。
枚举中可以定义抽象方法,由枚举值分别实现
Season1与Season2完全等价

package chp10.tiger;public class TestEnum {    public static void main(String[] args) {        // TODO Auto-generated method stub       Season1 s1=Season1.SUMMER;       Season2 s2=Season2.SUMMER;    }}class Season1{    public static final Season1 SPRING=new Season1();    public static final Season1 SUMMER=new Season1();    public static final Season1 AUTUMN=new Season1();    public static final Season1 WINTER=new Season1();    private Season1(){    }}enum Season2{    SPRING,    SUMMER,    AUTUMN,    WINTER}
0 0