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); //没有break,继续往下
case "foo":
case "bar":
processFooOrBar(s);
break;
case "baz":
processBaz(s); //没有break,继续往下
default:
processDefault(s);
break;
}
String s = ...
switch(s) {
case "quux":
processQuux(s); //没有break,继续往下
case "foo":
case "bar":
processFooOrBar(s);
break;
case "baz":
processBaz(s); //没有break,继续往下
default:
processDefault(s);
break;
}
4,支持二进制语法和单位级别的数字表示方式
// 8位byte
byte aByte = (byte)0b00100001;
// 16位short
short aShort = (short)0b1010000101000101;
// 32位int
int anInt1 = 0b10100001010001011010000101000101;
// 8位byte
byte aByte = (byte)0b00100001;
// 16位short
short aShort = (short)0b1010000101000101;
// 32位int
int anInt1 = 0b10100001010001011010000101000101;
支持单位级别的数字,提高可读性
long underScores = 9_223_372_036_854_775_807L; // 每三位加一下划线,等同于 9,223,372,036,854,775,807
long underScores = 9_223_372_036_854_775_807L; // 每三位加一下划线,等同于 9,223,372,036,854,775,807
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();
}
分享到:
相关推荐
JDK7.0是Java平台的一个重大更新,引入了许多新特性,改进了现有功能,并修复了大量bug。这个CHM(Compiled HTML Help)格式的文档方便用户离线查询,无需网络连接即可获取详尽的Java API信息。 首先,JDK7.0最显著...
JDK 7.0是Java的一个重要版本,引入了许多新特性,优化了性能,并增强了开发者的工作效率。本文将围绕JDK 7.0 API进行详细介绍,帮助开发者更好地理解和运用这个版本的Java平台。 一、增强的语法特性 JDK 7.0引入了...
### JDK 7.0 新特性详解 随着Java技术的不断发展和完善,每一版更新都带来了新的特性和优化。JDK 7.0作为Java发展史上的一个重要里程碑,不仅增强了语言本身的特性,还在运行时环境中加入了多项重要的改进。接下来...
JDK7.0引入了许多新特性,如:try-with-resources语句以简化资源管理,多租户应用程序的支持,改进的类型推断,以及新的文件系统API(NIO.2)等,这些都极大地提升了开发者的工作效率和代码质量。 【安装与配置】在...
JDK 7.0是Oracle公司发布的一个重要版本,带来了许多新特性和改进,旨在提高开发效率和代码的可读性。这个压缩包“JDK 7.0.zip”包含了这一版本的所有必要文件。 1. **新特性**: - **多租户架构**:JDK 7引入了多...
JDK7.0作为Java发展历程中的一个重要版本,引入了许多新特性,改进了语言语法,提升了性能,并对开发者的工作效率进行了优化。 1. **动态类型语言支持**:JDK 7.0引入了`Type Inference for Generic Instance ...
JDK 7.0 版本引入了一些关键特性,如: 1. **动态类型语言支持**:引入了`invokedynamic`指令,使得在Java中支持脚本语言和其他动态语言变得更加容易。 2. **Try-with-resources**:这是一个语法糖,确保在try块中的...
JDK 7.0是Java平台的重大更新,它引入了许多新特性,增强了性能和开发者的生产力。以下是其中一些关键的改进和功能: 1. **多语言支持**:JDK 7通过Project coin引入了新的语法特性,如try-with-resources语句,...
Java JDK 7.0 的帮助文档是开发者不可或缺的工具,它详细阐述了Java 7的新特性、类库以及方法的使用。通过查询这个文档,开发者可以更好地理解和运用Java语言,提升编程技能,解决实际问题。无论是初学者还是经验...
JDK 7.0是Java发展历程中的一个重要里程碑,引入了许多新特性和改进,旨在提高开发者的生产力和代码的可维护性。 ### 新特性与改进 1. **多重 Catch 语句**:在JDK 7之前,我们不得不为每个可能抛出的异常创建单独...
标题“jdk-7&jre-7.0”所指的是Java Development Kit (JDK) 7更新21和Java Runtime Environment (JRE) 7的软件包。这两个组件是Java编程语言的核心组成部分,用于开发和运行Java应用程序。 JDK是Java开发者的必备...
这个版本在2011年发布,引入了许多新特性、改进和优化,旨在提升开发者的效率和代码性能。以下是一些核心知识点: 1. **多语言支持**:Java 7通过Project Coin对语言语法进行了增强,其中最显著的是加入了多catch块...
JDK7在Java SE(标准版)平台中引入了一系列新特性,旨在提高开发人员的生产力,简化代码编写,并增强应用程序性能。其中,最重要的新特性包括: 1. **多线程并行GC(G1垃圾收集器)**:G1垃圾收集器是一个用于...
首先,Java 7是Java平台的重大更新,引入了许多新特性以提升开发效率和代码质量。其中最显著的变化包括: 1. **多线路(Multithreading)增强**:JDK 7通过Fork/Join框架和并行流改进了多线程处理,使得开发者可以...
综上所述,ProGuard支持JDK 1.8意味着开发者可以充分利用JDK 1.8的新特性,同时享受到混淆带来的安全性和性能提升。通过正确配置和使用ProGuard,可以确保Android应用程序在混淆后仍能稳定运行。
这些新特性极大地提高了开发者处理文件系统的灵活性和效率。 在安全性方面,JDK 1.7增强了安全管理器,提供了更多的控制选项,并对加密算法进行了更新,以符合不断变化的安全标准。 对于Windows 64位操作系统,JDK...
JDK 7.0引入了一些关键改进,比如类型推断(Type Inference)的加入,使得泛型使用更加便捷(即`<>`语法),以及try-with-resources语句,这简化了资源管理,尤其是在处理I/O流时。 【描述】中提到,JDK 7.0在兼容...
1. **Java 11支持**:Gradle 7.0开始正式支持Java 11作为最低的JDK版本,这允许开发者利用Java的新特性和性能提升。 2. **更好的依赖管理和解析**:Gradle 7.0对依赖管理和解析进行了优化,能更好地处理依赖冲突和...
JDK 7,即Java Development Kit 7,继续扩展了Java的功能,引入了一些重要的新特性: 1. **语法糖:**包括钻石操作符()和try-with-resources语句,提高了代码的可读性和简洁性。 2. **多版本兼容的JAR**:允许在...
首先,JDK 1.8带来了Lambda表达式,这是Java语言的一次重大语法更新,使得代码更加简洁、易读。Lambda允许开发者以更直观的方式处理函数式接口,尤其在处理集合和多线程编程时,显著提高了代码的可读性和可维护性。...