JDK12安装教程及新特性浅谈

一.安装教程

下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html

step 1

 

step 2

step 3

在山区网络不好......玩两把单机 回来继续安装

step 4

下载好的jdk,双击即可安装

建议更改安装位置

 

step 5

继续点击下一步安装,最后关闭即可

step 6

环境变量配置

右击【此电脑】,点击【属性】,选择【高级系统设置】

 

【高级】--> 【环境变量】

如果针对用户,可以 用户变量 配置,这里在系统变量配置全局

点击【新建】 配置 JAVA_HOME 确定即可

 

双击【Path】或单击【编辑】配置 Path

点击新增,输入 %JAVA_HOME%\bin,确定

jdk9后不需要配置CLASSPATH变量

 

step 7 

验证jdk安装是否成功

打开【命令提示符】

方式1.

 

方式2. win+r

 

输入  java -version ,若出现java版本信息则说明安装成功,如下图:

 

 

二.新特性

地址:http://openjdk.java.net/projects/

 

jdk12(GA 2019/03/19)

189:Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)Shenandoah:低暂停时间垃圾收集器(实验性)
230:Microbenchmark SuiteMicrobenchmark套房
325:Switch Expressions (Preview)切换表达式(预览)
334:JVM Constants APIJVM常量API
340:One AArch64 Port, Not Two一个AArch64端口,而不是两个
341:Default CDS Archives默认CDS档案
344:Abortable Mixed Collections for G1G1的可流动混合收集
346:Promptly Return Unused Committed Memory from G1从G1中立即返回未使用的已提交内存

a--切换表达式,省去 break

switch (day) {
case SATURDAY, SUNDAY -> log.info("去旅游");
case TUESDAY -> log.info("上班");
case THURSDAY -> log.info("上课");
}


String whereTo = switch (day) {
case SATURDAY, SUNDAY -> "去旅游";
case TUESDAY -> "上班";
case THURSDAY -> "上课";
};

 

jdk11(GA 2018/09/25)

181:Nest-Based Access Control基于嵌套的访问控制
309: Dynamic Class-File Constants动态类 - 文件常量
315: Improve Aarch64 Intrinsics改进Aarch64内在函数
318: Epsilon: A No-Op Garbage CollectorEpsilon:无操作垃圾收集器
320: Remove the Java EE and CORBA Modules移除Java EE和CORBA模块
321: HTTP Client (Standard)HTTP客户端(标准)
323: Local-Variable Syntax for Lambda Parameters本地变量Lambda参数
324: Key Agreement with Curve25519 and Curve448与Curve25519和Curve448的密钥协议
327: Unicode 10Unicode 10
328: Flight Recorder

Flight Recorder(飞行记录器),基于OS、JVM和JDK的事件

产生的数据收集框架

329: ChaCha20 and Poly1305 Cryptographic AlgorithmsChaCha20和Poly1305加密算法
330: Launch Single-File Source-Code Programs启动单文件源代码程序
331: Low-Overhead Heap Profiling低开销堆分析
332: Transport Layer Security (TLS) 1.3传输层安全性(TLS)1.3
333: ZGC: A Scalable Low-Latency Garbage Collector(Experimental)ZGC:可扩展的低延迟垃圾收集器(实验性)
335: Deprecate the Nashorn JavaScript Engine弃用Nashorn JavaScript引擎
336: Deprecate the Pack200 Tools and API弃用Pack200工具和API

a--字符串加强

// 复制

"Java".repeat(3); // "JavaJavaJava"

//统计 行数

"A\nB\nC\nA\nB\nC".lines().count(); // 6

 

 

jdk10(GA 2018/03/20)

286: Local-Variable Type Inference局部变量类型推断
296: Consolidate the JDK Forest into a Single Repository将JDK林合并到单个存储库
304: Garbage-Collector Interface垃圾收集器接口
307: Parallel Full GC for G1G1的并行全GC
310: Application Class-Data Sharing应用程序类 - 数据共享
312: Thread-Local Handshakes线程局部握手
313: Remove the Native-Header Generation Tool (javah)移除本机头生成工具(javah)
314: Additional Unicode Language-Tag Extensions附加的Unicode语言 - 标记扩展
316: Heap Allocation on Alternative Memory Devices替代存储器设备上的堆分配
317: Experimental Java-Based JIT Compiler基于Java的实验JIT编译器
319: Root Certificates根证书
322: Time-Based Release Versioning基于时间的发布版本控制

 

    a--使用局部类型----var关键词定义

var list = new LinkedList<String>();

 

jdk9

102: Process API Updates处理API更新
110: HTTP 2 ClientHTTP 2客户端
143: Improve Contended Locking改进竞争锁定
158: Unified JVM Logging统一JVM记录
165: Compiler Control编译器控制
193: Variable Handles可变句柄
197: Segmented Code Cache分段代码高速缓存
199: Smart Java Compilation, Phase Two智能Java编译,阶段二
200: The Modular JDK模块化JDK
201: Modular Source Code模块化源代码
211: Elide Deprecation Warnings on Import Statements导入语句的Elide 弃用警告
212: Resolve Lint and Doclint Warnings解决Lint和Doclint警告
213: Milling Project Coin铣削项目硬币
214: Remove GC Combinations Deprecated in JDK 8删除GC组合JDK 8中不推荐使用
215: Tiered Attribution for javacjavac的分层归因
216: Process Import Statements Correctly正确处理导入语句
217: Annotations Pipeline 2.0注释管道2.0
219: Datagram Transport Layer Security (DTLS)数据报传输层安全性(DTLS)
220: Modular Run-Time Images模块化运行时图像
221: Simplified Doclet API简化的Doclet API
222: jshell: The Java Shell (Read-Eval-Print Loop)jshell:Java Shell(读取 - 评估 - 打印循环)
223: New Version-String Scheme新的Version-String Scheme
224: HTML5 JavadocHTML5 Javadoc
225: Javadoc SearchJavadoc Search
226: UTF-8 Property FilesUTF-8属性文件
227: Unicode 7.0Unicode 7.0
228: Add More Diagnostic Commands添加更多诊断命令
229: Create PKCS12 Keystores by Default默认创建PKCS12密钥库
231: Remove Launch-Time JRE Version Selection删除启动时JRE版本选择
232: Improve Secure Application Performance提高安全应用程序性能
233: Generate Run-Time Compiler Tests Automatically自动生成运行时编译器测试
235: Test Class-File Attributes Generated by javac测试类文件属性由javac生成
236: Parser API for NashornNashorn的解析器API
237: Linux/AArch64 PortLinux / AArch64端口
238: Multi-Release JAR Files多版本JAR文件
240: Remove the JVM TI hprof Agent删除JVM TI hprof代理
241: Remove the jhat Tool删除jhat工具
243: Java-Level JVM Compiler InterfaceJava级JVM编译器接口
244: TLS Application-Layer Protocol Negotiation ExtensionTLS应用层协议协商扩展
245: Validate JVM Command-Line Flag Arguments验证JVM命令行标志参数
246: Leverage CPU Instructions for GHASH and RSA利用GHASH和RSA的CPU指令
247: Compile for Older Platform Versions编译较旧的平台版本
248: Make G1 the Default Garbage Collector使G1成为默认垃圾收集器
249: OCSP Stapling for TLS针对TLS的OCSP装订
250: Store Interned Strings in CDS Archives在CDS存档中存储间隔字符串
251: Multi-Resolution Images多分辨率图像
252: Use CLDR Locale Data by Default默认使用CLDR区域设置数据
253: Prepare JavaFX UI Controls & CSS APIs for Modularization为模块化准备JavaFX UI控件和CSS API
254: Compact Strings紧凑字符串
255: Merge Selected Xerces 2.11.0 Updates into JAXP将选定的Xerces 2.11.0更新合并到JAXP
256: BeanInfo AnnotationsBeanInfo注释
257: Update JavaFX/Media to Newer Version of GStreamer将JavaFX / Media更新到更新版本的GStreamer
258: HarfBuzz Font-Layout EngineHarfBuzzFonts-Layout Engine
259: Stack-Walking APIStack-Walking API
260: Encapsulate Most Internal APIs封装大多数内部API
261: Module System模块系统
262: TIFF Image I/OTIFF图像I / O
263: HiDPI Graphics on Windows and LinuxWindows和Linux上的HiDPI图形
264: Platform Logging API and Service平台记录API和服务
265: Marlin Graphics RendererMarlin图形渲染器
266: More Concurrency Updates更多并发更新
267: Unicode 8.0Unicode 8.0
268: XML CatalogsXML目录
269: Convenience Factory Methods for Collections集合的便利工厂方法
270: Reserved Stack Areas for Critical Sections保留关键部分的堆栈区域
271: Unified GC Logging统一GC记录
272: Platform-Specific Desktop Features特定于平台的桌面功能
273: DRBG-Based SecureRandom Implementations基于DRBG的SecureRandom实现
274: Enhanced Method Handles增强的方法句柄
275: Modular Java Application Packaging模块化Java应用程序打包
276: Dynamic Linking of Language-Defined Object Models语言定义的对象模型的动态链接
277: Enhanced Deprecation增强的弃使
278: Additional Tests for Humongous Objects in G1G1中的对象中的附加测试
279: Improve Test-Failure Troubleshooting改进测试失败故障排除
280: Indify String Concatenation表示字符串连接
281: HotSpot C++ Unit-Test FrameworkHotSpot C ++单元测试框架
282: jlink: The Java Linkerjlink:Java链接器
283: Enable GTK 3 on Linux在Linux上启用GTK 3
284: New HotSpot Build System新的HotSpot构建系统
285: Spin-Wait Hints旋转等待提示
287: SHA-3 Hash AlgorithmsSHA-3哈希算法
288: Disable SHA-1 Certificates禁用SHA-1证书
289: Deprecate the Applet API弃用Applet API
290: Filter Incoming Serialization Data过滤传入的序列化数据
291: Deprecate the Concurrent Mark Sweep (CMS) Garbage Collector弃用并发标记扫描(CMS)垃圾收集器
292: Implement Selected ECMAScript 6 Features in Nashorn在Nashorn中实现选定的ECMAScript 6功能
294: Linux/s390x PortLinux / s390x端口
295: Ahead-of-Time Compilation提前编译
297: Unified arm32/arm64 Port统一arm32 / arm64端口
298: Remove Demos and Samples删除演示和示例
299: Reorganize Documentation重新组织文档

 

a--JShell:工具像脚本语言一样来运行,在控制台启动 jshell ,获取或校验某些表达式的值,省去main方法测试。

如:

b--允许接口定义私有方法,私有方法可以作为通用方法放在默认方法中调用。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值