package zhangxiaoxiang.bank;
//import static java.lang.Math.max;//单独导入Math类中的一个max静态方法
import static java.lang.Math.*;//导入Math类中的所有的静态方法
/**
* 静态导入
* 特点:
* JDK1.5出现的新特性;
* import语句可以导入一个类或者某个包中所有的类;
* import static语句导入一个类中的某个静态方法或所有静态方法;
* 可变参数
* 特点:
* JDK1.5出现的新特性 一个方法接受的参数个数不确定,就用可变参数;
* 只能出现在参数列表的最后;
* ...位于变量数据类型和变量名之间,前后有无空格都可以;
* 创建可变参数方法时,编译器为该可变参数隐含创建一个数组,在方法体中,以数组的方式访问可变参数
* 自动拆箱与装箱
* 特点:
* JDK1.5出现的新特性
*
*
*
*
*
* @author wjw
*/
public class StaticImport {
public static void main(String[] args) {
// variableParameter(1,3,4,5,6,7);
autoBox();
}
/**
* 静态导入
* 特点:
* JDK1.5出现的新特性;
* import语句可以导入一个类或者某个包中所有的类;
* import static语句导入一个类中的某个静态方法或所有静态方法;
*/
public static void staticImport(){
System.out.println(max(3,4));
//在导入Math类中所有的静态方法后,就可以直接用里面的方法了
System.out.println(abs(3-6));
}
/**
* 可变参数
* 特点:
* JDK1.5出现的新特性 一个方法接受的参数个数不确定,就用可变参数;
* 只能出现在参数列表的最后;
* ...位于变量数据类型和变量名之间,前后有无空格都可以;
* 创建可变参数方法时,编译器为该可变参数隐含创建一个数组,在方法体中,以数组的方式访问可变参数
* @param x
* @param is
*/
public static void variableParameter(int x,int...is){//可变参数一定位于参数列表的最后,否则报错;数据类型...变量名中间可以有空格,如:int ... is
int sum=x;
// for (int i = 0; i < is.length; i++) {
// sum+=is[i];//对可变参数要以数组方式进行操作
// }
//下面用增强for循环实现
for(int i:is){
sum+=i;
}
System.out.println(sum);
}
/**
* 自动拆箱与装箱
* JDK1.5提出的新特性
*/
public static void autoBox(){
Integer a=3;//此时,3被自动装箱,具体为 new Integer(3);
System.out.println(a+5);//此时,因为上面定义的已经自动装箱了为Integer对象,这时又自动拆箱成基本数据类型,在相加减
Integer aa=33;
Integer bb=33;
System.out.println(aa==bb);
//虽然自动装箱拆箱,但有一个规则就是在-128----127之间,Integer定义的变量的值会存入可以理解为缓冲池中
//如果下面还有定义在-128----127之间的数,会直接在缓冲池中去拿,不会再定义新的对象,从而提高效率,因为在这个范围内用的频率很大
//如果超出这个范围,就会新建对象
//其实这是一种设计模式------享元设计模式 flyweight:将大量的一样的对象抽取其中相同的部分,从而提高执行效率,这种设计模式就是享元设计模式
Integer aaa=128;
Integer bbb=128;
System.out.println(aaa==bbb);
Integer aaaa=Integer.valueOf(333);//此Integer对象的valueof方法就是把基本数据类型转化为封装类型,和自动装箱拆箱是一样的,也是享元设计模式
Integer bbbb=Integer.valueOf(333);
System.out.println(aaaa==bbbb);
}
}
黑马程序员——静态导入,可变参数,自动拆箱装箱以及享元设计模式 JDK1.5新特性
最新推荐文章于 2015-07-01 20:33:41 发布