传智播客学习之JDK 5.0 新特性总结

本文详细介绍了 JDK 5.0 的主要新特性,包括静态导入、自动装箱/拆箱、增强 for 循环、可变参数及枚举等。通过具体示例解释了这些特性的使用方法及其在实际开发中的应用。

在前段时间,对JDK 5.0 部分新特性进行了预习,这两天有幸听了佟刚老师的java基础与加强,佟刚老师为我们详细介绍了JDK 5.0 的所有新特性,一直听师兄们说佟老师讲课十分幽默生动,真的是百闻不如一见,听完这两天的课,第一感觉就是:这个老师很适合当老师,不仅是外表温文尔雅,关键是有耐心,负责任,会去关心学生是否能跟上或者理解。第二感觉就是:这个老师讲课很仔细,比较注重底层原理以及学习方法的讲解。第三感觉就是:这个老师人品很好,虽然听过很多人讲过人生大道理之类的,但是第一次感觉大道理那么中听。用佟老师说的一句话就是,学习就是为了用的,如果学了不会用,那就是一种浪费,所以在讲JDK 5.0 新特性的时候,老师除了给我们讲解特性本身以外,重点讲了在实际开发和后面学习中那里会用的哦啊,怎么使用,先将这两天学习内容总结如下:

一、静态导入

静态导入用于导入指定类的某个静态属性值(方法)或全部静态属性值(方法)。静态导入语句使用 import static 语句,可以导入某个类的单个属性或者方法,也可以导入全部静态属性和方法。

import static java.lang.System.out;

import static java.lang.Math.*

public class HelloJava {

public static void main(String[] args) {

out.println("Hello Java");//由于导入了System的静态属性out。所以可以直接用

out.println(sin(PI/6));//因为静态导入Math 类的所有的静态属性和方法}}

二、自动装箱/拆箱

主要用于集合中居多,但是注意不是所有都能支持自动装箱/拆箱。

自动装箱:把一个基本数据类型直接赋给对应的包装类变量, 或者赋给 Object 变量

自动拆箱:把包装类对象直接赋给一个对应的基本类型变量

list.add(1);//上面的代码有一个自动装箱的过程,先把1装箱为Integer类型,然后再放到list对象中。

Int m = (Integer)list.get(0);//自动拆箱

三、增强for循环

主要用于遍历数组和集合,相比传统for循环,无须获得数组和集合长度, 无须根据索引来访问数组元素和集合元素。

格式:for(type varName : array | collection){}//varName自动迭代访问每一个元素,表示正在遍历的对象

注意

1)使用增强的for循环对数组进行初始化要格外小心。最好不要,麻烦,赋值有一定局限性。

2)使用增强的for循环只能遍历collection,而不能遍历Map。

四、可变参数

这个特性就是允许定义形参长度可变的参数,从而允许为方法指定数量不确定的形参

格式:定义方法时, 在最后一个形参的类型后增加三点(…, ...位于变量类型和变量名之间,前后有无空格都可以)则表明该形参可以接受多个参数值, 多个参数值被当成数组传入

注意:

1)可变形参只能处于形参列表的最后, 所以一个方法最多只能有一个长度可变的形参

2)调用包含一个可变形参的方法时, 可以为该形参传入多个参数或一个数组

public static int getTotal(int… number){

Int total = 0;

For(int i=0;i<number.length;i++)//调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法中以数组的形式访问可变参数。

{

total+=number[i];

}

return total;}

五、枚举

实例有限而且固定的类, 在 Java 中被称为枚举类

enum EnumSeason implements YearPosition{

//显式列出枚举类的所有实例,注意必须放在前面,并注意格式

SPRING("春天", "this is spring"), 

SUMMBER("夏天", "this is summer"),  

AUTUMN("秋天", "this is autumn"), 

WINTER("冬天", "this is winter");

public String getName() {return name;}

public String getDesc() {return desc; }

private final String name;//枚举类对象的属性不允许被改动, 所以应该使用 private final 修饰

private final String desc;

//注意不能创建对象,枚举类的构造方法只能使用 private 访问控制符

private EnumSeason(String name, String desc){

this.name = name;

this.desc = desc;}

至于jdk5.0的其他新特性,例如注解,泛型,反射等,在之前的博客有了简单介绍,这里就不重复了。至于比较重要的内省等,将在下面一篇介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值