黑马程序员_可变参数、增强for循环、基本数据类型的自动装箱与拆箱、享元模式

来源:互联网 发布:军华软件下载 编辑:程序博客网 时间:2024/06/06 00:55

------- android培训java培训、期待与您交流! ----------

1.      可变参数:

特点:只能出现在参数列表的最后

...位于变量类型和变量名之前,前后有无空格都可以

           调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数

public class Test {

    public static void main(String[] args) {

       System.out.println(getSum(1,2,3,4,5));

    }

    public static int getSum(int x,int...args){

       int sum=x;

       for(int arg:args)

           sum+=arg;

       return sum;

    }

}

2.    增强for循环

语法:for(type 变量名:集合变量名){}

注意:

    迭代变量必须在()中定义

    集合变量可以是数组或实现了Iterable接口的集合类

    局限性:增强for循环只能访问数据而不能改变数据

如1中的代码就用了增强for循环。

public static int getSum(int x,int...args){

       int sum=x;

       for(int arg:args)

           sum+=arg;

       return sum;

    }


3.    基本数据类型的自动装箱与拆箱、享元模式

public class Test {

    public static void main(String[] args) {

       Integer i1=9;

       Integer i2=9;

       Integer i3=235;

       Integer i4=235;

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

       System.out.println(i3==i4);

    }

}

结果:

true

false

基本数据类型和Integer对象之间会进行自动装箱与拆箱

Integer是int型数据的封装类,-128~127(一个字节)的数据被包装成Integer对象时,会被缓存起来,下次使用又要把一个整数装成一个对象时,会先到缓存里找是否存在这样的对象,有则直接拿来用,没有才再封装对象

这就是享元模式,当某些经常使用、不用改变但又很小的对象时我们不必在每次使用时都来创建对象,只搞一个对象,使用时直接拿来用。


0 0