import static java.lang.Math.*; public class StaticImport { public static void main(String[] args){ int x = 1; try { x++; } finally { System.out.println("template"); } System.out.println(x); System.out.println(max(3, 6)); System.out.println(abs(3 - 6)); } }
(2)可变参数
(3)java5的增强的for循环:
语法:for(VariableModifies(可选) type 变量名: 集合变量名) {....}(2)集合变量可以是数组或者实现了Iterable接口的集合类
public class VarableParameter { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(add(2,3)); System.out.println(add(2,3,5)); } public static int add(int x,int... args){ int sum = x; /* * for(int i=0;i<args.length;i++){ sum += args[i]; } */ for(int arg : args){ sum += arg; } return sum; } }
(4)自动拆装箱
<1>Integer iObj = 3;自动把一个 基本数据类型 装成了一个 Integer对象,再赋值给 引用变量iObj。
<2> System.out.println(iObj + 12); iObj是 Integer类型,而Integer类型不支持“+”法。必须要把其 变成 基本类型 才支持加法。
<3>:
·基本数据类型的对象缓存:
在对Integer对象的 -128~127 之间的数字的时候,使用了享元模式设计(flyweight)。
导致num1==num2 是true,即是同一个对象。
有很多个小的对象,它们有很多属性相同,就把他们变成相同的对象,
那些不同的属性把它变成方法的参数,称之为外部状态。
那些相同的属性称之为这个对象的内部状态。
public class AutoBox { /** * * 基本类型的自动拆装箱 * * * @param args */ public static void main(String[] args) { // 自动装箱 Integer iObj = 3; // 自动拆箱 System.out.println(iObj + 12); Integer num1 =12; Integer num2 =12; System.out.println(num1==num2);// --true Integer num3 =129; Integer num4 =129; System.out.println(num3 == num4);// --false Integer num5 =Integer.valueOf(12); Integer num6 =Integer.valueOf(12); System.out.println(num5==num6);// --true Integer num7 =Integer.valueOf(212); Integer num8 =Integer.valueOf(212); System.out.println(num7==num8);// --false } }