Java----JDK1.5出现的新特性

高新技术 JDK1.5出现的新特性
一、Static Import静态导入
import static语句:导入一个类中的某个静态方法,或所有静态方法。
package cn.itcast.day1;

public class StaticImport {

	public static void main(String[] args) {
		int i = -3;
		i = Math.abs(i);
		System.out.println(i);
		double num = Math.random();
		System.out.println(num);
	}
}
每次要使用Math类的功能都得加上类名进行调用,很麻烦。使用静态导入
package cn.itcast.day1;

import static java.lang.Math.*;
public class StaticImport {

	public static void main(String[] args) {
		int i = -3;
		i = abs(i);
		System.out.println(i);
		double num = random();
		System.out.println(num);
	}
}
二、可变参数
可变参数:一个方法接受的参数个数不确定,可以使用可变参数对方法进行改进。
特点:只能出现在参数列表的最后;“...”位于变量类型和变量名之间。前后有无空格都可以;调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。
package cn.itcast.day1;

public class VariableParam {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		fun("sum",3,4,5);
		fun("sum",3,4,5,7);
		fun("sum",3,7);
	}

	private static void fun(String string, int ... args) {
		// TODO Auto-generated method stub
		int sum = 0;
		for(int i : args){
			sum += i;
		}
		System.out.println(string+" = "+sum);
	}

}

回顾overloadoverride的区别?
override(重写)
1.方法名、参数、返回值相同。
2.子类方法的访问权限不能小于父类方法。
3.子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4.方法被定义为final不能被重写。
overload(重载)
1、参数类型、个数、顺序至少有一个不相同。  
2、不能重载只有返回值不同的方法名。
:存在于父类和子类、同类中。
三、高级for循环
语法for(type 变量:集合变量名){...}
注意事项
1.迭代变量必须在“()”中定义。
2.集合变量可以是数组或实现了Iterator接口的集合类
package cn.itcast.day1;

public class ForEach {
	
	public static void main(String[] args) {
		int[] arrays = {1,2,3,4,5,6};
		int sum = 0;
		for(int num : arrays){
			sum += num;
		}
		System.out.println("Sum = "+sum);
	}
}

四、自动拆箱自动装箱
package cn.itcast.day1;

public class ForEach {
	
	public static void main(String[] args) {
		Integer i = 7;//自动将基本数据类型变量装箱成对象
		Integer j = 3;
		int sum = i+j;//自动将对象拆箱成基本数据类型变量
		System.out.println("Sum = "+sum);
	}
}

其实在运行过程中,省略了很多动作,Integer i = 7其实简写了Integer i = new Integer(7)int sum = i+j其实也隐含了int sum = i.intValue()+j.intValue()自动拆箱装箱功能的出现实现了对代码的简化。
享元模式:
package cn.itcast.day1;

public class ForEach {
	
	public static void main(String[] args) {
		Integer a = 127;
		Integer b = 127;
		System.out.println(a == b);
		
		Integer c = 128;
		Integer d = 128;
		System.out.println(c == d);
	}
}

疑惑疑问为神马会这样了?
:这是享元模式,一个byte的范围在-128~127。因为这些数被利用的次数较为频繁,所以为了优化内存,就把这些数提取出来供对象调用。作为对象们共享数据,所以也就相等了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值