JDK各版本新增的主要特性
JDK1.5新特性:
1.自动装箱与拆箱:
2.枚举
3.静态导入,如:import staticjava.lang.System.out
4.可变参数(Varargs)
5.内省(Introspector),主要用于操作JavaBean中的属性,通过getXxx/setXxx。一般的做法是通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器(PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来调用这些方法。
6.泛型(Generic)(包括通配类型/边界类型等)
7.For-Each循环
8.注解
9.协变返回类型:实际返回类型可以是要求的返回类型的一个子类型
JDK1.6新特性:
1. AWT新增加了两个类:Desktop和SystemTray,其中前者用来通过系统默认程序来执行一个操作,如使用默认浏览器浏览指定的URL,用默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档等。后者可以用来在系统托盘区创建一个托盘程序
2.使用JAXB2来实现对象与XML之间的映射,可以将一个Java对象转变成为XML格式,反之亦然
3. StAX,一种利用拉模式解析(pull-parsing)XML文档的API。类似于SAX,也基于事件驱动模型。之所以将StAX加入到JAXP家族,是因为JDK6中的JAXB2和JAX-WS 2.0中都会用StAX。
4.使用Compiler API,动态编译Java源文件,如JSP编译引擎就是动态的,所以修改后无需重启服务器。
5.轻量级Http Server API,据此可以构建自己的嵌入式HttpServer,它支持Http和Https协议。
6.插入式注解处理API(PluggableAnnotation Processing API)
7.提供了Console类用以开发控制台程序,位于java.io包中。据此可方便与Windows下的cmd或Linux下的Terminal等交互。
8.对脚本语言的支持如: ruby,groovy, javascript
9.Common Annotations,原是J2EE 5.0规范的一部分,现在把它的一部分放到了J2SE 6.0中
10.嵌入式数据库 Derby
JDK1.7 新特性
1.对Java集合(Collections)的增强支持,可直接采用[]、{}的形式存入对象,采用[]的形式按照索引、键值来获取集合中的对象。如:
List<String>list=[“item1”,”item2”];//存
Stringitem=list[0];//直接取
Set<String>set={“item1”,”item2”,”item3”};//存
Map<String,Integer> map={“key1”:1,”key2”:2};//存
Intvalue=map[“key1”];//取
2.在Switch中可用String
3.数值可加下划线用作分隔符(编译时自动被忽略)
4.支持二进制数字,如:int binary= 0b1001_1001;
5.简化了可变参数方法的调用
6.调用泛型类的构造方法时,可以省去泛型参数,编译器会自动判断。
7.Boolean类型反转,空指针安全,参与位运算
8.char类型的equals方法: booleanCharacter.equalsIgnoreCase(char ch1, char ch2)
9.安全的加减乘除: Math.safeToInt(longv); Math.safeNegate(int v); Math.safeSubtract(long v1, int v2);Math.safeMultiply(int v1, int v2)……
10 .Map集合支持并发请求,注HashTable是线程安全的,Map是非线程安全的。但此处更新使得其也支持并发。另外,Map对象可这样定义:Map map = {name:"xxx",age:18};
JDK1.8新特性
1.接口的默认方法:即接口中可以声明一个非抽象的方法做为默认的实现,但只能声明一个,且在方法的返回类型前要加上“default”关键字。
2. Lambda 表达式:是对匿名比较器的简化,如:
Collections.sort(names,(String a, String b) -> {
returnb.compareTo(a);
});
对于函数体只有一行代码的,你可以去掉大括号{}以及return关键字。如:
Collections.sort(names,(String a, String b) -> b.compareTo(a));
或:Collections.sort(names, (a, b) -> b.compareTo(a));
3. 函数式接口:是指仅仅只包含一个抽象方法的接口,要加@FunctionalInterface注解
4. 使用 :: 关键字来传递方法或者构造函数引用
5.多重注解
6.还增加了很多与函数式接口类似的接口以及与Map相关的API等……
JDK各版本新增的主要特性的更多相关文章
- JDK各版本新增的主要特性总结
JDK1.5新特性: 1.自动装箱与拆箱: 2.枚举 3.静态导入,如:import staticjava.lang.System.out 4.可变参数(Varargs) 5.内省(Introspec ...
- JDK各个版本的新特性jdk1.5-jdk8
JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一 ...
- JDK 7u60 版本发布下载安装
JDK 7u60 版本发布了,主要改进包括: JavaFX 更新到 2.2.60 Java Mission Control(JMC)更新到 5.3 如果你在一个早期版本的Java中禁用了过期检查功能, ...
- JDK各个版本的新特性
对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一下JDK1.5版本到JD ...
- JDK各个版本的新特性jdk1.5-jdk8(转)
原文:http://www.cnblogs.com/langtianya/p/3757993.html JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要 ...
- Java各版本新增特性, Since Java 8
Java各版本新增特性, Since Java 8 作者:Grey 原文地址: Github 语雀 博客园 Java 8 Reactor of Java 这一章来自于<Spring in Act ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增企业通(内部简易聊天工具)
RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本 新增企业通(内部简易聊天工具) RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用 ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增岗位管理-WinForm部分
RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本 新增岗位管理-WinForm部分 岗位(职位)管理模块主要是针对组织机构的岗位(职位)进行管理,包括:增加.修改. ...
- jdk 多版本安装 for mac
2016年mac上已经安装有jdk1.6的版本 目录在/Library/Java/JavaVirtualMachines/1.6.0.jdk 有时候mac版本跟新会自动删除jdk1.6 所以要去ma ...
随机推荐
- 【转】CSS中position属性( absolute | relative | static | fixed )详解
我们先来看看CSS3 Api中对position属性的相关定义: static:无特殊定位,对象遵循正常文档流.top,right,bottom,left等属性不会被应用. relative:对象遵循 ...
- 字符串子串查找strstr
问题: 函数名: strstr 函数原型:char *strstr(const char *str1, const char *str2); 语法:* strstr(str1,str2) str1: ...
- linux下使用kpartx挂载虚拟文件系统
在linux中,如果映像文件(.img)含有分区表的话,那么用losetup这个程序来加载文件系统就有点力不从心了.因为losetup只能加载无分区的文件系统映像文件.不过有一个好东西配合losetu ...
- JAVA实现数据库数据导入/导出到Excel(POI)
准备工作: 1.导入POI包:POI下载地址http://mirrors.tuna.tsinghua.edu.cn/apache/poi/release/src/(重要) 如下 2.导入Java界面美 ...
- 给Amazon ec2 增加卷(Volume)并挂载到系统
给Amazon ec2 增加卷(Volume)并挂载到系统 前言 导师让师弟把实验的网站挂到亚马逊的EC2云服务器上.师弟对linux不太熟悉.就跑过来问我.于是花了一个小时搞定.问题主要是将EC2的 ...
- 性能测试工具比较:LoadRunner vs JMeter - 测试结果数据比较
对web请求(HTTP/HTML)进行性能测试,确认请求响应时间.分别使用Loadrunner和JMeter进行测试,比较测试结果. 1.LoadRunner测试web请求响应时间 1.1 编制(录 ...
- MacOSX64位机器上gcc编译32位x264静态库
x264最新包地址:http://www.videolan.org/developers/x264.html 编译命令: ./configure --enable-static --host=i386 ...
- CF 322B Ciel and Flowers 贪心水题
B. Ciel and Flowers time limit per test 1 second memory limit per test 256 megabytes input standard ...
- iOS extern使用教程
ios开发使用extern访问全局变量 使用extern关键字法: 1 .新建Constants.h文件(文件名根据需要自己取),用于存放全局变量: 2. 在Constants.h中写入你需要的全局变 ...
- 深入浅出MyBatis-Sqlsession
前面的章节主要讲mybatis如何解析配置文件,这些都是一次性的过程.从本章开始讲解动态的过程,它们跟应用程序对mybatis的调用密切相关.本章先从sqlsession开始. 创建 正如其名,Sql ...