java新特性

原创 2015年07月08日 10:45:35

Java7语法新特性

1. switch中增加对String类型的支持。
  1. switch (gender) {  
  2.        case "男":  
  3.            title = name + " 先生";  
  4.            break
编译器在编译时先做处理: 
①case只有一种情况,直接转成if; 
②如果只有一个case和default,则直接转换为if...else...; 
③有多个case,先将String转换为hashCode,然后对应的进行处理,JavaCode在底层兼容Java7以前版本。

2. 数字字面量的改进 
①增加二进制表示 
Java7前支持十进制(123)、八进制(0123)、十六进制(0X12AB) 
Java7增加二进制表示(0B11110001、0b11110001) 
②数字中可添加分隔符 
Java7中支持在数字量中间增加'_'作为分隔符,更直观,如(12_123_456),下划线只能在数字中间,编译时编译器自动删除数字中的下划线

②catch子句可以同时捕获多个异常 
  1.  try {  
  2.         Integer.parseInt("Hello");  
  3.     }  
  4.     catch (NumberFormatException | RuntimeException e) {  //使用'|'分割,多个类型,一个对象e  
  5.          
  6.     }
③try-with-resources语句 
Java7之前需要在finally中关闭socket、文件、数据库连接等资源; 
Java7中在try语句中申请资源,实现资源的自动释放(资源类必须实现java.lang.AutoCloseable接口,一般的文件、数据库连接等均已实现该接口,close方法将被自动调用)。 
  1. try ( InputStream input = new FileInputStream(fromPath);  
  2.     OutputStream output = new FileOutputStream(toPath) ) {  
  3.          byte[] buffer = new byte[8192];  
  4.          int len = -1;  
  5.          while( (len=input.read(buffer))!=-1 ) {  
  6.              output.write(buffer, 0, len);  
  7.          }  
  8.      } 

 二、“<>”类型推断运算符

Java5.x新增了许多新的功能,在这些新引入的功能中,泛型最为重要。泛型是一种新的语法元素,泛型的出现导致整个Java API都发生了变化(比如:Java集合框架就使用了泛型语法)。

在泛型没有出现之前,我们都是将Object类作为通用的任意数据类型使用。因为在Java语言中,Object类是所有类的超类。但是使用Object类作为任意数据类型并不是安全的,因为在很多时候我们需要将Object类型向下转换,在这些转换过程中偶尔也可能出现不匹配的类型转换错误。泛型的出现则很好的解决了Object类型所存在的安全性问题,且泛型还扩展了代码的重用性。

泛型的核心概念就是参数化类型,所谓参数化类型指的就是开发人员可以在外部指定的数据类型来创建泛型类、泛型接口和泛型方法。

使用泛型类型示例:

Java代码  
  1. List<String> list new ArrayList<String>();  
List<String> list = new ArrayList<String>();

  

通过上述程序示例我们可以看出,笔者定义了一个泛型类型为String的List集合。这样一来List集合的泛型参数将会被定义为String类型。但是你有没有想过,使用里氏替换原则或者实例化泛型类型时,其实现可以简化泛型类型声明吗?答案是肯定的,在Java7.x中,允许使用运算符“<>”来做类型推断。也就是说你只需要在声明时标注泛型类型,实现时无需重复标注。

使用“<>”类型推断运算符简化泛型语法:

Java代码  
  1. List<String> list new ArrayList<>();  
List<String> list = new ArrayList<>();

Java8语法新特性

1.lambda 表达式
  为了解决下面的这些缺点

使用例子:

2. stream 接口


使用例子:.forEach()//循环
使用过滤器来查找元素:.filter()//设置过滤条件
 性别为女的所有数据。

3. DoubleStream 接口使用
实例:查找people中姓名包含菲字的所有人的平均身高:

4.LocalDate 类
   说明:localdate类使用iso日历表示年月日
常用方法:
LocalTime 类
常用方法:


5.DateTimeFormatter类
6.ZonedDateTime类

相关文章推荐

java8新特性

  • 2017年11月08日 13:39
  • 48B
  • 下载

Java9 新特性官方版

  • 2017年09月27日 13:26
  • 223KB
  • 下载

Java8新特性——StreamAPI(一)

1. 流的基本概念1.1 什么是流?流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合。众所周知,集合操作非常麻烦,若要对集合进行筛选、投影,需要写大量的代码,而流是...

Java7 新特性

  • 2014年09月23日 16:56
  • 20KB
  • 下载

JAVA7新特性透明窗体代码

  • 2011年12月07日 14:11
  • 2KB
  • 下载

java 8简明教程(新特性)

Java并没有没落,人们很快就会发现这一点” 欢迎阅读我编写的Java 8介绍。本教程将带领你一步一步地认识这门语言的新特性。通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表...

JAVA5新特性介绍

  • 2010年11月18日 16:25
  • 354KB
  • 下载

Java SE 6 新特性 HTTP 增强.doc

  • 2009年07月09日 09:39
  • 112KB
  • 下载

Java JDK1.8新特性Lambda 表达式

一、lambda含义     lambda表示数学符号“λ”,计算机领域中λ代表“λ演算”,表达了计算机中最基本的概念:“调用”和“置换”。在很多动态语言和C#中都有相应的lambda语法,这类语法...

java-jdk1.4 新特性介绍

  • 2008年03月12日 23:45
  • 9.51MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java新特性
举报原因:
原因补充:

(最多只允许输入30个字)