黑马程序员<梦想之旅>JDK1.5新特性

来源:互联网 发布:喊麦特效软件 编辑:程序博客网 时间:2024/04/30 15:12

<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流!


1. 静态导入(了解)

JDK 1.5 增加的静态导入语法用于导入类的某个静态属性或方法。使用静态导入可以简化程序对类静态属性和方法的调用。

语法:

importstatic 包名.类名.静态属性|静态方法|*

例如:

importstatic java.lang.System.out

importstatic java.lang.Math.*

 

 

import static java.lang.System.out;

import static java.lang.Math.*;

 

public class Demo {

 

    public static void main(String[] args) {

       // 普通写法

       System.out.println("hello world");

       int max = Math.max(100, 200);

       System.out.println(max);

 

       // 静态导入

       out.println("hello world");

       int max2 =max(100, 200);

       System.out.println(max2);

    }

   

}


2. 增强for循环

引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!

因此JDK5中定义了一种新的语法——增强for循环,以简化此类操作。增强for循环只能用在数组、或实现Iterable接口的集合类

语法格式: 

for(变量类型 变量 :需迭代的数组或集合){}

 

                                           

For each是为了让你的代码变得简捷、和容易维护。

它的速度也普通遍历的速度是一致的。

3. 可变参数

JDK中具有可变参数的类Arrays.asList()方法。

分别传多个参、传数组,传数组又传参的情况。

注意:传入基本数据类型数组的问题。

从JDK 5开始, Java 允许为方法定义长度可变的参数。

语法:数据类型…变量名。

可变长参数是Object[] 数组。(可变参数里存的是对象数组)

JDK中的典型应用:

     Arrays.asList(T…a)是jdk中的典型应用。

需求:对若干个整数进行求和

public static int sum1(inta,int b ) {

       return a+b;

    }

 

若干个整数求和如何解决?

可以使用数组接收整数。

public static int sum1(int[] numbers) {

       if (numbers ==null) {

           return 0;

       }

 

       if (numbers.length == 0) {

           return 0;

       }

 

       int sum = 0;

       for (int num : numbers) {

           sum += num;

       }

       return sum;

    }

 

 

可以使用可变参数

public static int sum2(int... numbers) {

       if (numbers ==null) {

           System.out.println("可变参数的值为null");

           return 0;

       }

 

       if (numbers.length == 0) {

           System.out.println("可变参数的值的长度为0");

           return 0;

       }

 

       int sum = 0;

       for (int num : numbers) {

           sum += num;

       }

       return sum;

    }

 


4. 自动装箱/拆箱

自动装箱:指开发人员可以把一个基本数据类型直接赋给对应的包装类。

自动拆箱:指开发人员可以把一个包装类对象直接赋给对应的基本数据类型。

典型应用:

    List list = new ArrayList();

    list.add(1);

    //list.add(new Integer(1));

    int i=list.get(0);

    //int j = (Integer)list.get(0);

5. 枚举类

有时候,变量的取值只是在一个有范围内,例如:服装的尺寸有小,中,大,和超大尺寸.我们可以将这些尺寸定义为定义变量并保存值为 1,2,3,4 或者S M L X ,这样可以解决问题.但是变量很有可能保存了一个错误的值(0 或者m)

一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前采用自定义带有枚举功能的类解决,Java5以后可以直接使用枚举予以解决。

例如: 交通灯(红、黄、绿)    性别(男、女)   星期(星期一、二、三…..)

     分数等级(A、B、C、D、E)

JDK 5新增的 enum 关键字用于定义一个枚举类。

枚举的实现

使用enum定义枚举类

在枚举类中定义枚举值(大写)

enum Gender {

    MALE, FEMALE;

}




<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! 

原创粉丝点击