java版本发布的发展历程
目录
JDK1.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 Color{
RED,GREEN,YELLOW
}
静态导入
优点:使用静态导入可以使被导入类的所有静态变量和静态方法在当前类直接课件,使用这些静态成员无需再给出他们的类名。
缺点:过度使用会降低代码的可读性
变长参数
在JDk1.5以前,当我们要为一个方法传递多个类型相同的参数,我们有两种方法解决
1.直接传递一个数组过去
public void printColor(String red,String green,String yellow){
}
2.有多少个参数就传递多少个参数。
public void printColor(String[] colors){
}
这种编写方法相对来说比较麻烦,如果参数个数不确定,编写不是那么顺手了,使用可变参数就可以很好地解决这些问题了
例如:
public void printColor(String.. colors){
}
如果参数的类型相同,那么可以使用(类型+三个点),后面跟一个参数名称的形式。这样的好处就是只要参数类型相同,无论传递几个参数都没有限制,注意:可变参数必须是参数列表的最后一项(该特性对对象和基本数据类型都适用)
泛型
“泛型”意味着编写的代码可以被不同类型的对象所重用。可见泛型的提出为了编写重用性更好的代码,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
List<String> strs = new ArrayList<String>();
for-Each循环
例如上面这个集合我们可以通过for-each遍历,这样国家简单清晰
for(String s:strs){
System.out.println(s);
}
线程并发库
线程并发库是Java1.5提出的关于线程处理的高级功能,所在包:java.util.concurrent
JDK6
Desktop类和SystemTray类
前者可以用来打开默认浏览器浏览指定的url,打开相同默认邮件客户端给指定的邮箱发邮件。
使用Complier API
轻量级Http Server API
用Console开发控制台程序
对脚本语言的支持
JDK 7
数字变量对下滑线的支持
switch对String的支持
try-with-resource
捕获多种异常并用改进后的类型检查来重新抛出异常
创建类型时类型判断
JDK7之前要这样写:
List<String> list =new ArrayList<Stirng>();
而在Java 以后,也可以这么写了
List<String> list = new ArrayList<>();
JDK 8
Lambda表达式和函数接口
接口的默认方法和静态方法
更好的类型判断
Optional
Streams
新的日期时间API
Nashorn JavaScript引擎
Base64