对于自动装箱,有一个需要注意的是:Integer类有一个缓存,它会缓存介于-128~127之间的整数。
public class BoxTest2
{
public static void main(String[] args)
{
//Integer i1 = 100;
// Integer i2 = 100;
Integer i1 = 200;
Integer i2 = 200;
if(i1 == i2)
{
System.out.println("i1 == i2");
}
else
{
System.out.println("i1 != i2");
}
}
}
当都为100时,打印出来的是i1==i2,当都为200时,打印出来的是i1!=i2;为什么?就是因为它的缓存,会缓存介于-128~127之间的整数.
可变参数:可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象。但如果将方法中的参数定义为数组,那么只能传递数组对象而不能传递离散的值。
可变参数必须要作为方法参数的最后一个参数,即一个方法不可能具有两个或两个以上的可变参数。
public class TestVarargs
{
private static int sum(String str, int... nums)
{
System.out.println(str);
int sum = 0;
for (int num : nums)
{
sum += num;
}
return sum;
}
public static void main(String[] args)
{
int result = sum("a", new int[] { 1, 2 });//可变参数本质上就是一个数组
System.out.println(result);
result = sum("b", 1, 2, 3, 4);
System.out.println(result);
}
}