Java 5到Java8 的发展

本文详细介绍了Java从5到8的发展历程,包括JDK 5的自动装箱、枚举、泛型和For-Each循环,JDK 6的Desktop类和Compiler API,JDK 7的数字变量下滑线支持和try-with-resource,以及JDK 8的Lambda表达式、接口默认方法、Optional、Stream API和新的日期时间API等重大改进。
摘要由CSDN通过智能技术生成

Java 5到Java8 的发展

JDK 5

自动装箱与拆箱

JDK1.5 为每一个基本数据类型定义了一个封装类。使 java 中的基本数据类型也有自己的对象

int -->Integer
double --> Double
long --> Long
char --> Character
float --> Float
boolean --> Boolean
short --> Short
byte -- > Byte

  • 自动装包:将基本类型转换成为对象,例如:int --> Integer
  • 自动拆包:将对象转换成为基本数据类型,例如:Integer --> int

对于 JDK1.5 之前集合总不能存放基本数据类型的问题,现在也能够解决。

枚举

枚举是 JDK1.5 推出的一个比较重要的特性。其关键字为 enum例如:定义代表交通灯的枚举

public enum MyEnum{    
    RED,GREEN,YELLOW
}

静态导入

  • 优点:使用静态导入可以使被导入类的所有静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名。
  • 缺点:过度使用会降低代码的可读性

可变参数

在 JDK1.5 以前,当我们要为一个方法传递多个类型相同的参数时,我们有两种方法解决

  1. 直接传递一个数组过去
  2. 有多少个参数就传递多少个参数。

例如:

public void printColor(String red,String green,String yellow){ 
}

或者

public void printColor(String[] colors){}

这样编写方法参数虽然能够实现我们想要的效果,但是,这样是不是有点麻烦呢?再者,如果参数个数不确定,我们怎么办呢?Java JDK1.5 为我们提供的可变参数就能够完美的解决这个问题.

例如:

public void printColor(String... colors){}

如果参数的类型相同,那么可以使用 类型 三个点 ,后面跟一个参数名称的形式。这样的好处就是,只要参数类型相同,无论传递几个参数都没有限制注意:可变参数必须是参数列表的最后一项(该特性对对象和基本数据类型都适用)

泛型

//给集合指定存入类型,上面这个集合在存入数据的时候必须存入String类型的数据,否则编译器会报错List<String> strs = new ArrayList<String>();

“泛型” 意味着编写的代码可以被不同类型的对象所重用。

可见泛型的提出是为了编写重用性更好的代码。

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

比如常见的集合类 LinkedList,其实现的接口名后有个特殊的部分 <>,而且它的成员的类型 Link 也包含一个 <>,这个符号的就是类型参数,它使得在运行中,创建一个 LinkedList 时可以传入不同的类型,比如 new LinkedList,这样它的成员存放的类型也是 String

For-Each 循环

例如上面这个集合我们可以通过 for-each 遍历,这样更加简单清晰。

for(String s : strs){      
    System.out.println(s); 
}

注意:使用 for-each 遍历集合时,要遍历的集合必须实现了 Iterator 接口

线程并发库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值