# Public API removed/added/changed between JDK 25 and 26 ## public classes removed java.applet.Applet java.applet.Applet$AccessibleApplet java.applet.AppletContext java.applet.AppletStub java.applet.AudioClip java.beans.AppletInitializer java.lang.StableValue java.security.PEMRecord javax.management.modelmbean.XMLParseException javax.swing.JApplet javax.swing.JApplet$AccessibleJApplet ## public classes added java.lang.LazyConstant java.net.http.HttpOption java.net.http.HttpOption$Http3DiscoveryMode java.net.http.HttpResponse$PushPromiseHandler$PushId java.net.http.HttpResponse$PushPromiseHandler$PushId$Http3PushId java.net.http.StreamLimitException java.net.http.UnsupportedProtocolVersionException java.security.PEM javax.crypto.spec.HPKEParameterSpec jdk.jfr.events.FinalFieldMutationEvent jdk.jshell.SourceCodeAnalysis$CompletionContext jdk.jshell.SourceCodeAnalysis$CompletionState jdk.jshell.SourceCodeAnalysis$ElementSuggestion jdk.jshell.SourceCodeAnalysis$ElementSuggestionConvertor ## public class changes com.sun.net.httpserver.HttpExchange + public static final long RSPBODY_CHUNKED; + public static final long RSPBODY_EMPTY; java.awt.Robot + public static final int DEFAULT_DELAY; + public static final int DEFAULT_STEP_LENGTH; + public synchronized void type(char); + public synchronized void type(int); + public void click(); + public void click(int); + public void glide(int, int); + public void glide(int, int, int, int); + public void glide(int, int, int, int, int, int); + public void waitForIdle(int); java.beans.Beans - public static java.lang.Object instantiate(java.lang.ClassLoader, java.lang.String, java.beans.beancontext.BeanContext, java.beans.AppletInitializer) throws java.io.IOException, java.lang.ClassNotFoundException; java.lang.Character$UnicodeBlock + public static final java.lang.Character$UnicodeBlock BERIA_ERFE; + public static final java.lang.Character$UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_J; + public static final java.lang.Character$UnicodeBlock MISCELLANEOUS_SYMBOLS_SUPPLEMENT; + public static final java.lang.Character$UnicodeBlock SHARADA_SUPPLEMENT; + public static final java.lang.Character$UnicodeBlock SIDETIC; + public static final java.lang.Character$UnicodeBlock TAI_YO; + public static final java.lang.Character$UnicodeBlock TANGUT_COMPONENTS_SUPPLEMENT; + public static final java.lang.Character$UnicodeBlock TOLONG_SIKI; java.lang.Character$UnicodeScript + public static final java.lang.Character$UnicodeScript BERIA_ERFE; + public static final java.lang.Character$UnicodeScript SIDETIC; + public static final java.lang.Character$UnicodeScript TAI_YO; + public static final java.lang.Character$UnicodeScript TOLONG_SIKI; java.lang.Process - public abstract class java.lang.Process { + public abstract class java.lang.Process implements java.io.Closeable { + public void close() throws java.io.IOException; java.lang.String + public boolean equalsFoldCase(java.lang.String); + public int compareToFoldCase(java.lang.String); + public static final java.util.Comparator UNICODE_CASEFOLD_ORDER; java.lang.Thread - public final void stop(); java.lang.classfile.ClassFile + public static final int JAVA_26_VERSION; java.lang.management.MemoryMXBean + public default long getTotalGcCpuTime(); java.lang.reflect.ClassFileFormatVersion + public static final java.lang.reflect.ClassFileFormatVersion RELEASE_26; java.math.BigInteger + public java.math.BigInteger rootn(int); + public java.math.BigInteger[] rootnAndRemainder(int); java.net.MulticastSocket - public byte getTTL() throws java.io.IOException; - public void send(java.net.DatagramPacket, byte) throws java.io.IOException; - public void setTTL(byte) throws java.io.IOException; java.net.http.HttpClient$Version + public static final java.net.http.HttpClient$Version HTTP_3; java.net.http.HttpRequest + public java.util.Optional getOption(java.net.http.HttpOption); java.net.http.HttpRequest$BodyPublishers + public static java.net.http.HttpRequest$BodyPublisher ofFileChannel(java.nio.channels.FileChannel, long, long) throws java.io.IOException; java.net.http.HttpRequest$Builder + public default java.net.http.HttpRequest$Builder setOption(java.net.http.HttpOption, T); java.net.http.HttpResponse$PushPromiseHandler + public default void applyPushPromise(java.net.http.HttpRequest, java.net.http.HttpRequest, java.net.http.HttpResponse$PushPromiseHandler$PushId, java.util.function.Function, java.util.concurrent.CompletableFuture>>); + public default void notifyAdditionalPromise(java.net.http.HttpRequest, java.net.http.HttpResponse$PushPromiseHandler$PushId); java.nio.ByteOrder - public final class java.nio.ByteOrder { + public final class java.nio.ByteOrder extends java.lang.Enum { - public java.lang.String toString(); + public static java.nio.ByteOrder valueOf(java.lang.String); + public static java.nio.ByteOrder[] values(); java.security.SecureRandom + public long nextLong(); java.sql.Array - public interface java.sql.Array { + public interface java.sql.Array extends java.lang.AutoCloseable { + public default void close() throws java.sql.SQLException; java.sql.Blob - public interface java.sql.Blob { + public interface java.sql.Blob extends java.lang.AutoCloseable { + public default void close() throws java.sql.SQLException; java.sql.Clob - public interface java.sql.Clob { + public interface java.sql.Clob extends java.lang.AutoCloseable { + public default void close() throws java.sql.SQLException; java.sql.Connection + public default boolean isSimpleIdentifier(java.lang.String) throws java.sql.SQLException; + public default java.lang.String enquoteIdentifier(java.lang.String, boolean) throws java.sql.SQLException; + public default java.lang.String enquoteLiteral(java.lang.String) throws java.sql.SQLException; + public default java.lang.String enquoteNCharLiteral(java.lang.String) throws java.sql.SQLException; java.sql.JDBCType + public static final java.sql.JDBCType DECFLOAT; + public static final java.sql.JDBCType JSON; java.sql.SQLXML - public interface java.sql.SQLXML { + public interface java.sql.SQLXML extends java.lang.AutoCloseable { + public default void close() throws java.sql.SQLException; java.sql.Types + public static final int DECFLOAT; + public static final int JSON; java.time.Duration + public static final java.time.Duration MAX; + public static final java.time.Duration MIN; java.time.Instant + public java.time.Instant plusSaturating(java.time.Duration); java.util.Comparator + public default U max(U, U); + public default U min(U, U); java.util.List + public static java.util.List ofLazy(int, java.util.function.IntFunction); java.util.Locale$IsoCountryCode - public abstract class java.util.Locale$IsoCountryCode extends java.lang.Enum { + public final class java.util.Locale$IsoCountryCode extends java.lang.Enum { java.util.Map + public static java.util.Map ofLazy(java.util.Set, java.util.function.Function); java.util.UUID + public static java.util.UUID ofEpochMillis(long); java.util.concurrent.StructuredTaskScope - public static java.util.concurrent.StructuredTaskScope open(java.util.concurrent.StructuredTaskScope$Joiner, java.util.function.Function); + public static java.util.concurrent.StructuredTaskScope open(java.util.concurrent.StructuredTaskScope$Joiner, java.util.function.UnaryOperator); java.util.concurrent.StructuredTaskScope$Joiner - public default boolean onComplete(java.util.concurrent.StructuredTaskScope$Subtask); - public default boolean onFork(java.util.concurrent.StructuredTaskScope$Subtask); - public static java.util.concurrent.StructuredTaskScope$Joiner anySuccessfulResultOrThrow(); - public static java.util.concurrent.StructuredTaskScope$Joiner>> allSuccessfulOrThrow(); - public static java.util.concurrent.StructuredTaskScope$Joiner>> allUntil(java.util.function.Predicate>); + public default boolean onComplete(java.util.concurrent.StructuredTaskScope$Subtask); + public default boolean onFork(java.util.concurrent.StructuredTaskScope$Subtask); + public default void onTimeout(); + public static java.util.concurrent.StructuredTaskScope$Joiner anySuccessfulOrThrow(); + public static java.util.concurrent.StructuredTaskScope$Joiner> allSuccessfulOrThrow(); + public static java.util.concurrent.StructuredTaskScope$Joiner>> allUntil(java.util.function.Predicate>); java.util.concurrent.ThreadLocalRandom + public double nextGaussian(); javax.crypto.EncryptedPrivateKeyInfo - public java.security.PrivateKey getKey(char[]) throws java.security.GeneralSecurityException; - public java.security.PrivateKey getKey(java.security.Key, java.security.Provider) throws java.security.GeneralSecurityException; - public static javax.crypto.EncryptedPrivateKeyInfo encryptKey(java.security.PrivateKey, char[]); - public static javax.crypto.EncryptedPrivateKeyInfo encryptKey(java.security.PrivateKey, char[], java.lang.String, java.security.spec.AlgorithmParameterSpec, java.security.Provider); - public static javax.crypto.EncryptedPrivateKeyInfo encryptKey(java.security.PrivateKey, java.security.Key, java.lang.String, java.security.spec.AlgorithmParameterSpec, java.security.Provider, java.security.SecureRandom); + public java.security.KeyPair getKeyPair(char[]) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException; + public java.security.KeyPair getKeyPair(java.security.Key, java.security.Provider) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException; + public java.security.PrivateKey getKey(char[]) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException; + public java.security.PrivateKey getKey(java.security.Key, java.security.Provider) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException; + public static javax.crypto.EncryptedPrivateKeyInfo encrypt(java.security.DEREncodable, char[]); + public static javax.crypto.EncryptedPrivateKeyInfo encrypt(java.security.DEREncodable, char[], java.lang.String, java.security.spec.AlgorithmParameterSpec, java.security.Provider); + public static javax.crypto.EncryptedPrivateKeyInfo encrypt(java.security.DEREncodable, java.security.Key, java.lang.String, java.security.spec.AlgorithmParameterSpec, java.security.Provider, java.security.SecureRandom); javax.imageio.spi.ServiceRegistry - public void finalize() throws java.lang.Throwable; javax.lang.model.SourceVersion + public static final javax.lang.model.SourceVersion RELEASE_26; javax.management.modelmbean.DescriptorSupport - public javax.management.modelmbean.DescriptorSupport(java.lang.String) throws javax.management.MBeanException, javax.management.RuntimeOperationsException, javax.management.modelmbean.XMLParseException; - public synchronized java.lang.String toXMLString(); javax.swing.RepaintManager - public void addDirtyRegion(java.applet.Applet, int, int, int, int); jdk.incubator.vector.VectorOperators - public static final jdk.incubator.vector.VectorOperators$Binary SUADD; + public static final jdk.incubator.vector.VectorOperators$Associative SUADD; jdk.jpackage.main.Main - public int execute(java.io.PrintWriter, java.io.PrintWriter, java.lang.String...); - public static final java.util.ResourceBundle I18N; - public static void main(java.lang.String...) throws java.lang.Exception; + public static void main(java.lang.String...); jdk.jshell.SourceCodeAnalysis + public abstract java.util.List completionSuggestions(java.lang.String, int, jdk.jshell.SourceCodeAnalysis$ElementSuggestionConvertor); jdk.jshell.SourceCodeAnalysis$Documentation + public default int activeParameterIndex();