JAVA8-feature and enhancement

2018-11-11  本文已影响38人  C_99f1

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

      
      // 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));

特性2 集合 Collections

增加一个新包 java.util.stream提供流式API 去支持函数式风格编程操作流中的每个元素
,这个streamAPI 继承在CollectionsApi 中, 它可以支持桶操作,比如并发的map-reduce 和有序流的转换操作

特性3 Compact Profiles 压缩平台

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

特性5 JavaFX

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.

特性6 Tools

*   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工具可以请求一个时间戳签名

特性7 Javac tool

    *   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.

特性9 国际化 Internationalization

*   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

特性10 部署方面 Deployment

*   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.

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

特性12 Scripting

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

特性13 Pack200

    Pack200 支持常量池进入和新的字节码引入-JSR 292
*   JDK8 support for class files changes specified by JSR-292, JSR-308 and JSR-335
    jdk8支持类文件改变

特性14 IO and NIO

*   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()`

特性15 新包 java.lang and java.util Packages

*   Parallel Array Sorting
  并发数组排序
*   Standard Encoding and Decoding Base64
    标准Base64

特性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.

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

.

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



    <pre class="oac_no_warn" xml:space="preserve" style="margin: 0px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased;">-XX:+UseAES -XX:+UseAESIntrinsics
    </pre>


    To disable hardware AES use the following flags:


    <pre class="oac_no_warn" xml:space="preserve" style="margin: 0px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased;">-XX:-UseAES -XX:-UseAESIntrinsics
    </pre>

*   Removal of PermGen.

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

猜你喜欢

热点阅读