静态导入、可变参数、加强的for、基本数据的自动装箱与拆箱

JDK现在都6了,从5开始JDK有了好些新的特性,平时在写程序的时候也用到但是没有认真的总结与分析一下,过年刚来没啥子事情就梳理一下,和大伙一起分享:
(其实在langspec-3.0中都有这些东西,我只是把自己平时用到的写出来)
1,静态导入
顾名思义就是把一些类的静态方法的使用方式进行一些改变,这个没啥意思,看例子:
先前我们使用类的静态方法是这个样子滴
//求1和2谁大
Math.max(1,2);

使用静态导入后
import static java.lang.Math.*;
max(1,2);

提防:需要注意的是默认包无法用静态导入,另外如果导入的类中有重复的方法和属性则需要写出类名,否则编译时无法通过。
2,可变参数
这个有点用可以提高代码质量
public getDetail(int pageNo,int pageSize,String ... args){
//function detail
}

提防:编译器会为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。
3,加强的for循环
基本语法:
EnhancedForStatement:
        for ( VariableModifiersopt Type Identifier: Expression) Statement

例子1(数组):
public getDetail(int pageNo,int pageSize,String ... args){
//function detail
for(String arg : args){
//do something
}
}

例子2(集合):
Map<String, Integer> histogram = ...;
    double total = 0;
    for (int i : histogram.values())
        total += i;
    for (Map.Entry<String, Integer> e : histogram.entrySet())
        System.out.println(e.getKey() + "       " + e.getValue() / total);

4,基本数据的封箱与拆箱
    自动装箱:
Integer num = 13;

    自动拆箱:
Int num = new Integer(13);    

基本Boolean/Byte/Integer(数值范围:-128至127)数据类型的对象缓存:
    Integer num1 = 13;
    Integer num2 = 13;
    System.out.println(num1 == num2);//结果为true
    Integer num3 = 129;
    Integer num4 = 129;
    System.out.println(num3 == num4);//结果为false


待续.......


你可能感兴趣的:(java,jdk,idea)