{"id":20245111,"url":"https://github.com/bestburning/java-versions","last_synced_at":"2025-08-24T11:12:22.946Z","repository":{"id":63724927,"uuid":"304634669","full_name":"BestBurning/java-versions","owner":"BestBurning","description":"记录Java各版本的新特性","archived":false,"fork":false,"pushed_at":"2023-01-30T07:03:50.000Z","size":3187,"stargazers_count":12,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T18:21:18.898Z","etag":null,"topics":["java","java10","java11","java12","java13","java14","java15","java8","java9","jdk","version"],"latest_commit_sha":null,"homepage":"https://di1shuai.com/Java各版本新特性.html","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BestBurning.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-16T13:26:03.000Z","updated_at":"2024-11-15T02:17:36.000Z","dependencies_parsed_at":"2023-02-16T05:00:39.725Z","dependency_job_id":null,"html_url":"https://github.com/BestBurning/java-versions","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BestBurning%2Fjava-versions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BestBurning%2Fjava-versions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BestBurning%2Fjava-versions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BestBurning%2Fjava-versions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BestBurning","download_url":"https://codeload.github.com/BestBurning/java-versions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248296493,"owners_count":21080301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","java10","java11","java12","java13","java14","java15","java8","java9","jdk","version"],"created_at":"2024-11-14T09:19:07.596Z","updated_at":"2025-04-10T20:50:56.520Z","avatar_url":"https://github.com/BestBurning.png","language":"CSS","readme":"# java-versions\n\n记录`Java`的版本特性\n\n\n### **JDK 1.5** \n\n---\n\n- enum\n- 泛型\n- 自动装箱与拆箱\n- 可变参数\n- 增强循环\n\n### JDK 1.6\n\n---\n\n- 支持脚本语言\n- JDBC4.0API\n\n### [JDK 1.7](java-7/) \n\n---\n\n- 支持try-with-resources\n- switch语句块增加String支持\n- NIO2.0包\n\n### [**JDK 1.8**](java-8/) - LTS\n\n---\n\n- [lambda表达式](java-8/src/main/java/com/diyishuai/java8/lambda/LambdaTest.java)\n- [Stream API](java-8/src/main/java/com/diyishuai/java8/stream/StreamAPI.java)\n- [新的日期时间的API](java-8/src/main/java/com/diyishuai/java8/LocalDateAndTimeAndDateTime.java)\n- [默认/静态方法](java-8/src/main/java/com/diyishuai/java8/newinterface)\n- [方法引用](java-8/src/main/java/com/diyishuai/java8/function/FunctionReference.java)\n- [Optional](java-8/src/main/java/com/diyishuai/java8/optional/OptionalDemo.java)\n- JVM的新特性\n\n使用元空间`Metaspace`代替持久代（`PermGen space`），JVM参数使用`-XX:MetaSpaceSize`和`-XX:MaxMetaspaceSize`设置大小\n\n### [JDK 9](java-9/) \n\n---\n\n- 模块化系统\n- [不可变集合](java-9/src/main/java/com/di1shuai/java9/collection/UnmodifiableCollection.java)\n- [接口私有方法](java-9/src/main/java/com/di1shuai/java9/interfece/PrivateInterface.java)\n- 多版本兼容Jar包\n- [try-with-resources的改进](java-9/src/main/java/com/di1shuai/java9/try_with_resources/TryWithResources.java)\n- [Stream API 更新](java-9/src/main/java/com/di1shuai/java9/stream/StreamAPI.java)\n- [Optional更新](java-9/src/main/java/com/di1shuai/java9/optional/OptionalDemo.java)\n- JShell\n\n### [JDK 10](java-10/)\n\n---\n\n- [局部变量的类型推断](java-10/src/main/java/com/di1shuai/java10/variable/VariableDemo.java)\n- [不可变集合 更新](java-10/src/main/java/com/di1shuai/java10/collection/UnmodifiableCollectionDemo.java)\n- [Optional 更新 `orElseThrow()`](java-10/src/main/java/com/di1shuai/java10/optional/OptionalDemo.java)\n- 并行全垃圾回收器G1\n- 线程本地握手 \n- 其他\n    - 基于 Java 的 实验性 JIT 编译器\n    - 类数据共享\n    - Unicode 语言标签扩展\n    - 根证书\n    - 基于时间（Time-Based）的版本控制模型\n\n\n### [**JDK 11**](java-11/) - LTS \n\n---\n\n- [String API更新](java-11/src/main/java/com/di1shuai/java11/string/StringDemo.java)\n- [Lambda 参数的局部变量语法](java-11/src/main/java/com/di1shuai/java11/lambada/VariableDemo.java)\n- ZGC\n- Epsilon GC\n- 单文件java命令直接编译运行\n- [HTTP Client标准化](java-11/src/main/java/com/di1shuai/java11/http/HTTPClientDemo.java)\n\n### [JDK 12](java-12/)\n\n---\n\n- [switch 增强](java-12/src/main/java/com/di1shuai/java12/switchdemo/SwitchDemo.java)\n- [NumberFormat - 数字的格式化](java-12/src/main/java/com/di1shuai/java12/number/NumberFormatDemo.java)\n- [Files.mismatch - 文件比较](java-12/src/main/java/com/di1shuai/java12/files/FilesDemo.java)\n- [String API更新](java-12/src/main/java/com/di1shuai/java12/string/StringDemo.java)\n- [Stream Teeing Collector](java-12/src/main/java/com/di1shuai/java12/stream/TeeingDemo.java)\n- 其他\n  - 支持unicode 11（684个新字符、11个新blocks、7个新脚本）\n  - JVM 常量 API （主要在新的java.lang.invoke.constant包中定义了一系列基于值的符号引用类型，能够描述每种可加载常量。）\n  - Shenandoah GC（低暂停时间垃圾收集器）\n  - G1 收集器提升 （可中止的混合收集集合、及时返回未使用的已分配内存）\n  - 默认CDS档案\n  - JMH 基准测试\n\n### [JDK 13](java-13)\n\n---\n\n- [switch表达式引入yield](java-13/src/main/java/com/di1shuai/java13/switchdemo/SwitchDemo.java)\n- [文本块](java-13/src/main/java/com/di1shuai/java13/string/StringBlockDemo.java)\n- ZGC 增强 - 释放未使用内存\n- SocketAPI 重构\n\n### [JDK 14](java-14)\n\n---\n\n- [instanceof模式识别 增强](java-14/src/main/java/com/di1shuai/java14/instance/InstanceOfDemo.java)(预览)\n- [Record 类型](java-14/src/main/java/com/di1shuai/java14/record/RecordDemo.java)\n- [异常信息提示改进](java-14/src/main/java/com/di1shuai/java14/nullexception/NullPointerExceptionDemo.java)\n- 其他 \n  - G1 的 NUMA 可识别内存分配\n  - 删除 CMS GC\n  - GC 支持 MacOS 和 Windows 系统\n  \n### [JDK 15](java-15)\n\n---\n\n- [sealed 封闭类](java-15/src/main/java/com/di1shuai/java15/sealed/SealedDemo.java)\n- EdDSA 数字签名算法\n- hidden Classes（隐藏类）\n- Disable and Deprecate Biased Locking（准备禁用偏向锁）\n- instanceof 自动匹配模式（二次预览）\n- ZGC，一个可伸缩、低延迟的垃圾回收器。（转正）\n- Text Blocks，文本功能转正（JDK 13和14预览，14终于转正）\n- Remove the Solaris and SPARC Ports（删除 Solaris 和 SPARC 端口）\n- 外部存储器访问 API（允许Java 应用程序安全有效地访问 Java 堆之外的外部内存。）\n- Record类型二次预览（在Java 14就预览过啦）\n\n\n### [**JDK 17**](java-17/) - LTS\n\n---\n\n- [306：Restore Always-Strict Floating-PointSemantics / 恢复始终严格的浮点语义](java-17/src/main/java/com/di1shuai/java17/strictfpcase/StrictfpCase.java)\n- [356：Enhanced Pseudo-Random Number Generators / 增强型伪随机数发生器](java-17/src/main/java/com/di1shuai/java17/random/RandomCase.java)\n- 382：New macOS Rendering Pipeline / 新的 macOS 渲染管道\n- 391：macOS/AArch64 Port / macOS/AArch64 平台支持\n- 398：Deprecate the Applet API for Removal / 弃用即将删除的Applet API\n- 403：Strongly Encapsulate JDK Internals / 强封装JDK的内部API\n- [406：Pattern Matching for switch（Preview） / Switch模式匹配（预览)](java-17/src/main/java/com/di1shuai/java17/instanceofcase/InstanceOfCase.java)\n- 407：Remove RMI Activation / 删除 RMI 激活机制\n- 409：Sealed Classes / 密封类\n- 410：Remove the Experimental AOT and JIT Compiler / 删除实验性 AOT 和 JIT 编译器\n- 411：Deprecate the Security Manager For Removal / 弃用即将删除的安全管理器\n- 412：Foreign Function \u0026 Memory API（Incubator） / 外部函数和内存 API（孵化器）\n- 414：Vector API （Second Incubator） / 矢量 API（二次孵化）\n- 415：Context-Specific Deserialization Filters / 特定于上下文的反序列化过滤器\n\n### [JDK 18](java-18)\n\n---\n- JEP 400\t默认为 UTF-8\n- [JEP 408\t简单的网络服务器](java-18/src/main/java/com/di1shuai/webserver)\n- JEP 413\tJava API 文档中的代码片段\n- JEP 416\t使用方法句柄重新实现核心反射\n- JEP 417\tVector API（三次孵化）\n- [JEP 418\t互联网地址解析 SPI](java-18/src/main/java/com/di1shuai/internet/InternetCase.java)\n- JEP 419\tForeign Function \u0026 Memory API (二次孵化)\n- JEP 420\tswitch 模式匹配（二次预览）\n- JEP 421\t弃用完成删除\n\n\n### [JDK 19](java-19)\n\n---\n\n- [JEP 405: Record Patterns (Preview) ——记录模式](java-19/src/main/java/com/di1shuai/java19/recordcase/Point.java)\n- JEP 422: Linux/RISC-V Port ——Linux/RISC—V端口\n- [JEP 424: Foreign Function \u0026 Memory API (Preview) —— 外部函数和内存API](java-19/src/main/java/com/di1shuai/java19/memorycase/Jep424Demo.java)\n- [JEP 425: Virtual Threads (Preview) ——虚拟线程（千呼万唤始出来）](java-19/src/main/java/com/di1shuai/java19/virthread/Jep425Demo.java)\n- JEP 426: Vector API (Fourth Incubator) ——Vector API\n- [JEP 427: Pattern Matching for switch (Third Preview) ——switch的模式匹配](java-19/src/main/java/com/di1shuai/java19/switchcase/SwitchCase.java)\n- [JEP 428: Structured Concurrency (Incubator) ——结构化并发编程](java-19/src/main/java/com/di1shuai/java19/structured/Jep428Demo.java)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbestburning%2Fjava-versions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbestburning%2Fjava-versions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbestburning%2Fjava-versions/lists"}