静态导入-可变参数-增强for循环-基本数据类型的自动拆箱与装箱

    技术2024-12-14  17

    静态导入

    ·import 语句可以导入一个类或某个包中的所有类。·import static语句导入一个类中的某个静态方法或所有静态方法·语法举例: -import static java.lang.Math.sin; -import static java.lang.Math.*;

    可变参数·问题:一个方法接受的参数个数不固定,例如: -System.out.println(add(2,3,5)); -System.out.println(add(1,2,3,5));·可变参数的特点: -只能出现在参数列表的最后。 -...位于变量类型和变量名称之间,前后有无空格都可以。 -调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。package lqq.heima;

    public class VariableParameter {

     /**  * @param args  */ public static void main(String[] args) {  // TODO Auto-generated method stub  System.out.println(add(1, 2, 3));  System.out.println(add(1, 2, 3,5));

     } public static int add(int x,int...args){    int sum = x;  for(int i:args)  {   sum+=i;  }  return sum;   }

    }?overload vs override重载     重写增强for循环·语法: -for(type 变量名:集合变量名){...}·注意事项: -迭代变量必须在()中定义! -集合变量可以是数组或实现了iterable接口的集合类·举例:public static int add(int x,int...args){    int sum = x;  for(int i:args)  {   sum+=i;  }  return sum;   }

    基本数据类型的自动拆箱与装箱·自动装箱: -Integer num1 =12;·自动拆箱: System.out.println(num1+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

    在对Integer对象的-128~127之间的数字的时候,使用了享元模式设计(flyweight),导致num1==num2 是true,即是同一个对象。有很多个小的对象,它们有很多属性相同,就把他们变成相同的对象,那些不同的属性把它变成方法的参数,称之为外部状态,那些相同的属性称之为这个对象的内部状态。package lqq.heima;

    public class AutoBox {

     /**  * @param args  */ public static void main(String[] args) {  // TODO Auto-generated method stub    Integer num = 12;  System.out.println(num + 12);  Integer num1 =12;  Integer num2 =12;  System.out.println(num1==num2);

      Integer num3 =129;  Integer num4 =129;  System.out.println(num3 == num4);

      Integer num5 =Integer.valueOf(12);  Integer num6 =Integer.valueOf(12);  System.out.println(num5==num6);

      Integer num7 =Integer.valueOf(212);  Integer num8 =Integer.valueOf(212);  System.out.println(num7==num8);

     }

    }运行结果:24truefalsetruefalse

    最新回复(0)