黑马程序员——静态导入,可变参数,自动拆箱装箱以及享元设计模式 JDK1.5新特性


                                          ----------------------     android培训      java培训   期待与您交流!    ----------------------   
                          

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);
	}
}

                                          ----------------------     android培训      java培训   期待与您交流!    ----------------------   
                         详细请查看       http://edu.csdn.net/heima


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

King·Forward

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值