1、增强的For循环:
int[] arr = {1,2,3,4,5,6}; for(int i = 0; i< arr.length;i++) { System.out.println(arr[i]); } //增强的for循环 for(int element : arr) { System.out.println(element); }
List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); for(String element : list) { System.out.println(elemnet); }
当使用增强的for循环时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为这种方式丢失了索引信息。
2、自动装箱/拆箱(Autoboxing/unboxing)
自动装箱/拆箱大大方便了基本类型数据和它们包装类的使用。
自动装箱:基本类型自动转为包装类.(int >> Integer)
自动拆箱:包装类自动转为基本类型.(Integer >> int)
int a = 3; Collection<integer> c = new ArrayList<Integer>(); c.add(3); //自动将int类型3转换为Integer类型并放到集合当中 c.add(a + 3); for(Integer i : c) { System.out.println(i); }
3、Integer类有一个缓存,他会缓存介于-128~127之间的所有整数。
Integer i1 =100;Integer i2 = 100; i1 == i2为true。
Integer i1 =200;Integer i2 = 200; i1 == i2为false。
4、可变参数
public static int sum(int... nums) { int sum = 0; for(int num : nums) { sum +=num; } return sum; }
可变参数:本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象。但如果将方法中的参数定义为数组,那么只能传递数组对象而不能传递离散值。
可变参数必须作为方法参数的最后一个参数,即一个方法不可能具有两个或两个以上的可变参数。