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 Suite Microbenchmark套房
325: Switch Expressions (Preview) 切换表达式(预览)
334: JVM Constants API JVM常量API
340: One AArch64 Port, Not Two 一个AArch64端口,而不是两个
341: Default CDS Archives 默认CDS档案
344: Abortable Mixed Collections for G1 G1的可流动混合收集
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 Collector Epsilon:无操作垃圾收集器
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 10 Unicode 10
328:  Flight Recorder

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

产生的数据收集框架

329:  ChaCha20 and Poly1305 Cryptographic Algorithms ChaCha20和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 G1 G1的并行全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 Client HTTP 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 javac javac的分层归因
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 Javadoc HTML5 Javadoc
225:  Javadoc Search Javadoc Search
226:  UTF-8 Property Files UTF-8属性文件
227:  Unicode 7.0 Unicode 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 Nashorn Nashorn的解析器API
237:  Linux/AArch64 Port Linux / 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 Interface Java级JVM编译器接口
244:  TLS Application-Layer Protocol Negotiation Extension TLS应用层协议协商扩展
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 Annotations BeanInfo注释
257:  Update JavaFX/Media to Newer Version of GStreamer 将JavaFX / Media更新到更新版本的GStreamer
258:  HarfBuzz Font-Layout Engine HarfBuzzFonts-Layout Engine
259:  Stack-Walking API Stack-Walking API
260:  Encapsulate Most Internal APIs 封装大多数内部API
261:  Module System 模块系统
262:  TIFF Image I/O TIFF图像I / O
263:  HiDPI Graphics on Windows and Linux Windows和Linux上的HiDPI图形
264:  Platform Logging API and Service 平台记录API和服务
265:  Marlin Graphics Renderer Marlin图形渲染器
266:  More Concurrency Updates 更多并发更新
267:  Unicode 8.0 Unicode 8.0
268:  XML Catalogs XML目录
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 G1 G1中的对象中的附加测试
279:  Improve Test-Failure Troubleshooting 改进测试失败故障排除
280:  Indify String Concatenation 表示字符串连接
281:  HotSpot C++ Unit-Test Framework HotSpot C ++单元测试框架
282:  jlink: The Java Linker jlink:Java链接器
283:  Enable GTK 3 on Linux 在Linux上启用GTK 3
284:  New HotSpot Build System 新的HotSpot构建系统
285:  Spin-Wait Hints 旋转等待提示
287:  SHA-3 Hash Algorithms SHA-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 Port Linux / 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--允许接口定义私有方法,私有方法可以作为通用方法放在默认方法中调用。

发布了29 篇原创文章 · 获赞 8 · 访问量 7026

猜你喜欢

转载自blog.csdn.net/weixin_42032199/article/details/96465712