• JDK5.0新特性 (Day_07)


     

    JDK5.0新特性

     

    目录

    • 静态导入
    • 自动装箱/拆箱
    • for-each循环
    • 可变参数 枚举

    JDK 5.0 新特性简介

    JDK 5.0 的一个重要主题就是通过新增一些特性来简化开发,这些特性包括:

    • 静态导入
    • 自动装箱/拆箱
    • for-each循环
    • 可变参数
    • 枚举
    • 泛型
    • 注解

      使用这些特性有助于编写更加清晰,精悍,安全的代码。

    1.静态导入

      JDK5.0增加的静态导入语法用于导入指定类的某个静态属性值(方法),

      或全部静态属性值(方法) 静态导入语句使用 import static 语句

      导入指定类的单个静态属性: import static java.lang.System.out

      导入指定类全部静态属性 import static java.lang.Math.*

    2.自动装箱/拆箱

      自动装箱(autoboxing):把一个基本数据类型直接赋给对应的包装类变量, 或者赋给 Object 变量

      自动拆箱:把包装类对象直接赋给一个对应的基本类型变量

    Ø基本数据类型的自动拆箱与装箱

    • 自动装箱: Integer num1 = 12;
    • 自动拆箱: System.out.println(num1 + 12);

        基本数据类型的对象缓存: Integer num1 = 12; Integer num2 = 12;

        //这块相等,<=127都是真的 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);

      自动拆装箱
      * 针对java八大基本数据类型推出
      * question1:
      * int
      * double
      * float
      * byte
      * char
      * short
      * boolean 布尔
      * long

    3.for-each循环

    使用foreach循环遍历数组和集合元素时, 无须获得数组和集合长度, 无须根据索引来访问数组元素和集合元素, forearch 循环自动遍历数组和集合的每个元素

    语法格式: for(type varName : array | collection) { //varName 自动迭代访问每一个元素 }

    4.可变参数

    从JDK5.0 开始, Java 允许定义形参长度可变的参数,从而允许为方法指定数量不确定的形参 若在定义方法时,

    在最后一个形参的类型后增加三点(…), 则表明该形参可以接受多个参数值, 多个参数值被当成数组传入 可变形参只能处于形参列表的最后,

    所以一个方法最多只能有一个长度可变的形参 调用包含一个可变形参的方法时, 可以为该形参传入多个参数或一个数组

    5.枚举类入门

    JDK5 新增的enum关键字用于定义枚举类 枚举类和普通类的区别:

    使用 enum 定义的枚举类默认继承了java.lang.Enum类 枚举类的构造器只能使用private访问控制符 枚举类的所有实例必须在枚举类中显示列出(”,”分隔,”;”结尾). 列出的事例系统会自动添加 public static final 修饰 所有的枚举类都提供了一个values方法, 该方法可以很方便地遍历所有的枚举值 JDK5.0 中可以在 switch 表达式中使用枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定


    java代码(自动拆装箱)

     
     
    public class Demo1 {
        public static void main(String[] args) {
            int i=200;
            Integer int1=300;
            Integer int2=300;
            System.out.println(int1==int2);
            System.out.println(int1.equals(int2));
            System.out.println("-----------------------");
    
            Integer int3=100;
            Integer int4=100;
            System.out.println(int3==int4);
            System.out.println(int3.equals(int4));
            System.out.println("--------------------------");
    
    
    
            Integer int5=Integer.valueOf(103);
            Integer int6=Integer.valueOf(103);
            System.out.println(int5==int6);
            int x = int5;
        }
    }
     
     

    java代码(for循环)

     
     
    public class Demo3 {
        public static void main(String[] args) {
            int[] arr = new int[]{10,20,30,40,50};
            for (int i:arr) {
                System.out.println(i);
            }
    
            Set<String> set = new HashSet();
            set.add("a");
            set.add("b");
            set.add("c");
            set.add("d");
            set.add("e");
            for (String s:
                 set) {
                System.out.println(s);
            }
    
    
        }
    }
     
     

    java代码(可变参数)

     
     
    public class Demo4 {
        public static void main(String[] args) {
            Demo4.fun("aa");
            Demo4.fun("bb",1);
            Demo4.fun("cc",1,2,3);
            int[] arr = new int[]{10,20,30};
            Demo4.fun("dd",arr);
    
        }
        public static  void fun(String s,int... x){
            System.out.println("___________");
            System.out.println(x.length);
            for (int i: x) {
                System.out.println(i);
    
            }
        }
    }
     
     
     
  • 相关阅读:
    Java实现 N的阶乘
    Java实现 N的阶乘
    Java实现 N的阶乘
    Java实现 N的阶乘
    Java实现 洛谷 P1015 回文数(N进制回文数)
    Java实现 洛谷 P1015 回文数(N进制回文数)
    Java实现 洛谷 P1015 回文数(N进制回文数)
    Java实现 洛谷 P1015 回文数(N进制回文数)
    Java实现 洛谷 P1015 回文数(N进制回文数)
    Windows线程生灭(图文并茂)
  • 原文地址:https://www.cnblogs.com/papercy/p/13567172.html
Copyright © 2020-2023  润新知