`
- 浏览:
26705 次
- 性别:
- 来自:
沈阳
-
- 1,菱形语法(泛型实例化类型自动推断)
-
List<String> list = new ArrayList<>();
-
2,在目前版本中,不可具体化的泛型(任意类型)可变参数,在编译时,会在调用处产生警告,JDK7里将这个警告挪到了方法定义处。
- 变化前:
-
static <T> List<T> asList(T... elements) { ... }
-
static List<Callable<String>> stringFactories() {
- Callable<String> a, b, c;
- ...
-
return asList(a, b, c);
- }
-
-
static <T> List<T> asList(T... elements) { ... }
-
static List<Callable<String>> stringFactories() {
- Callable<String> a, b, c;
- ...
-
return asList(a, b, c);
- }
- 变化后:
-
static <T> List<T> asList(T... elements) { ... }
-
static List<Callable<String>> stringFactories() {
- Callable<String> a, b, c;
- ...
-
return asList(a, b, c);
- }
-
-
static <T> List<T> asList(T... elements) { ... }
-
static List<Callable<String>> stringFactories() {
- Callable<String> a, b, c;
- ...
-
return asList(a, b, c);
- }
-
-
3,switch现在可以支持字符串了
- String s = ...
-
switch(s) {
-
case "quux":
-
processQuux(s);
-
case "foo":
-
case "bar":
- processFooOrBar(s);
-
break;
-
case "baz":
-
processBaz(s);
-
default:
- processDefault(s);
-
break;
- }
-
- String s = ...
-
switch(s) {
-
case "quux":
-
processQuux(s);
-
case "foo":
-
case "bar":
- processFooOrBar(s);
-
break;
-
case "baz":
-
processBaz(s);
-
default:
- processDefault(s);
-
break;
- }
-
-
4,支持二进制语法和单位级别的数字表示方式
-
byte aByte = (byte)0b00100001;
-
short aShort = (short)0b1010000101000101;
-
int anInt1 = 0b10100001010001011010000101000101;
-
-
byte aByte = (byte)0b00100001;
-
short aShort = (short)0b1010000101000101;
-
int anInt1 = 0b10100001010001011010000101000101;
- 支持单位级别的数字,提高可读性
-
long underScores = 9_223_372_036_854_775_807L;
-
long underScores = 9_223_372_036_854_775_807L;
-
5,从语法层面上支持集合,不再是数组的专利。
-
final List<Integer> piDigits = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9];
-
final Set<Integer> primes = { 2, 7, 31, 127, 8191, 131071, 524287 };
-
final Map<Integer, String> platonicSolids = { 4 : "tetrahedron",
-
6 : "cube", 8 : "octahedron", 12 : "dodecahedron", 20 : "icosahedron"
- };
-
-
final List<Integer> piDigits = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9];
-
final Set<Integer> primes = { 2, 7, 31, 127, 8191, 131071, 524287 };
-
final Map<Integer, String> platonicSolids = { 4 : "tetrahedron",
-
6 : "cube", 8 : "octahedron", 12 : "dodecahedron", 20 : "icosahedron"
- };
-
-
6,JSR 292 动态类型语言支持
- Dynamic x = (动态语言脚本);
-
Object y = x.foo("ABC").bar(42).baz();
-
- Dynamic x = (动态语言脚本);
-
Object y = x.foo("ABC").bar(42).baz();
-
-
7,动态资源管理
-
在目前版本的java中,当你操作流时,一定会加try..finally以保证出现异常时,流能被正确关闭。
-
BufferedReader br = new BufferedReader(new FileReader(path));
-
try {
-
return br.readLine();
-
} finally {
- br.close();
- }
-
-
BufferedReader br = new BufferedReader(new FileReader(path));
-
try {
-
return br.readLine();
-
} finally {
- br.close();
- }
-
在JDK7里,你只需要将资源定义在try()里,Java7就会在readLine抛异常时,自动关闭资源。另外,资源类必须实现 Disposable<?> 接口。支持管理多个资源
-
-
try (BufferedReader br = new BufferedReader(new FileReader(path)) {
-
return br.readLine();
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
JAVA 7 新特性 —— 异常处理升级 JAVA 7 中引入了多个新特性,其中之一是异常处理升级。在 Java 7 中,catch 代码块得到了升级,可以在单个 catch 块中处理多个异常。这种特性可以减少代码重复度,并生成更少的...
### Java 7新特性中文介绍 #### 一、概述 随着Java 7的发布,业界迎来了一次重大的技术革新。作为一款原本就极其强大的编程语言,Java在Oracle的重组之后,不仅保持了其原有的优势,还增添了许多令人期待的新特性...
Java 7是Java编程语言的一个重大更新,发布于2011年,它引入了许多新的特性和改进,旨在提升开发者的效率和代码的可读性。...《深入理解Java7》这本书应该会详细阐述这些内容,帮助你全面掌握Java 7的精髓。
Java 7,全称为Java SE 7 (Java Platform, Standard Edition 7),是Java编程语言的一个重大更新,它在2011年发布,引入了一系列的新特性,旨在提高开发效率,增强程序性能,并且简化某些编程任务。让我们深入探讨...
在Java 7中,Swing库引入了一些新特性,使得开发者可以更加灵活地设计和定制用户界面。其中,最引人注目的就是对透明窗体(Translucent Windows)的支持。透明窗体允许开发者创建半透明或者具有渐变色背景的窗口,这...
Java 7是Java平台标准版的一个重要更新,它引入了一系列的新特性和改进,旨在提高开发者的效率、增强程序性能以及扩展平台的可用性。以下是Java 7的一些关键新特性: 1. **Nimbus Look & Feel**: Java 7引入了...
Java新特性学习 Jlayer是一个适用于Swing组件的灵活而强大的组件装饰器。提供了用来装饰多个组合组件的方式,并且可以捕获所有鼠标、键盘和FocusEvent的事件,并针对所有的XLayer子组件。这个组件只会对public swing...
Java 7是一个重要的Java开发版本,它引入了许多新特性,以提高开发效率和代码的可读性。在本章中,我们将重点讨论以下几个关键特性: 1. **数值常量对下划线支持**:Java 7允许在数值常量中使用下划线`_`来分隔数字...
本文将深入探讨JVM的基本结构、执行流程,以及Java 7的新特性。 首先,JVM由Java API和JRE组成,其中JVM的主要职责是通过类加载器(Class Loader)加载Java程序,并根据Java API来执行这些程序。JVM的设计是基于栈...
Java8是Java编程语言的一次重大更新,引入了许多新的特性和功能,极大地提升了开发效率和代码的可读性。以下是一些主要的Java8新特性详解: 1. **Lambda表达式**:Lambda表达式是Java8中最显著的新特性,它为Java...
JAVA 1.5的新特性是Java发展史上的一个重要里程碑,这一版本引入了一系列创新特性,旨在提升编程效率、增强代码安全性并简化开发流程。以下是对JAVA 1.5新特性的详细解析: ### 1. 泛型 (Generics) #### 概述 泛型...
Java 8是Java编程语言的一个重大更新,引入了许多新的特性和功能,极大地提高了开发效率和代码的可读性。以下是一些主要的Java 8新特性详解: 1. **Lambda表达式**:这是Java 8最显著的新特性之一,它为Java引入了...
以下是一些主要的Java 7新特性: 1. **多语言支持(钻石操作符)**:Java 7引入了类型推断,使得创建带泛型的匿名内部类或使用构造函数时,可以省略类型参数,如`List<String> list = new ArrayList();` 2. **尝试...
以下是关于Java 8新特性的详细讲解: 1. **函数式编程:Lambda表达式** Lambda表达式是Java 8中最显著的新特性,它允许我们将函数作为一个方法参数,或者以匿名函数的形式创建。Lambda表达式简洁且易于理解,使得...
自 Java 8 发布后,Java 有了许多显著的新特性,极大地提升了开发效率和代码质量。以下是对 Java 8 及之后版本主要新特性的深入剖析: 1. **Lambda 表达式**: Java 8 引入了 Lambda 表达式,使得函数式编程成为...
【Java 17新特性详解含示例代码】 Java 17作为Java的最新版本,引入了一系列提升开发效率、性能和开发体验的新特性。以下是Java 17的主要新特性及其实现方式: 1. **增强的伪随机数生成器 (JEP 356)** Java 17...
### Java 9 新特性大全详解 #### 一、概述 Java 9 是 Oracle 在 2017 年 7 月发布的重大版本更新,它不仅引入了许多令人兴奋的新功能和改进,还对 Java 平台的整体架构进行了优化。本文将详细介绍 Java 9 中的关键...