浅析 java5 新特性(5)


首先, Java 的根基 JDK已经跨越到了 J2SE 1.5,或者称为 J2SE 5.0,不过,我更喜欢称它为1.5,延续性是我们应用程序员更关心的,当然革命性是那些新技术发明者更陶醉的,所以他们曾经取名 J2SE 2.0,现在,为了表示这种跨越,而且跨越是非常巨大,一下子达到了 J2SE5.0,非常夸张,不过老外在技术上确实经常极端,"偏执者才能生存"我想是其行动主义文化的主要基础。J2SE1.5 最吸引眼球的我认为主要是 annotate 特性,该特性可以大大降低程序员的编程量,它和 Java Relfect 机制结合,可以编制出相当灵活的软件系统或框架。从 J2SE1.5 看出,SUN正在试图简化 Java,但是也许这一简化动作来得迟了点。

一下 简单总结一下 java5  的一些新特性:

1、可变参数:在调用一个方法时,必须根据方法的定义传递参数,但是在java5 之后产生了一种新的概念---可变参数,即,方法中可以接受的参数吧u,二是随着需要而传递的。

格式:返回值类型  方法名称(类型 参数名称,类型 ...参数名称){}

注意:“类型...参数名称”必须放在最后面;

             前面的“类型  参数名称”可有可无;

             “类型...参数名称”之间是三个点号;

             向方法中传递可变参数之后,其中的参数是以数组的形式保存起来的。

代码:

package com.zsc.everyday;
//可变参数示例
public class NewTest {
	public static void main(String[] args) {
		System.out.println("不传参数fun():");
		fun();
		System.out.println("传递一个参数 fun(1):");
		fun(1);
		System.out.println("传递五个参数 fun(1,2,5,6,9):");
		 fun(1,2,5,6,9);
	}
	private static void fun(int...arg) {
		for(int i=0;i<arg.length;i++){
			System.out.println(arg[i]);
		}
	}
}
运行结果:

不传参数fun():
传递一个参数 fun(1):
1
传递五个参数 fun(1,2,5,6,9):
1
2
5
6
9
注意:在使用可变参数的时候,也可以直接向方法中传递一个数组

int temp[] = {1,2,5,6,9};
fun(temp);
或者写成:

fun(new int[]{1,4,2,5,8});

2、 foreach 输出:之前 数组的输出都会使用 for 循环输出,但是在 jdk1.5 之后提供了一种更为简洁的输出方式 foeeach  称为增强 for循环。

格式:for(数据类型  变量名称:数组名称){...}

代码:

package com.zsc.everyday;
public class ForTest {
	public static void main(String[] args) {
		System.out.println("不传参数fun():");
		fun();
		System.out.println("传递一个参数 fun(1):");
		fun(1);
		System.out.println("传递五个参数 fun(1,2,5,6,9):");
		fun(1,2,5,6,9);
	}
	private static void fun(int...arg) {
		for(int x:arg){
			System.out.println(x);
		}
	}
}

运行结果:

不传参数fun():
传递一个参数 fun(1):
1
传递五个参数 fun(1,2,5,6,9):
1
2
5
6
9

3、装箱与拆箱:

八种基本数据类型:int 、char、short、boolean、long、float、double、byte。

八种对应包装类:Integer、 Character、 Short 、Boolean 、Long 、Float、 Double 、Byte。

装箱:讲一个基本数据类型转变为包装类。

拆箱:讲一个包装类转变为基本数据类型。

之前操作:

package com.zsc.everyday;
public class OldWrapper {
	public static void main(String[] args) {
		int x = 30 ;
		//装箱:讲一个基本数据类型转变为包装类。
		Integer  i = new Integer(x);
		//拆箱:讲一个包装类转变为基本数据类型。
		int temp = i.intValue();
	}
}
自动装箱与自动拆箱:

package com.zsc.everyday;
public class OldWrapper {
	public static void main(String[] args) {
		Integer m = 30 ;
		int n = m ;
		Float f = 30.5f ;
		float ff = f ;
	}
}

4、静态导入:如果一个类中的方法全部是static 声明的静态方法,则在导入时就可以直接使用 import static 的方式导入。

格式:import static 包.类.*;

在java中 Math 类就是一个这样的类。

代码:

package com.zsc.everyday;
import static java.lang.Math.*;
public class MathTest {
	public static void main(String[] args) {
		System.out.println(Math.abs(3-6));
		System.out.println(Math.max(3, 9));
	}
}
运行结果:

3
9





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值