2 增强循环(Enhanced for Loop) 旧的循环 LinkedList list = new LinkedList();
list.add("Hi"); list.add("everyone!"); list.add("Was"); list.add("the"); list.add("pizza"); list.add("good?"); for (int i = 0; i < list.size(); i++) System.out.println((String) list.get(i)); //或者用以下循环 //for(Iterator iter = list.iterator(); iter.hasNext(); ) { //Integer stringObject = (String)iter.next(); // ... more statements to use stringObject... //} 新的循环 LinkedList<String> list = new LinkedList<String>();
list.add("Hi"); list.add("everyone!"); list.add("Was"); list.add("the"); list.add("pizza"); list.add("good?"); for (String s : list) System.out.println(s); 很清晰、方便,一看便知其用法 3 可变参数(Variable Arguments) 实现了更灵活的方法参数传入方式,System.out.printf是个很好的例子 用法:void test(Object … args) 一个很容易理解的例子 public static int add(int ... args){
int total = 0; for (int i = 0; i < args.length; i++) total += args[i]; return total; } public static void main(String[] args){ int a; a = Varargs.add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); System.out.println(a); } 4 自动实现装箱和解箱操作(Boxing/Unboxing Conversions) 说明:实现了基本类型与外覆类之间的隐式转换。基本类型至外覆类的转换称为装箱,外覆类至基本类型的转换为解箱。这些类包括 Primitive Type Reference Type boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double 例如,旧的实现方式 Integer intObject;
int intPrimitive; ArrayList arrayList = new ArrayList(); intPrimitive = 11; intObject = new Integer(intPrimitive); arrayList.put(intObject); // 不能放入int类型,只能使Integer 新的实现方式 int intPrimitive;
ArrayList arrayList = new ArrayList(); intPrimitive = 11; //在这里intPrimitive被自动的转换为Integer类型 arrayList.put(intPrimitive); 5 静态导入(Static Imports) 很简单的东西,看一个例子: 没有静态导入 Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
有了静态导入 import static java.lang.Math.*;
sqrt(pow(x, 2) + pow(y, 2)); 其中import static java.lang.Math.*;就是静态导入的语法,它的意思是导入Math类中的所有static方法和属性。这样我们在使用这些方法和属性时就不必写类名。 需要注意的是默认包无法用静态导入,另外如果导入的类中有重复的方法和属性则需要写出类名,否则编译时无法通过。
|