Java 9更新列表

关于Java 9 你所需要知道的一切

更新列表

  1. JShell – 命令行交互工具
  2. Java Module – 模块化(封装、依赖、聚合、服务)
  3. Custom Runtime Image – 自定义JRE、二次封装
  4. Runtime.Version – 全新的版本定义和解析方式
  5. 删除JRE、重新定义JDK结构
  6. 保留双亲类加载器 – 扩展系统引导、平台、应用三类类加载器
  7. 去掉java.ext.dirs扩展类加载器
  8. 全新的类资源访问方式,支持模块化
  9. 运行时资源访问地址jrt:,有别于jar:
  10. JDK区分公共API和内部API,不直接访问内部API(Unsafe)
  11. –patch-module 新的模块修补方案
  12. Process API – 完整的系统进程访问与控制
  13. List.of(10,11,12) – of([1,2,..10|array]) 有0,1,2,3,4,5,6,7,8,9,可变参数11个方法
  14. Set.of(100,200) – of([1,2,..10|array])
  15. Map.of(‘name’,’ady’) – of(….)
  16. Map.ofEntries,() Map.ofEntry()
  17. jdk.incubator.httpclient – 支持HTTP2.0/async等,唯一一个孵化项目,不能直接访问
  18. 丰富@Deprecation – 更多高级好玩的用法
  19. 更高效的访问/编译异常堆栈
  20. Reactive Streams – 响应式流服务(订阅发布升级)
  21. Stream.dropWhile、Stream.takeWhile – 对 Stream.skip/Stream.limit进行补充
  22. Stream.ofNullable、Stream.iterate 完善Stream
  23. Collectors.filtering、Collectors.flatMapping – 城会玩
  24. Platform Logging – 难道想干掉slf4j、commong-logging、Logback
  25. 可以访问jvm的系统日志
  26. _ – 只是关键字,预计在JDK 10中大有可为
  27. try-with-resouces 升级 – 支持不定义变量进行关闭资源
  28. 匿名类泛型类型推导
  29. 接口interface中允许有私有方法private – 牛逼哄哄的
  30. 私有方法private的类型擦除 – @SafeVarargs
  31. ProcessBuilder.Redirect – 类似于/dev/null
  32. Math.floorDiv等扩充方法
  33. ClassLoader扩展一些方法支持访问Model等
  34. Optional.ifPresentOrElse, Optional.of(Supplier), Optional.stream() – 比swift难用1w倍
  35. CompletableFuture.completeAsync等13个方法
  36. Spin-Wait Hints – 自旋等待 while(cond) Thread.onSpinWait() 【酷】
  37. Clock.tickMillis(ZoneId)
  38. Duration.toDaysPart 等10个方法
  39. LocalDate.ofInstant(Instant, ZoneId)/toEpochSecond – 为了【兼容】java.util.Date
  40. LocalDate.datesUtil – 生成Stream<LocalDate>
  41. LocalTime.ofInstant/toEpochSecond,OffsetTime.toEpochSecond – 为了【兼容】java.util.Date
  42. 儒略日格式化支持 – 【不明觉厉】天文学家用
  43. java.util.Scanner.finalAll/tokens – 支持Stream操作
  44. java.util.regex.Matcher.results – 支持Stream操作
  45. Objects增强 – requireNonNullElse/…/…/checkFromToIndex/checkIndex 【少写一个if/throw】
  46. Arrays.equals/compare/mismatch(数组系列)- 终于有了
  47. Applet终于废弃了 – 从诞生到现在坚持了22年,不容易啊,虽然依然可以使用
  48. Javadoc 增强 – 支持HTML5,支持模块,支持搜索
  49. 本地桌面java.awt.Desktop的扩展
  50. 反序列化过滤器 – 好高深
  51. IO流的 transferTo – 类似有IoUtils.copy(from, to)
  52. Buffer.duplicate/slice – 共享缓冲区
  53. java.lang.ref.Cleaner – 废弃Object.finalize,对象不可访问时只需清理操作
  54. java.lang.invoke.VarHandle – sun.misc.Unsafe 终于转正一等公民
  55. AtomicInteger.getPlain/getOpaque/getAcquire – 太复杂,哥还没懂
  56. InputStream.readAllBytes/readNBytes/transferTo 【屌】
  57. AbstractStringBuilder.chars/codePoints/ – Stream流操作
  58. TimeUnit.toChronoUnit()/TimeUnit.of(ChronoUnit) – TimeUnit和ChronoUnit互转
  59. java.util.zip.CRC32C – 提供crc32的校验
  60. 提供SHA3的算法实现
  61. java.util.zip.ZipEntry.setTimeLocal(LocalDateTime)
  62. javax.sql.DataSource.createConnectionBuilder() – 自定数据库连接
  63. jdk.security.jarsigner.JarSigner – jar包签名
  64. scripting.nashorn – 众多更新,哥没用过

牛X/重量级的功能

  1. Java Module 【Java工程师都废了,而且大部分工程师估计也学不会】
  2. JShell 【入门级玩具、小工具,我最爱的python shell】
  3. Process API 【过于暴力和危险,终于可以杀无赦】
  4. VarHandle 【99%的工程师用不上,不知其强大之处】
  5. HttpClient 【大家都很期待,却没有默认实现】
  6. Reactive Streams 【过于复杂】

———————————–EOF—————————————-

    原文作者:imxylz
    原文地址: https://zhuanlan.zhihu.com/p/29312960
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞