S-JIS[2008-07-07/2024-09-24] 変更履歴

Java新機能(Javaの変更点)

Javaのバージョンによる変更点。


JDK1.4(J2SE 1.4)


JDK1.5(J2SE 5.0・Java5.0)


JDK1.6(JavaSE6)


JDK1.7(Java7・JavaSE7)


JDK1.8(Java8・JavaSE8)


JDK9(Java9)


JDK10(Java10)

  • javah廃止

JDK11(Java11)

  • Oracle JDKのライセンスがGPLに変更
  • JDKインストール時にJREがインストールされなくなった [2018-10-01]
  • Nashorn廃止
  • HttpClient
  • Java EEモジュール削除
    • JAXB削除 [2018-10-01]
  • CORBAモジュール削除

JDK12(Java12)

  • jfr(Java Flight Recorder)追加
  • CompactNumberFormat
  • Constable
  • ConstantDescs

JDK13(Java13)

  • rmic非推奨
  • NioSocketImpl
  • JapaneseEra.REIWA [2019-09-22]
    • 元号が「令和」になったのは2019/5/1からであり、Java12には間に合わなかった

JDK14(Java14)

  • JFR Event Streaming
  • jpackage(インキュベーター版)
  • pack200廃止
  • Solaris/SPARC対象外
  • @PreviewFeature [2020-03-21]
  • @Serial [2020-03-21]
  • MemorySegment(Unsafeの代替)(インキュベーター版)
  • ByteBuffer不揮発メモリー対応
  • PrintStream#writeBytes()
  • StrictMath#incrementExact()等

JDK15(Java15)

  • ZGC追加
  • Nashorn削除
  • rmic削除
 
  • CharBuffer#isEmpty()
  • CharSequence#isEmpty()
  • Class#isHidden() [2020-09-29]
  • Math.absExact()
  • NoSuchElementException(Throwable)
  • String#stripIndent(), translateEscapes(), formatted() [2020-09-16]
  • String#substring() len=0のときに""を返すようになった
  • TreeMap#putIfAbsent(), computeIfAbsent(), computeIfPresent(), compute(), merge() 独自実装

JDK16(Java16)

  • UNIXドメインソケット
  • CPUのVector API対応(インキュベーター版)
  • Foreign Linker API(インキュベーター版)

JDK17(Java17)

  • java.time.InstantSource
  • java.util.random
    • RandomGenerator
    • RandomGeneratorFactory
  • java.util.HexFormat [2021-09-19]
  • Console#charset()
  • Process#inputReader(), errorReader(), outputWriter()

JDK18(Java18)

  • jwebserver追加
  • java.net.spi.InetAddressResolver
  • Charset.forName(name, デフォルト値)
  • Duration#isPositive() [2022-03-23]
  • Enum#finalize()非推奨
  • PrintStream#charset()
  • SourceVersion.runtimeVersion()
  • System.runFinalization()非推奨
  • Thread#stop()非推奨(削除予定)
  • java.desktop系の空finalize()削除

JDK19(Java19)


JDK20(Java20)

  • javacで--release 7が廃止、8が非推奨
  • Class, Field, Member#acessFlags()
  • Float.float16ToFloat(), floatToFloat16()
  • ForkJoinPool#externalSubmit()
  • URLコンストラクターが非推奨
  • URL.of()
  • 正規表現関連
    • MatchResult#group(name)
    • Pattern#namedGroup()

JDK21(Java21)

  • Windows 32bit版Javaが非推奨
  • Generational ZGC
  • Character.isEmoji(c)
  • HttpClient#shutdown(), shutdownNow(), awaitTermination(), isTerminate()
  • LinkedHashMap#putFirst(), putLast(), firstEntry(), lastEntry(), pollFirstEntry(), pollLastEntry(), reversed()
  • LinkedHashSet#addFirst(), addLast(), getFirst(), getLast(), removeFirst(), removeLast(), reversed()
  • List#addFirst(), addLast(), getFirst(), getLast(), removeFirst(), removeLast(), reversed()
  • Math.clamp(value, min, max)
  • Pattern#splitWithDelimiters(regex, limit)
  • String#indexOf(s, begin, end)
  • String#splitWithDelimiters(regex, limit)
  • StringBuilder#repeat(s, count)

JDK22(Java22)

  • ListFormat
  • Class.forPrimitiveName()
  • ForkJoinPool#invokeAllUninterruptibly()
  • InetAddress.ofLiteral()
  • Inet4Address.ofLiteral()
  • Inet6Address.ofLiteral()
  • Path#resolve(first, more...)
  • StandardCharsets.UTF_32

JDK23(Java23)

  • ZGCのデフォルト(JVMのデフォルトではない)が世代別GCになった
  • Thread#resume(), suspend()削除

Java目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま