JDK1.5新特性
1、泛型(Generics)
为集合(collections)提供编译时类型安全,无需每刻从Collections取得一个对象就进行强制转换(cast)
2、增强的for循环(foreach)
减少迭代器(iterator)的潜在错误(error-proneness)
3、自动装箱、拆箱(Autoboxing/unboxing)
无需在基本类型(primitive types)(例如double)和包装类型(wrapper types)(例如Double)之间人工地进行转换
4、枚举(Typesafeenums)
提供类型安全枚举模式的各项好处
5、静态导入(Static import)
无需在使用其他类的静态成员变量前缀其类名.这将使得代码更为简洁
6、可变参数
7、元数据(注解Annotation,e.g.: @Override)

JDK1.6新特性
1、Web服务元数据(@WebService,@WebMethod,@WebResult)
2、脚本语言支持(JSR223, javax.script.ScriptEngine)
3、JTable的排序和过滤(在JTable中设置TableRowSorter,根据其setRowFilter方法来过滤)
4、更简单、更强大的JAX-WS(Java Architecture for XML Web Services,JSR224)
5、轻量级Http Server
6、嵌入式数据库Derby

jdk1.7新特性
1 对集合类的语言支持;
2 自动资源管理;
3 改进的通用实例创建类型推断;
4 数字字面量下划线支持;
5 switch中使用string;
6 二进制字面量;
7 简化可变参数方法调用;
8 新增一些取环境信息的工具方法;
9 Boolean类型反转,空指针安全,参与位运算;
10 两个char间的equals;
11 安全的加减乘除;
12 map集合支持并发请求 ,且可以写成 Map map = {name:"xxx",age:18};

1、switch参数可以是String
1.7之前:byte/char/short/enum/int
1.7之后:byte/char/short/enum/int/String
String sex="男";
switch(sex){
case "男":System.out.println("先生");break;
case "女":System.out.println("女士");break;
}

2、二进制、八进制、十六进制表达
1.7之前:二进制无法直接表达
1.7之后:二进制可以直接表达、输出

System.out.println("二进制:"+0b11);
System.out.println("八进制:"+011);
System.out.println("十六进制:"+0x11);

3、数字表示(字面量中使用下划线,可以在整数和浮点数数字间用任意多的下划线来分割)
System.out.println(500_00);//_相当于数学中科学计数的逗号:500,00
500_00.23_22表示500,00.23,22
1_2_3_4_5表示12345

4、泛型的运用(泛型实例化自动推断)
1.7之前:java.util.List<String> list = new java.util.ArrayList<String>();
1.7之后:java.util.List<String> list = new java.util.ArrayList<>();

5、一个catch可以捕获多个异常
try{

}catch(IOException | NullPointException | ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}

6、try-with-resources
try(BufferedReader reader = new BufferedReader(new FileReader("path"))){
//reader不需要手动关闭,会在try完成时自动释放
//try子句的内容必须实现java.lang.AutoCloseable接口,否则编译异常
}
通常,实现AutoCloseable接口的类有:java.sql.connection.*;java.io.BufferedReader;java.io.FileReader;
也可以自定义类,实现AutoCloseable接口,实现其中的close()方法;
try子句如果要管理多个资源,可以使用“;”号分割

7、集合使用方式的增强支持
List<String> list = ["item"];//
String item = list[0];//像数组一样使用List

Set<String> set = {"item"};

Map<String,Integer> map = {"key":1};
int value = map["key"];//像JSON一样

8、可变参数警告@SafeVarargs

@SafeVarargs
public staitc <T> T useVarargs(T... args){}
如果参数是可变参数,每次调用时会产生警告信息,如果此时你能保证参数是安全的,可使用@SafeVarargs去除警告

JAVA笔记 之 JDK新特性的更多相关文章

  1. JAVA JDK1.5-1.9新特性

    1.51.自动装箱与拆箱:2.枚举(常用来设计单例模式)3.静态导入4.可变参数5.内省 1.61.Web服务元数据2.脚本语言支持3.JTable的排序和过滤4.更简单,更强大的JAX-WS5.轻量 ...

  2. Java 8 正式发布,新特性全搜罗

    经过2年半的努力.屡次的延期和9个里程碑版本,甲骨文的Java开发团队终于发布了Java 8正式版本. Java 8版本最大的改进就是Lambda表达式,其目的是使Java更易于为多核处理器编写代码: ...

  3. Java引入的一些新特性

    Java引入的一些新特性 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本. Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程, ...

  4. 使用示例带你提前了解 Java 9 中的新特性

    使用示例带你提前了解 Java 9 中的新特性 转载来源:https://juejin.im/post/58c5e402128fe100603cc194 英文出处:https://www.journa ...

  5. C++ 学习笔记(一些新特性总结3)

    C++ 学习笔记(一些新特性总结3) public.protected 和 private 继承 public 继承时,基类的存取限制是不变的. class MyClass { public: // ...

  6. JDK新特性关于流操作部分

    // array 工具类 可以用来快捷的将数组转化为list List<String> strings = Arrays.asList("zhongguo", &quo ...

  7. Java学习之==>Java8 新特性详解

    一.简介 Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.Java 8是 Java 自 Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库. ...

  8. JavaEE基础(二十七)/反射、JDK新特性

    1.反射(类的加载概述和加载时机) A:类的加载概述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载  就是指将class文件读入 ...

  9. JDK 新特性

    Jdk8新特性 一:接口默认方法和静态方法: 我们可以在接口中定义默认方法,使用default关键字,并提供默认的实现.所有实现这个接口的类都会接受默认方法的实现,除非子类提供的自己的实现. 我们还可 ...

随机推荐

  1. [Java Web整合开发王者归来·刘京华] 2、 Java Web开发概述

    1.Web相关概念 1-1.胖客户与瘦客户 >_<" RCP的定义及优缺点:       >_<"TCP的定义及优缺点:             1-2.B ...

  2. 拉勾网ThoughtWorks面试题代码实现

    今天看到一个很有意思的面试活动(活动链接),不需要简历,只有一道编程题目,在线提交你的代码即可. 本菜鸟对面试不感兴趣,但题目让我很兴奋,特来挑战一下~ 或许当你看到这篇博文的时候活动已经失效了,所以 ...

  3. Spring - 初始化spring容器

    2016.01.12 学习linux内核的过程中发现变相的提升了自己的工程能力.以前觉得spring这些东西很复杂麻烦.然而,学了linux内核再看这些东西,发现好简单. 学习spring首先就要学习 ...

  4. 负margin在布局中的运用(*****************************************************************)

    一.左右栏宽度固定,中间栏宽度自适应 <!DOCTYPE html> <html> <head lang="en"> <meta char ...

  5. centos网卡错误Device eth0 does not seem to be present

    在使用vmware及VirtualBox迁移linux系统过程中,发现部署后的linux系统无法启动网卡 报错为 Bringing up interface eth0: Device eth0 doe ...

  6. 如何引用jQuery实现下拉列表,点击展开,点击关闭。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)

    目录 前言 formidable简介 创建项目并安装formidable 实现上传功能 运行结果 部分疑惑解析 写在之后 前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能---- ...

  8. 通过Ruby On Rails 框架来更好的理解MVC框架

    通过Ruby On Rails 框架来更好的理解MVC框架   1.背景    因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...

  9. 转:最简单的基于 DirectShow 的视频播放器

    50行代码实现的一个最简单的基于 DirectShow 的视频播放器 本文介绍一个最简单的基于 DirectShow 的视频播放器.该播放器对于初学者来说是十分有用的,它包含了使用 DirectSho ...

  10. 学习Swift,一定不能错过的10大开源项目!

    如果你是位iOS开发者,或者你正想进入该行业,那么Swift为你提供了一个绝佳的机会.Swift的设计非常优雅,较Obj-C更易于学习,当然也非常强大. 为了指导开发者使用Swift进行开发,苹果发布 ...