浅析 java5 新特性(5)

来源:互联网 发布:e宠商城淘宝店 编辑:程序博客网 时间:2024/05/29 16:10


首先, 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):12569
注意:在使用可变参数的时候,也可以直接向方法中传递一个数组

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):12569

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));}}
运行结果:

39





原创粉丝点击