一.安装教程
下载地址: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常量API340: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 10328: 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.3333: 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的并行全GC310: 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模块化JDK201: 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.0219: Datagram Transport Layer Security (DTLS)数据报传输层安全性(DTLS)220: Modular Run-Time Images模块化运行时图像221: Simplified Doclet API简化的Doclet API222: jshell: The Java Shell (Read-Eval-Print Loop)jshell:Java Shell(读取 - 评估 - 打印循环)223: New Version-String Scheme新的Version-String Scheme224: HTML5 JavadocHTML5 Javadoc225: Javadoc SearchJavadoc Search226: UTF-8 Property FilesUTF-8属性文件227: Unicode 7.0Unicode 7.0228: 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的解析器API237: 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 API254: Compact Strings紧凑字符串255: Merge Selected Xerces 2.11.0 Updates into JAXP将选定的Xerces 2.11.0更新合并到JAXP256: BeanInfo AnnotationsBeanInfo注释257: Update JavaFX/Media to Newer Version of GStreamer将JavaFX / Media更新到更新版本的GStreamer258: HarfBuzz Font-Layout EngineHarfBuzzFonts-Layout Engine259: Stack-Walking APIStack-Walking API260: Encapsulate Most Internal APIs封装大多数内部API261: Module System模块系统262: TIFF Image I/OTIFF图像I / O263: 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.0268: 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 3284: 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 API290: 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--允许接口定义私有方法,私有方法可以作为通用方法放在默认方法中调用。