java 张龙_张龙 JAVA5新特性学习笔记

1.增强的for循环,这点比较简单,就不举例了,但要注意:

增强的for循环与传统的for循环相比写起来更简洁,更容易理解,但是他也有一个缺点:他失去了数组或者集合的索引信  息,如果要对数组或集合里指定位置上的元素进行操作,建议使用传统的for循环,如果只是遍历集合或数组里面的每一个元素,建议采用增强型的for循环。

2.自动装箱与拆箱

举例:BoxTest.java

package com.shengsiyuan.jdk5;

import java.util.ArrayList;

import java.util.Collection;

public class BoxTest

{

public static void main(String[] args)

{

int a = 3;

Collection c = new ArrayList();

c.add(3);//将int类型的3转换为Integer类型并放到集合当中

c.add(a + 3);

for(Integer i : c)

{

System.out.println(i);

}

}

}

说明:自动装箱与拆箱常用于集合中,当往集合里面放入原生数据类型的时候,java会自动将其包装成该原生数据类型对应的包装类,这就叫装箱,反之叫拆箱。

另外需要特别说明的是:Integer类有一个缓存,它会缓存介于-128~127之间的整数。缓存是指第二次生成一个已经实例化好的实例时,Java会自动的去缓存里面寻找以前生成的实例并将该值给它,而不会再去new一个,所以之前生成和之后生成的是两个相同的实例。

举例:BoxTest2.java

package com.shengsiyuan.jdk5;

public class BoxTest2

{

public static void main(String[] args)

{

Integer i1 = 100;

Integer i2 = 100;

if(i1 == i2)

{

System.out.println("i1 == i2");

}

else

{

System.out.println("i1 != i2");

}

}

}

上面的程序执行结果为i1 == i2,但如果将2个数值改为200,则就是i1 != i2,原因就在于Integer类型的缓存机制。

备注:如果改为Integer i1 = new Integer(100) ;

Integer i2 = new Integer(100);

则i1!=i2,用构造方法先new一个,再new一个,肯定是两个不同的实例。

3.可变参数

可变参数:可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象。但如果将方法中的参数定义为数组,那么只能传递数组对象而不能传递离散的值。

可变参数必须要作为方法参数的最后一个参数,即一个方法不可能具有两个或两个以上的可变参数。

举例:TestVarargs.java

package com.shengsiyuan.jdk5;

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);

}

}

说明:int... nums中的...不能少,它就代表可变参数,可变参数代表可以往方法里面传入任意数量的参数,只要它是定义的类型即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值