java 8 new feature_JAVA8-feature and enhancement

特性1 - JAVA编程语言的加强

Lambda表达式,java 8的新编程语言特色,他可以让你把一个实列的实现当作一个方法参数参入, lambda表达式让你实例化一个 只含有1个方法的接口更加简洁

增加接口默认方法-并且兼容JDK老版本

注解加强

改善接口类型

支持方法参数反射

// JAVA8 自动帮你断言这个接口应该返回的泛型 Person对象命名为p 参数自己写实现方法

Person.processPersons(roster,(Person p) -> p.getAge() >= 1

&& p.getAge() <= 4, p -> p.printPerson());

Person.processPersonsWithFunction(

roster,

p -> p.getAge() >= 1

&& p.getAge() <= 4,

p -> p.getEmailAddress(),

email -> System.out.println(email)

);

roster.stream() .filter(

p -> p.getAge() >= 1

&& p.getAge() <= 4).map(p -> p.getEmailAddress())

.forEach(email1 -> System.out.println(email1));

增加一个新包 java.util.stream提供流式API 去支持函数式风格编程操作流中的每个元素

,这个streamAPI 继承在CollectionsApi 中, 它可以支持桶操作,比如并发的map-reduce 和有序流的转换操作

JAVA8包含一个精简版的Java SE平台的 可以保证不需要完整版的平台就可以部署和运行在一个小型设备上

特性4 安全改进 Security

Client-side TLS 1.2 默认开启

New variant of `AccessController.doPrivileged` that enables code to assert a subset of its privileges, without preventing the full traversal of the stack to check for other permissions

Stronger algorithms for password-based encryption

加强password-based encryption算法

SSL/TLS Server Name Indication (SNI) Extension support in JSSE Server

加密算法加强支持 AES/GCM/NoPadding cipher implementation

密钥库加强 包含这个主要的类型`java.security.DomainLoadStoreParameter

* SHA-224 Message Digests

* Enhanced Support for NSA Suite B Cryptography

* Better Support for High Entropy Random Number Generation

* New `java.security.cert.PKIXRevocationChecker` class for configuring revocation checking of X.509 certificates

* 64-bit PKCS11 for Windows

* New rcache Types in Kerberos 5 Replay Caching

* Support for Kerberos 5 Protocol Transition and Constrained Delegation

* Kerberos 5 weak encryption types disabled by default

* Unbound SASL for the GSS-API/Kerberos 5 mechanism

* SASL service for multiple host names

* JNI bridge to native JGSS on Mac OS X

* Support for stronger strength ephemeral DH keys in the SunJSSE provider

* Support for server-side cipher suites preference customization in JSSE

new Modena 注意在这次发现的版本中已经被现实,详情请看see the blog at fxexperience.com.

new SwingNode class 能够让开发者 Swing content 去潜入JavaFX applications

新 UI Controls the DatePicker and the TreeTableView controls.

javafx.prin包提供这个Printing API See the javadoc for more information.

3d图形支持

加强文本支持 包含复杂文本脚本

支持hi-DPI 显示 已经添加到本次发行版本中

* The CSS Styleable* classes became public API. See the javafx.css javadoc for more information.

* The new [`ScheduledService`](http://docs.oracle.com/javase/8/javafx/api/javafx/concurrent/ScheduledService.html) class allows to automatically restart the service.

* JavaFX is now available for ARM platforms. JDK for ARM includes the base, graphics and controls components of JavaFX.

* The `jjs` command is provided to invoke the Nashorn engine.

jjs命令可以调用Nashorn -engine

* The `java` command launches JavaFX applications.

Java 命令可以执行JavaFX程序

* The `java` man page has been reworked.

JAVA 主页重做

* The `jdeps` command-line tool is provided for analyzing class files.

jdeps 提供分析类文件

* Java Management Extensions (JMX) provide remote access to diagnostic commands.

JMX 提供远程访问JMX

jarsigne工具可以请求一个时间戳签名

* The `-parameters` option of the `javac` command can be used to store formal parameter names and enable the Reflection API to retrieve formal parameter names.

* The type rules for equality operators in the Java Language Specification (JLS) Section 15.21 are now correctly enforced by the `javac` command.

* The `javac` tool now has support for checking the content of `javadoc` comments for issues that could lead to various problems, such as invalid HTML or accessibility issues, in the files that are generated when `javadoc` is run. The feature is enabled by the new `-Xdoclint` option. For more details, see the output from running "`javac -X`". This feature is also available in the `javadoc` tool, and is enabled there by default.

* The `javac` tool now provides the ability to generate native headers, as needed. This removes the need to run the `javah` tool as a separate step in the build pipeline. The feature is enabled in `javac` by using the new `-h` option, which is used to specify a directory in which the header files should be written. Header files will be generated for any class which has either native methods, or constant fields annotated with a new annotation of type `java.lang.annotation.Native`.

* 特性8 javadoc 相关的优化提升 [Javadoc tool](http://docs.oracle.com/javase/8/docs/technotes/guides/javadoc/whatsnew-8.html)

* The `javadoc` tool supports the new `DocTree` API that enables you to traverse Javadoc comments as abstract syntax trees.

* The `javadoc` tool supports the new Javadoc Access API that enables you to invoke the Javadoc tool directly from a Java application, without executing a new process. See the [javadoc what's new](http://docs.oracle.com/javase/8/docs/technotes/guides/javadoc/whatsnew-8.html) page for more information.

* The `javadoc` tool now has support for checking the content of `javadoc` comments for issues that could lead to various problems, such as invalid HTML or accessibility issues, in the files that are generated when `javadoc` is run. The feature is enabled by default, and can also be controlled by the new `-Xdoclint` option. For more details, see the output from running "`javadoc -X`". This feature is also available in the `javac` tool, although it is not enabled by default there.

* Unicode Enhancements, including support for Unicode 6.2.0

* Adoption of Unicode CLDR Data and the java.locale.providers System Property

* New Calendar and Locale APIs

* Ability to Install a Custom Resource Bundle as an Extension

* For sandbox applets and Java Web Start applications, `URLPermission` is now used to allow connections back to the server from which they were started. `SocketPermission` is no longer granted.

* The Permissions attribute is required in the JAR file manifest of the main JAR file at all security levels.

特性11 Date-Time Package - a new set of packages that provide a comprehensive date-time model.

新的时间集合包 提供广泛的时间模型

* The Rhino javascript engine has been replaced with the [Nashorn](http://docs.oracle.com/javase/8/docs/technotes/guides/scripting/nashorn/) Javascript Engine

Pack200 支持常量池进入和新的字节码引入-JSR 292

* JDK8 support for class files changes specified by JSR-292, JSR-308 and JSR-335

jdk8支持类文件改变

* New `SelectorProvider` implementation for Solaris based on the Solaris event port mechanism. To use, run with the system property `java.nio.channels.spi.Selector`set to the value `sun.nio.ch.EventPortSelectorProvider`.

SelectorProvider实现了Solaris 的Solaris 端口时间机制 去使用需要设置系统变量run with the system property java.nio.channels.spi.Selectorset to the value sun.nio.ch.EventPortSelectorProvider.

减少了charsets.jar文件的大小

优化性能ava.lang.String(byte[], *)java.lang.String.getBytes()`

* Parallel Array Sorting

并发数组排序

* Standard Encoding and Decoding Base64

标准Base64

Unsigned Arithmetic Support

特性16 JDBC

* The JDBC-ODBC Bridge has been removed.

* JDBC 4.2 introduces new features.

特性17 Java DB

* JDK 8 includes Java DB 10.10.

The class java.net.URLPermission has been added.

In the class java.net.HttpURLConnection, if a security manager is installed, calls that request to open a connection require permission.

Classes and interfaces have been added to the java.util.concurrent package.

Methods have been added to the java.util.concurrent.ConcurrentHashMap class to support aggregate operations based on the newly added streams facility and lambda expressions.

ConcurrentHashMap类 支持聚合操作和lambda表达式

* Classes have been added to the `java.util.concurrent.atomic` package to support scalable updatable variables.

java.util.concurrent.atomic` package支持可扩展的变量更新

* Methods have been added to the `java.util.concurrent.ForkJoinPool` class to support a common pool.

* The `java.util.concurrent.locks.StampedLock` class has been added to provide a capability-based lock with three modes for controlling read/write access

.

Hardware intrinsics were added to use Advanced Encryption Standard (AES). The UseAESand UseAESIntrinsics flags are available to enable the hardware-based AES intrinsics for Intel hardware. The hardware must be 2010 or newer Westmere hardware.

Note: AES intrinsics are only supported by the Server VM.

For example, to enable hardware AES, use the following flags:

-XX:+UseAES -XX:+UseAESIntrinsics

To disable hardware AES use the following flags:

-XX:-UseAES -XX:-UseAESIntrinsics

* Removal of PermGen.

* Default Methods in the Java Programming Language are supported by the byte code instructions for method invocation.

JDK 8 includes Java Mission Control 5.3.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值