# Deprecated API

## Contents

- For Removal
- Modules
- Interfaces
- Classes
- Enums
- Exceptions
- Fields
- Methods
- Constructors
- Enum Constants

For Removal
Element | Description
--- | ---
com.sun.java.accessibility.util.AWTEventMonitor.actionListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.adjustmentListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.componentListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.componentWithFocus | This field is unused; to get the component with focus use the getComponentWithFocus method.
com.sun.java.accessibility.util.AWTEventMonitor.containerListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.focusListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.itemListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.keyListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.mouseListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.mouseMotionListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.textListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.windowListener | This field is unused.
com.sun.source.tree.CaseTree.CaseKind | This enum is used to model a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.CaseTree.getBody() | This method is modeling a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.CaseTree.getCaseKind() | This method is used to model a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.CaseTree.getExpressions() | This method is modeling a case with multiple labels, which is part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.SwitchExpressionTree | This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.Tree.Kind.SWITCH_EXPRESSION | This enum constant is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.Tree.Kind.YIELD | This enum constant is modeling yield statement, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.TreeVisitor.visitSwitchExpression​(SwitchExpressionTree, P) | This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.TreeVisitor.visitYield​(YieldTree, P) | This method is modeling yield statement, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.YieldTree | This class is modeling yield from switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.util.SimpleTreeVisitor.visitSwitchExpression​(SwitchExpressionTree, P) | This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.util.SimpleTreeVisitor.visitYield​(YieldTree, P) |
com.sun.source.util.TreeScanner.visitSwitchExpression​(SwitchExpressionTree, P) | This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.util.TreeScanner.visitYield​(YieldTree, P) | This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
java.lang.Compiler | JIT compilers and their technologies vary too widely to be controlled effectively by a standardized interface. As such, many JIT compiler implementations ignore this interface, and are instead controllable by implementation-specific mechanisms such as command-line options. This class is subject to removal in a future version of Java SE.
java.lang.String.formatted​(Object...) | This method is associated with text blocks, a preview language feature. Text blocks and/or this method may be changed or removed in a future release.
java.lang.String.stripIndent() | This method is associated with text blocks, a preview language feature. Text blocks and/or this method may be changed or removed in a future release.
java.lang.String.translateEscapes() | This method is associated with text blocks, a preview language feature. Text blocks and/or this method may be changed or removed in a future release.
java.lang.Thread.countStackFrames() | The definition of this call depends on `Thread.suspend()`, which is deprecated. Further, the results of this call were never well-defined. This method is subject to removal in a future version of Java SE.
java.security.acl.Acl | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.AclEntry | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.AclNotFoundException | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.Group | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.LastOwnerException | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.NotOwnerException | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.Owner | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.Permission | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.Certificate | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.cert.Certificate` and related classes.
java.security.Identity | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
java.security.IdentityScope | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
java.security.Signer | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
java.util.jar.Pack200 | This class is deprecated, and is planned for removal in a future release.
java.util.jar.Pack200.Packer | This interface is deprecated, and is planned for removal in a future release.
java.util.jar.Pack200.Unpacker | This interface is deprecated, and is planned for removal in a future release.
javax.management.remote.rmi.RMIConnectorServer.CREDENTIAL_TYPES | Use `RMIConnectorServer.CREDENTIALS_FILTER_PATTERN` with a filter pattern string instead.
javax.net.ssl.HandshakeCompletedEvent.getPeerCertificateChain() | The `HandshakeCompletedEvent.getPeerCertificates()` method that returns an array of `java.security.cert.Certificate` should be used instead.
javax.net.ssl.SSLSession.getPeerCertificateChain() | The `SSLSession.getPeerCertificates()` method that returns an array of `java.security.cert.Certificate` should be used instead.
javax.security.cert.Certificate | Use the classes in `java.security.cert` instead.
javax.security.cert.CertificateEncodingException | Use the classes in `java.security.cert` instead.
javax.security.cert.CertificateException | Use the classes in `java.security.cert` instead.
javax.security.cert.CertificateExpiredException | Use the classes in `java.security.cert` instead.
javax.security.cert.CertificateNotYetValidException | Use the classes in `java.security.cert` instead.
javax.security.cert.CertificateParsingException | Use the classes in `java.security.cert` instead.
javax.security.cert.X509Certificate | Use the classes in `java.security.cert` instead.
jdk.nashorn.api.scripting.AbstractJSObject | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.ClassFilter | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.JSObject | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.NashornException | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.NashornScriptEngine | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.NashornScriptEngineFactory | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.ScriptObjectMirror | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.ScriptUtils | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.URLReader | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ArrayAccessTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ArrayLiteralTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.AssignmentTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.BinaryTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.BlockTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.BreakTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.CaseTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.CatchTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ClassDeclarationTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ClassExpressionTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.CompilationUnitTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.CompoundAssignmentTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ConditionalExpressionTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ConditionalLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ContinueTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.DebuggerTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.Diagnostic | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.Diagnostic.Kind | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.DiagnosticListener | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.DoWhileLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.EmptyStatementTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ErroneousTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ExportEntryTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ExpressionStatementTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ExpressionTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ForInLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ForLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ForOfLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.FunctionCallTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.FunctionDeclarationTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.FunctionExpressionTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.GotoTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.IdentifierTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.IfTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ImportEntryTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.InstanceOfTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.LabeledStatementTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.LineMap | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.LiteralTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.LoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.MemberSelectTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ModuleTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.NewTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ObjectLiteralTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ParenthesizedTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.Parser | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.PropertyTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.RegExpLiteralTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ReturnTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.SimpleTreeVisitorES5_1 | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.SimpleTreeVisitorES6 | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.SpreadTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.StatementTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.SwitchTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.TemplateLiteralTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ThrowTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.Tree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.Tree.Kind | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.TreeVisitor | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.TryTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.UnaryTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.UnknownTreeException | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.VariableTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.WhileLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.WithTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.YieldTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.pack | This module is deprecated, and is planned for removal in a future release.
jdk.scripting.nashorn | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
netscape.javascript.JSObject.getWindow​(Applet) | The Applet API is deprecated, no replacement. See the java.applet package documentation for further information.

Modules
Module | Description
--- | ---
jdk.pack | This module is deprecated, and is planned for removal in a future release.
jdk.scripting.nashorn | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.

Interfaces
Interface | Description
--- | ---
com.sun.jarsigner.ContentSignerParameters | This class has been deprecated.
com.sun.source.tree.SwitchExpressionTree | This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.YieldTree | This class is modeling yield from switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
java.applet.AppletContext | The Applet API is deprecated, no replacement.
java.applet.AppletStub | The Applet API is deprecated, no replacement.
java.applet.AudioClip | The Applet API is deprecated, no replacement.
java.beans.AppletInitializer | The Applet API is deprecated. See the java.applet package documentation for further information.
java.rmi.registry.RegistryHandler | no replacement
java.rmi.server.LoaderHandler | no replacement
java.rmi.server.RemoteCall | no replacement.
java.rmi.server.ServerRef | No replacement. This interface is unused and is obsolete.
java.rmi.server.Skeleton | no replacement. Skeletons are no longer required for remote method calls in the Java 2 platform v1.2 and greater.
java.security.acl.Acl | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.AclEntry | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.Group | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.Owner | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.Permission | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.Certificate | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.cert.Certificate` and related classes.
java.util.jar.Pack200.Packer | This interface is deprecated, and is planned for removal in a future release.
java.util.jar.Pack200.Unpacker | This interface is deprecated, and is planned for removal in a future release.
java.util.logging.LoggingMXBean | `LoggingMXBean` is no longer a `platform MXBean` and is replaced with `PlatformLoggingMXBean`. It will not register in the platform `MBeanServer`. Use `ManagementFactory.getPlatformMXBean(PlatformLoggingMXBean.class)` instead.
java.util.Observer | This interface has been deprecated. See the `Observable` class for further information.
jdk.nashorn.api.scripting.ClassFilter | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.JSObject | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ArrayAccessTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ArrayLiteralTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.AssignmentTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.BinaryTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.BlockTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.BreakTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.CaseTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.CatchTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ClassDeclarationTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ClassExpressionTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.CompilationUnitTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.CompoundAssignmentTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ConditionalExpressionTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ConditionalLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ContinueTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.DebuggerTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.Diagnostic | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.DiagnosticListener | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.DoWhileLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.EmptyStatementTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ErroneousTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ExportEntryTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ExpressionStatementTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ExpressionTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ForInLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ForLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ForOfLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.FunctionCallTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.FunctionDeclarationTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.FunctionExpressionTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.GotoTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.IdentifierTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.IfTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ImportEntryTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.InstanceOfTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.LabeledStatementTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.LineMap | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.LiteralTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.LoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.MemberSelectTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ModuleTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.NewTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ObjectLiteralTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ParenthesizedTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.Parser | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.PropertyTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.RegExpLiteralTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ReturnTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.SpreadTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.StatementTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.SwitchTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.TemplateLiteralTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.ThrowTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.Tree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.TreeVisitor | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.TryTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.UnaryTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.VariableTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.WhileLoopTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.WithTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.YieldTree | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
org.xml.sax.AttributeList | This interface has been replaced by the SAX2 `Attributes` interface, which includes Namespace support.
org.xml.sax.DocumentHandler | This interface has been replaced by the SAX2 `ContentHandler` interface, which includes Namespace support.
org.xml.sax.Parser | This interface has been replaced by the SAX2 `XMLReader` interface, which includes Namespace support.

Classes
Class | Description
--- | ---
com.sun.jarsigner.ContentSigner | This class has been deprecated.
java.applet.Applet | The Applet API is deprecated, no replacement.
java.awt.Event | It is recommended that `AWTEvent` and its subclasses be used instead
java.io.LineNumberInputStream | This class incorrectly assumes that bytes adequately represent characters. As of JDK 1.1, the preferred way to operate on character streams is via the new character-stream classes, which include a class for counting line numbers.
java.io.StringBufferInputStream | This class does not properly convert characters into bytes. As of JDK 1.1, the preferred way to create a stream from a string is via the `StringReader` class.
java.lang.Compiler | JIT compilers and their technologies vary too widely to be controlled effectively by a standardized interface. As such, many JIT compiler implementations ignore this interface, and are instead controllable by implementation-specific mechanisms such as command-line options. This class is subject to removal in a future version of Java SE.
java.rmi.RMISecurityManager | Use `SecurityManager` instead.
java.rmi.server.LogStream | no replacement
java.rmi.server.Operation | no replacement
java.rmi.server.RemoteStub | Statically generated stubs are deprecated, since stubs are generated dynamically. See `UnicastRemoteObject` for information about dynamic stub generation.
java.security.Identity | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
java.security.IdentityScope | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
java.security.Signer | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
java.util.jar.Pack200 | This class is deprecated, and is planned for removal in a future release.

java.util.Observable

This class and the `Observer` interface have been deprecated. The event model supported by `Observer` and `Observable` is quite limited, the order of notifications delivered by `Observable` is unspecified, and state changes are not in one-for-one correspondence with notifications. For a richer event model, consider using the `java.beans` package. For reliable and ordered messaging among threads, consider using one of the concurrent data structures in the `java.util.concurrent` package. For reactive streams style programming, see the `Flow` API.

javax.accessibility.AccessibleResourceBundle | This class is deprecated as of version 1.3 of the Java Platform
javax.management.DefaultLoaderRepository | Use `MBeanServer.getClassLoaderRepository()` instead.
javax.management.loading.DefaultLoaderRepository | Use `MBeanServer.getClassLoaderRepository()` instead.
javax.management.remote.rmi.RMIIIOPServerImpl | This transport is no longer supported.
javax.security.cert.Certificate | Use the classes in `java.security.cert` instead.
javax.security.cert.X509Certificate | Use the classes in `java.security.cert` instead.
javax.swing.JApplet | The Applet API is deprecated, no replacement.
javax.swing.JComponent.AccessibleJComponent.AccessibleFocusHandler | This class is no longer used or needed. `java.awt.Component.AccessibleAWTComponent` provides the same functionality and it is handled in `Component`.
javax.swing.plaf.metal.MetalComboBoxUI.MetalComboPopup | As of Java 2 platform v1.4.
javax.swing.plaf.metal.MetalFileChooserUI.FileRenderer | As of JDK version 9. Obsolete class.
javax.swing.plaf.metal.MetalFileChooserUI.SingleClickListener | As of JDK version 9. Obsolete class.
javax.swing.text.DefaultTextUI |
javax.swing.text.TableView.TableCell | A table cell can now be any View implementation.
jdk.nashorn.api.scripting.AbstractJSObject | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.NashornScriptEngine | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.NashornScriptEngineFactory | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.ScriptObjectMirror | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.ScriptUtils | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.scripting.URLReader | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.SimpleTreeVisitorES5_1 | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.SimpleTreeVisitorES6 | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
org.xml.sax.HandlerBase | This class works with the deprecated `DocumentHandler` interface. It has been replaced by the SAX2 `DefaultHandler` class.
org.xml.sax.helpers.AttributeListImpl | This class implements a deprecated interface, `AttributeList`; that interface has been replaced by `Attributes`, which is implemented in the `AttributesImpl` helper class.
org.xml.sax.helpers.ParserFactory | This class works with the deprecated `Parser` interface.
org.xml.sax.helpers.XMLReaderFactory | It is recommended to use `SAXParserFactory` instead.

Enums
Enum | Description
--- | ---
com.sun.source.tree.CaseTree.CaseKind | This enum is used to model a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
jdk.nashorn.api.tree.Diagnostic.Kind | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.Tree.Kind | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.

Exceptions
Exceptions | Description
--- | ---
com.sun.jdi.InvalidCodeIndexException | This exception is no longer thrown
com.sun.jdi.InvalidLineNumberException | This exception is no longer thrown
java.rmi.RMISecurityException | Use `SecurityException` instead. Application code should never directly reference this class, and `RMISecurityManager` no longer throws this subclass of `java.lang.SecurityException`.
java.rmi.server.SkeletonMismatchException | no replacement. Skeletons are no longer required for remote method calls in the Java 2 platform v1.2 and greater.
java.rmi.server.SkeletonNotFoundException | no replacement. Skeletons are no longer required for remote method calls in the Java 2 platform v1.2 and greater.
java.rmi.server.SocketSecurityException | This class is obsolete. Use `ExportException` instead.
java.rmi.ServerRuntimeException | no replacement
java.security.acl.AclNotFoundException | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.LastOwnerException | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
java.security.acl.NotOwnerException | This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.Policy` and related classes since 1.2.
javax.security.cert.CertificateEncodingException | Use the classes in `java.security.cert` instead.
javax.security.cert.CertificateException | Use the classes in `java.security.cert` instead.
javax.security.cert.CertificateExpiredException | Use the classes in `java.security.cert` instead.
javax.security.cert.CertificateNotYetValidException | Use the classes in `java.security.cert` instead.
javax.security.cert.CertificateParsingException | Use the classes in `java.security.cert` instead.
jdk.nashorn.api.scripting.NashornException | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
jdk.nashorn.api.tree.UnknownTreeException | Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.

Fields
Field | Description
--- | ---
com.sun.java.accessibility.util.AWTEventMonitor.actionListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.adjustmentListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.componentListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.componentWithFocus | This field is unused; to get the component with focus use the getComponentWithFocus method.
com.sun.java.accessibility.util.AWTEventMonitor.containerListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.focusListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.itemListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.keyListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.mouseListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.mouseMotionListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.textListener | This field is unused.
com.sun.java.accessibility.util.AWTEventMonitor.windowListener | This field is unused.
java.awt.Cursor.predefined | As of JDK version 1.7, the `Cursor.getPredefinedCursor(int)` method should be used instead.
java.awt.datatransfer.DataFlavor.plainTextFlavor | as of 1.3. Use `DataFlavor.getReaderForText(java.awt.datatransfer.Transferable)` instead of `Transferable.getTransferData(DataFlavor.plainTextFlavor)`.
java.awt.event.InputEvent.ALT_GRAPH_MASK | It is recommended that ALT_GRAPH_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
java.awt.event.InputEvent.ALT_MASK | It is recommended that ALT_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
java.awt.event.InputEvent.BUTTON1_MASK | It is recommended that BUTTON1_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
java.awt.event.InputEvent.BUTTON2_MASK | It is recommended that BUTTON2_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead. Note that BUTTON2_MASK has the same value as ALT_MASK.
java.awt.event.InputEvent.BUTTON3_MASK | It is recommended that BUTTON3_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead. Note that BUTTON3_MASK has the same value as META_MASK.
java.awt.event.InputEvent.CTRL_MASK | It is recommended that CTRL_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
java.awt.event.InputEvent.META_MASK | It is recommended that META_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
java.awt.event.InputEvent.SHIFT_MASK | It is recommended that SHIFT_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
java.awt.Frame.CROSSHAIR_CURSOR | replaced by `Cursor.CROSSHAIR_CURSOR`.
java.awt.Frame.DEFAULT_CURSOR | replaced by `Cursor.DEFAULT_CURSOR`.
java.awt.Frame.E_RESIZE_CURSOR | replaced by `Cursor.E_RESIZE_CURSOR`.
java.awt.Frame.HAND_CURSOR | replaced by `Cursor.HAND_CURSOR`.
java.awt.Frame.MOVE_CURSOR | replaced by `Cursor.MOVE_CURSOR`.
java.awt.Frame.N_RESIZE_CURSOR | replaced by `Cursor.N_RESIZE_CURSOR`.
java.awt.Frame.NE_RESIZE_CURSOR | replaced by `Cursor.NE_RESIZE_CURSOR`.
java.awt.Frame.NW_RESIZE_CURSOR | replaced by `Cursor.NW_RESIZE_CURSOR`.
java.awt.Frame.S_RESIZE_CURSOR | replaced by `Cursor.S_RESIZE_CURSOR`.
java.awt.Frame.SE_RESIZE_CURSOR | replaced by `Cursor.SE_RESIZE_CURSOR`.
java.awt.Frame.SW_RESIZE_CURSOR | replaced by `Cursor.SW_RESIZE_CURSOR`.
java.awt.Frame.TEXT_CURSOR | replaced by `Cursor.TEXT_CURSOR`.
java.awt.Frame.W_RESIZE_CURSOR | replaced by `Cursor.W_RESIZE_CURSOR`.
java.awt.Frame.WAIT_CURSOR | replaced by `Cursor.WAIT_CURSOR`.

java.lang.Character.UnicodeBlock.SURROGATES_AREA

Instead of `SURROGATES_AREA`, use `Character.UnicodeBlock.HIGH_SURROGATES`, `Character.UnicodeBlock.HIGH_PRIVATE_USE_SURROGATES`, and `Character.UnicodeBlock.LOW_SURROGATES`. These constants match the block definitions of the Unicode Standard. The `Character.UnicodeBlock.of(char)` and `Character.UnicodeBlock.of(int)` methods return the standard constants.

java.math.BigDecimal.ROUND_CEILING | Use `RoundingMode.CEILING` instead.
java.math.BigDecimal.ROUND_DOWN | Use `RoundingMode.DOWN` instead.
java.math.BigDecimal.ROUND_FLOOR | Use `RoundingMode.FLOOR` instead.
java.math.BigDecimal.ROUND_HALF_DOWN | Use `RoundingMode.HALF_DOWN` instead.
java.math.BigDecimal.ROUND_HALF_EVEN | Use `RoundingMode.HALF_EVEN` instead.
java.math.BigDecimal.ROUND_HALF_UP | Use `RoundingMode.HALF_UP` instead.
java.math.BigDecimal.ROUND_UNNECESSARY | Use `RoundingMode.UNNECESSARY` instead.
java.math.BigDecimal.ROUND_UP | Use `RoundingMode.UP` instead.
java.net.HttpURLConnection.HTTP_SERVER_ERROR | it is misplaced and shouldn't have existed.
java.rmi.server.RemoteRef.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.rmi.server.ServerRef.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.interfaces.DSAPrivateKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.interfaces.DSAPublicKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.interfaces.ECPrivateKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.interfaces.ECPublicKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.interfaces.RSAMultiPrimePrivateCrtKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.interfaces.RSAPrivateCrtKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.interfaces.RSAPrivateKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.interfaces.RSAPublicKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.Key.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.PrivateKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.security.PublicKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
java.util.jar.Attributes.Name.EXTENSION_INSTALLATION | Extension mechanism is no longer supported.
java.util.jar.Attributes.Name.IMPLEMENTATION_URL | Extension mechanism is no longer supported.
java.util.jar.Attributes.Name.IMPLEMENTATION_VENDOR_ID | Extension mechanism is no longer supported.

java.util.logging.Logger.global

Initialization of this field is prone to deadlocks. The field must be initialized by the Logger class initialization which may cause deadlocks with the LogManager class initialization. In such cases two class initialization wait for each other to complete. The preferred way to get the global logger object is via the call `Logger.getGlobal()`. For compatibility with old JDK versions where the `Logger.getGlobal()` is not available use the call `Logger.getLogger(Logger.GLOBAL_LOGGER_NAME)` or `Logger.getLogger("global")`.

javax.crypto.interfaces.DHPrivateKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
javax.crypto.interfaces.DHPublicKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
javax.crypto.interfaces.PBEKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
javax.crypto.SecretKey.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
javax.imageio.spi.ImageReaderSpi.STANDARD_INPUT_TYPE | Instead of using this field, directly create the equivalent array `{ ImageInputStream.class }`.
javax.imageio.spi.ImageWriterSpi.STANDARD_OUTPUT_TYPE | Instead of using this field, directly create the equivalent array `{ ImageOutputStream.class }`.
javax.management.monitor.Monitor.alreadyNotified | equivalent to `Monitor.alreadyNotifieds`[0].
javax.management.monitor.Monitor.dbgTag | No replacement.
javax.management.openmbean.OpenType.ALLOWED_CLASSNAMES | Use `ALLOWED_CLASSNAMES_LIST` instead.
javax.management.remote.rmi.RMIConnectorServer.CREDENTIAL_TYPES | Use `RMIConnectorServer.CREDENTIALS_FILTER_PATTERN` with a filter pattern string instead.

javax.naming.Context.APPLET

An environment property with this name is ignored while constructing an initial context. This constant was originally used as a property name to specify an `Applet` to retrieve parameters from, when creating an initial context. Currently any applet properties that need to be passed to an initial context should be copied into the environment hashtable:

         Hashtable env = new Hashtable();
         env.put(Context.INITIAL_CONTEXT_FACTORY,
           ((Applet) this).getParameter(Context.INITIAL_CONTEXT_FACTORY));
         env.put(Context.PROVIDER_URL,
           ((Applet) this).getParameter(Context.PROVIDER_URL));
         // ... other properties ...

         Context ctx = new InitialContext(env);

javax.naming.directory.Attribute.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
javax.naming.Name.serialVersionUID | A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
javax.sql.rowset.CachedRowSet.COMMIT_ON_ACCEPT_CHANGES | Because this field is final (it is part of an interface), its value cannot be changed.
javax.swing.ImageIcon.component | since 1.8
javax.swing.ImageIcon.tracker | since 1.8
javax.swing.JComponent.AccessibleJComponent.accessibleFocusHandler |
javax.swing.JViewport.backingStore | As of Java 2 platform v1.3
javax.swing.plaf.basic.BasicDesktopPaneUI.closeKey | As of 1.3.
javax.swing.plaf.basic.BasicDesktopPaneUI.maximizeKey | As of 1.3.
javax.swing.plaf.basic.BasicDesktopPaneUI.minimizeKey | As of 1.3.
javax.swing.plaf.basic.BasicDesktopPaneUI.navigateKey | As of 1.3.
javax.swing.plaf.basic.BasicDesktopPaneUI.navigateKey2 | As of 1.3.
javax.swing.plaf.basic.BasicInternalFrameUI.openMenuKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.dividerResizeToggleKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.downKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.endKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.homeKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.keyboardDownRightListener | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.keyboardEndListener | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.keyboardHomeListener | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.keyboardResizeToggleListener | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.keyboardUpLeftListener | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.leftKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.rightKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.upKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicTabbedPaneUI.downKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicTabbedPaneUI.leftKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicTabbedPaneUI.rightKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicTabbedPaneUI.upKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicToolBarUI.downKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicToolBarUI.leftKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicToolBarUI.rightKey | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicToolBarUI.upKey | As of Java 2 platform v1.3.
javax.swing.table.TableColumn.resizedPostingDisableCount | as of Java 2 platform v1.3
javax.swing.text.html.FormView.RESET | As of 1.3, value comes from UIManager UIManager property FormView.resetButtonText
javax.swing.text.html.FormView.SUBMIT | As of 1.3, value now comes from UIManager property FormView.submitButtonText

Methods
Method | Description
--- | ---
com.sun.source.tree.CaseTree.getBody() | This method is modeling a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.CaseTree.getCaseKind() | This method is used to model a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.CaseTree.getExpressions() | This method is modeling a case with multiple labels, which is part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.TreeVisitor.visitSwitchExpression​(SwitchExpressionTree, P) | This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.TreeVisitor.visitYield​(YieldTree, P) | This method is modeling yield statement, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.util.SimpleTreeVisitor.visitSwitchExpression​(SwitchExpressionTree, P) | This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.util.SimpleTreeVisitor.visitYield​(YieldTree, P) |
com.sun.source.util.TreeScanner.visitSwitchExpression​(SwitchExpressionTree, P) | This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.util.TreeScanner.visitYield​(YieldTree, P) | This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
java.awt.AWTKeyStroke.registerSubclass​(Class<?>) |
java.awt.BorderLayout.addLayoutComponent​(String, Component) | replaced by `addLayoutComponent(Component, Object)`.
java.awt.CardLayout.addLayoutComponent​(String, Component) | replaced by `addLayoutComponent(Component, Object)`.
java.awt.CheckboxGroup.getCurrent() | As of JDK version 1.1, replaced by `getSelectedCheckbox()`.
java.awt.CheckboxGroup.setCurrent​(Checkbox) | As of JDK version 1.1, replaced by `setSelectedCheckbox(Checkbox)`.
java.awt.Choice.countItems() | As of JDK version 1.1, replaced by `getItemCount()`.

java.awt.color.ICC_Profile.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

java.awt.Component.action​(Event, Object) | As of JDK version 1.1, should register this component as ActionListener on component which fires action events.
java.awt.Component.bounds() | As of JDK version 1.1, replaced by `getBounds()`.
java.awt.Component.deliverEvent​(Event) | As of JDK version 1.1, replaced by `dispatchEvent(AWTEvent e)`.
java.awt.Component.disable() | As of JDK version 1.1, replaced by `setEnabled(boolean)`.
java.awt.Component.enable() | As of JDK version 1.1, replaced by `setEnabled(boolean)`.
java.awt.Component.gotFocus​(Event, Object) | As of JDK version 1.1, replaced by processFocusEvent(FocusEvent).
java.awt.Component.handleEvent​(Event) | As of JDK version 1.1 replaced by processEvent(AWTEvent).
java.awt.Component.hide() | As of JDK version 1.1, replaced by `setVisible(boolean)`.
java.awt.Component.inside​(int, int) | As of JDK version 1.1, replaced by contains(int, int).
java.awt.Component.isFocusTraversable() | As of 1.4, replaced by `isFocusable()`.
java.awt.Component.keyDown​(Event, int) | As of JDK version 1.1, replaced by processKeyEvent(KeyEvent).
java.awt.Component.keyUp​(Event, int) | As of JDK version 1.1, replaced by processKeyEvent(KeyEvent).
java.awt.Component.layout() | As of JDK version 1.1, replaced by `doLayout()`.
java.awt.Component.locate​(int, int) | As of JDK version 1.1, replaced by getComponentAt(int, int).
java.awt.Component.location() | As of JDK version 1.1, replaced by `getLocation()`.
java.awt.Component.lostFocus​(Event, Object) | As of JDK version 1.1, replaced by processFocusEvent(FocusEvent).
java.awt.Component.minimumSize() | As of JDK version 1.1, replaced by `getMinimumSize()`.
java.awt.Component.mouseDown​(Event, int, int) | As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).
java.awt.Component.mouseDrag​(Event, int, int) | As of JDK version 1.1, replaced by processMouseMotionEvent(MouseEvent).
java.awt.Component.mouseEnter​(Event, int, int) | As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).
java.awt.Component.mouseExit​(Event, int, int) | As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).
java.awt.Component.mouseMove​(Event, int, int) | As of JDK version 1.1, replaced by processMouseMotionEvent(MouseEvent).
java.awt.Component.mouseUp​(Event, int, int) | As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).
java.awt.Component.move​(int, int) | As of JDK version 1.1, replaced by `setLocation(int, int)`.
java.awt.Component.nextFocus() | As of JDK version 1.1, replaced by transferFocus().
java.awt.Component.postEvent​(Event) | As of JDK version 1.1, replaced by dispatchEvent(AWTEvent).
java.awt.Component.preferredSize() | As of JDK version 1.1, replaced by `getPreferredSize()`.
java.awt.Component.reshape​(int, int, int, int) | As of JDK version 1.1, replaced by `setBounds(int, int, int, int)`.
java.awt.Component.resize​(int, int) | As of JDK version 1.1, replaced by `setSize(int, int)`.
java.awt.Component.show() | As of JDK version 1.1, replaced by `setVisible(boolean)`.
java.awt.Component.size() | As of JDK version 1.1, replaced by `getSize()`.
java.awt.ComponentOrientation.getOrientation​(ResourceBundle) | As of J2SE 1.4, use `ComponentOrientation.getOrientation(java.util.Locale)`.
java.awt.Container.countComponents() | As of JDK version 1.1, replaced by getComponentCount().
java.awt.Container.deliverEvent​(Event) | As of JDK version 1.1, replaced by `dispatchEvent(AWTEvent e)`
java.awt.Container.insets() | As of JDK version 1.1, replaced by `getInsets()`.
java.awt.Container.layout() | As of JDK version 1.1, replaced by `doLayout()`.
java.awt.Container.locate​(int, int) | As of JDK version 1.1, replaced by `getComponentAt(int, int)`.
java.awt.Container.minimumSize() | As of JDK version 1.1, replaced by `getMinimumSize()`.
java.awt.Container.preferredSize() | As of JDK version 1.1, replaced by `getPreferredSize()`.
java.awt.datatransfer.DataFlavor.equals​(String) | As inconsistent with `hashCode()` contract, use `DataFlavor.isMimeTypeEqual(String)` instead.
java.awt.datatransfer.DataFlavor.normalizeMimeType​(String) | This method is never invoked by this implementation from 1.1 onwards
java.awt.datatransfer.DataFlavor.normalizeMimeTypeParameter​(String, String) | This method is never invoked by this implementation from 1.1 onwards
java.awt.Dialog.hide() | As of JDK version 1.5, replaced by `setVisible(boolean)`.
java.awt.Dialog.show() | As of JDK version 1.5, replaced by `setVisible(boolean)`.
java.awt.event.InputEvent.getModifiers() | It is recommended that extended modifier keys and `InputEvent.getModifiersEx()` be used instead
java.awt.event.KeyEvent.getKeyModifiersText​(int) | It is recommended that extended modifier keys and `InputEvent.getModifiersExText(int)` be used instead
java.awt.event.KeyEvent.setModifiers​(int) | as of JDK1.1.4
java.awt.FontMetrics.getMaxDecent() | As of JDK version 1.1.1, replaced by `getMaxDescent()`.
java.awt.Frame.getCursorType() | As of JDK version 1.1, replaced by `Component.getCursor()`.
java.awt.Frame.setCursor​(int) | As of JDK version 1.1, replaced by `Component.setCursor(Cursor)`.

java.awt.Graphics.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

java.awt.Graphics.getClipRect() | As of JDK version 1.1, replaced by `getClipBounds()`.

java.awt.image.ColorModel.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

java.awt.image.IndexColorModel.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

java.awt.image.renderable.RenderContext.concetenateTransform​(AffineTransform) | replaced by `concatenateTransform(AffineTransform)`.
java.awt.image.renderable.RenderContext.preConcetenateTransform​(AffineTransform) | replaced by `preConcatenateTransform(AffineTransform)`.
java.awt.List.addItem​(String) | replaced by `add(String)`.
java.awt.List.allowsMultipleSelections() | As of JDK version 1.1, replaced by `isMultipleMode()`.
java.awt.List.clear() | As of JDK version 1.1, replaced by `removeAll()`.
java.awt.List.countItems() | As of JDK version 1.1, replaced by `getItemCount()`.
java.awt.List.delItem​(int) | replaced by `remove(String)` and `remove(int)`.
java.awt.List.delItems​(int, int) | As of JDK version 1.1, Not for public use in the future. This method is expected to be retained only as a package private method.
java.awt.List.isSelected​(int) | As of JDK version 1.1, replaced by `isIndexSelected(int)`.
java.awt.List.minimumSize​(int) | As of JDK version 1.1, replaced by `getMinimumSize(int)`.
java.awt.List.preferredSize​(int) | As of JDK version 1.1, replaced by `getPreferredSize(int)`.
java.awt.List.setMultipleSelections​(boolean) | As of JDK version 1.1, replaced by `setMultipleMode(boolean)`.
java.awt.Menu.countItems() | As of JDK version 1.1, replaced by `getItemCount()`.
java.awt.MenuBar.countMenus() | As of JDK version 1.1, replaced by `getMenuCount()`.
java.awt.MenuComponent.postEvent​(Event) | As of JDK version 1.1, replaced by `dispatchEvent`.
java.awt.MenuContainer.postEvent​(Event) | As of JDK version 1.1 replaced by dispatchEvent(AWTEvent).
java.awt.MenuItem.disable() | As of JDK version 1.1, replaced by `setEnabled(boolean)`.
java.awt.MenuItem.enable() | As of JDK version 1.1, replaced by `setEnabled(boolean)`.
java.awt.Polygon.getBoundingBox() | As of JDK version 1.1, replaced by `getBounds()`.
java.awt.Polygon.inside​(int, int) | As of JDK version 1.1, replaced by `contains(int, int)`.

java.awt.PrintJob.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

java.awt.Rectangle.inside​(int, int) | As of JDK version 1.1, replaced by `contains(int, int)`.
java.awt.Rectangle.move​(int, int) | As of JDK version 1.1, replaced by `setLocation(int, int)`.
java.awt.Rectangle.reshape​(int, int, int, int) | As of JDK version 1.1, replaced by `setBounds(int, int, int, int)`.
java.awt.Rectangle.resize​(int, int) | As of JDK version 1.1, replaced by `setSize(int, int)`.
java.awt.Scrollbar.getLineIncrement() | As of JDK version 1.1, replaced by `getUnitIncrement()`.
java.awt.Scrollbar.getPageIncrement() | As of JDK version 1.1, replaced by `getBlockIncrement()`.
java.awt.Scrollbar.getVisible() | As of JDK version 1.1, replaced by `getVisibleAmount()`.
java.awt.Scrollbar.setLineIncrement​(int) | As of JDK version 1.1, replaced by `setUnitIncrement(int)`.
java.awt.Scrollbar.setPageIncrement​(int) | As of JDK version 1.1, replaced by `setBlockIncrement()`.
java.awt.ScrollPane.layout() | As of JDK version 1.1, replaced by `doLayout()`.
java.awt.TextArea.appendText​(String) | As of JDK version 1.1, replaced by `append(String)`.
java.awt.TextArea.insertText​(String, int) | As of JDK version 1.1, replaced by `insert(String, int)`.
java.awt.TextArea.minimumSize​(int, int) | As of JDK version 1.1, replaced by `getMinimumSize(int, int)`.
java.awt.TextArea.preferredSize​(int, int) | As of JDK version 1.1, replaced by `getPreferredSize(int, int)`.
java.awt.TextArea.replaceText​(String, int, int) | As of JDK version 1.1, replaced by `replaceRange(String, int, int)`.
java.awt.TextField.minimumSize​(int) | As of JDK version 1.1, replaced by `getMinimumSize(int)`.
java.awt.TextField.preferredSize​(int) | As of JDK version 1.1, replaced by `getPreferredSize(int)`.
java.awt.TextField.setEchoCharacter​(char) | As of JDK version 1.1, replaced by `setEchoChar(char)`.
java.awt.Toolkit.getFontList() | see `GraphicsEnvironment.getAvailableFontFamilyNames()`
java.awt.Toolkit.getFontMetrics​(Font) | As of JDK version 1.2, replaced by the `Font` method `getLineMetrics`.
java.awt.Toolkit.getMenuShortcutKeyMask() | It is recommended that extended modifier keys and `Toolkit.getMenuShortcutKeyMaskEx()` be used instead
java.awt.Window.applyResourceBundle​(ResourceBundle) | As of J2SE 1.4, replaced by `Component.applyComponentOrientation`.
java.awt.Window.hide() | As of JDK version 1.5, replaced by `Window.setVisible(boolean)`.
java.awt.Window.postEvent​(Event) | As of JDK version 1.1 replaced by `dispatchEvent(AWTEvent)`.
java.awt.Window.reshape​(int, int, int, int) | As of JDK version 1.1, replaced by `setBounds(int, int, int, int)`.
java.awt.Window.show() | As of JDK version 1.5, replaced by `Window.setVisible(boolean)`.
java.beans.Beans.instantiate​(ClassLoader, String, BeanContext, AppletInitializer) | It is recommended to use `Beans.instantiate(ClassLoader, String, BeanContext)`, because the Applet API is deprecated. See the java.applet package documentation for further information.

java.io.ByteArrayOutputStream.toString​(int)

This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via the `ByteArrayOutputStream.toString(String charsetName)` or `ByteArrayOutputStream.toString(Charset charset)` method, which takes an encoding-name or charset argument, or the `toString()` method, which uses the platform's default character encoding.

java.io.DataInputStream.readLine()

This method does not properly convert bytes to characters. As of JDK 1.1, the preferred way to read lines of text is via the `BufferedReader.readLine()` method. Programs that use the `DataInputStream` class to read lines can be converted to use the `BufferedReader` class by replacing code of the form:

>          DataInputStream d = new DataInputStream(in);

with:

>          BufferedReader d
>               = new BufferedReader(new InputStreamReader(in));

java.io.File.toURL() | This method does not automatically escape characters that are illegal in URLs. It is recommended that new code convert an abstract pathname into a URL by first converting it into a URI, via the `toURI` method, and then converting the URI into a URL via the `URI.toURL` method.
java.io.ObjectInputStream.readLine() | This method does not properly convert bytes to characters. see DataInputStream for the details and alternatives.
java.io.ObjectOutputStream.PutField.write​(ObjectOutput) | This method does not write the values contained by this `PutField` object in a proper format, and may result in corruption of the serialization stream. The correct way to write `PutField` data is by calling the `ObjectOutputStream.writeFields()` method.
java.lang.Character.isJavaLetter​(char) | Replaced by isJavaIdentifierStart(char).
java.lang.Character.isJavaLetterOrDigit​(char) | Replaced by isJavaIdentifierPart(char).
java.lang.Character.isSpace​(char) | Replaced by isWhitespace(char).

java.lang.Class.newInstance()

This method propagates any exception thrown by the nullary constructor, including a checked exception. Use of this method effectively bypasses the compile-time exception checking that would otherwise be performed by the compiler. The `Constructor.newInstance` method avoids this problem by wrapping any exception thrown by the constructor in a (checked) `InvocationTargetException`.

The call

     clazz.newInstance()

can be replaced by

     clazz.getDeclaredConstructor().newInstance()

The latter sequence of calls is inferred to be able to throw the additional exception types `InvocationTargetException` and `NoSuchMethodException`. Both of these exception types are subclasses of `ReflectiveOperationException`.

java.lang.ClassLoader.defineClass​(byte[], int, int) | Replaced by `defineClass(String, byte[], int, int)`

java.lang.ClassLoader.getPackage​(String)

If multiple class loaders delegate to each other and define classes with the same package name, and one such loader relies on the lookup behavior of `getPackage` to return a `Package` from a parent loader, then the properties exposed by the `Package` may not be as expected in the rest of the program. For example, the `Package` will only expose annotations from the `package-info.class` file defined by the parent loader, even if annotations exist in a `package-info.class` file defined by a child loader. A more robust approach is to use the `ClassLoader.getDefinedPackage(java.lang.String)` method which returns a `Package` for the specified class loader.

java.lang.Object.finalize()

The finalization mechanism is inherently problematic. Finalization can lead to performance issues, deadlocks, and hangs. Errors in finalizers can lead to resource leaks; there is no way to cancel finalization if it is no longer necessary; and no ordering is specified among calls to `finalize` methods of different objects. Furthermore, there are no guarantees regarding the timing of finalization. The `finalize` method might be called on a finalizable object only after an indefinite delay, if at all. Classes whose instances hold non-heap resources should provide a method to enable explicit release of those resources, and they should also implement `AutoCloseable` if appropriate. The `Cleaner` and `PhantomReference` provide more flexible and efficient ways to release resources when an object becomes unreachable.

java.lang.Package.getPackage​(String)

If multiple class loaders delegate to each other and define classes with the same package name, and one such loader relies on the lookup behavior of `getPackage` to return a `Package` from a parent loader, then the properties exposed by the `Package` may not be as expected in the rest of the program. For example, the `Package` will only expose annotations from the `package-info.class` file defined by the parent loader, even if annotations exist in a `package-info.class` file defined by a child loader. A more robust approach is to use the `ClassLoader.getDefinedPackage(java.lang.String)` method which returns a `Package` for the specified class loader.

java.lang.reflect.AccessibleObject.isAccessible()

This method is deprecated because its name hints that it checks if the reflected object is accessible when it actually indicates if the checks for Java language access control are suppressed. This method may return `false` on a reflected object that is accessible to the caller. To test if this reflected object is accessible, it should use `AccessibleObject.canAccess(Object)`.

java.lang.reflect.Proxy.getProxyClass​(ClassLoader, Class<?>...) | Proxy classes generated in a named module are encapsulated and not accessible to code outside its module. `Constructor.newInstance` will throw `IllegalAccessException` when it is called on an inaccessible proxy class. Use `Proxy.newProxyInstance(ClassLoader, Class[], InvocationHandler)` to create a proxy instance instead.
java.lang.Runtime.Version.major() | As of Java SE 10, the first element of a version number is not the major-release number but the feature-release counter, incremented for every time-based release. Use the `Runtime.Version.feature()` method in preference to this method. For compatibility, this method returns the value of the feature element.
java.lang.Runtime.Version.minor() | As of Java SE 10, the second element of a version number is not the minor-release number but the interim-release counter, incremented for every interim release. Use the `Runtime.Version.interim()` method in preference to this method. For compatibility, this method returns the value of the interim element, or zero if it is absent.
java.lang.Runtime.Version.security() | As of Java SE 10, the third element of a version number is not the security level but the update-release counter, incremented for every update release. Use the `Runtime.Version.update()` method in preference to this method. For compatibility, this method returns the value of the update element, or zero if it is absent.
java.lang.SecurityManager.checkMulticast​(InetAddress, byte) | Use #checkPermission(java.security.Permission) instead
java.lang.String.formatted​(Object...) | This method is associated with text blocks, a preview language feature. Text blocks and/or this method may be changed or removed in a future release.
java.lang.String.getBytes​(int, int, byte[], int) | This method does not properly convert characters into bytes. As of JDK 1.1, the preferred way to do this is via the `String.getBytes()` method, which uses the platform's default charset.
java.lang.String.stripIndent() | This method is associated with text blocks, a preview language feature. Text blocks and/or this method may be changed or removed in a future release.
java.lang.String.translateEscapes() | This method is associated with text blocks, a preview language feature. Text blocks and/or this method may be changed or removed in a future release.
java.lang.Thread.countStackFrames() | The definition of this call depends on `Thread.suspend()`, which is deprecated. Further, the results of this call were never well-defined. This method is subject to removal in a future version of Java SE.
java.lang.Thread.resume() | This method exists solely for use with `Thread.suspend()`, which has been deprecated because it is deadlock-prone. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?.

java.lang.Thread.stop()

This method is inherently unsafe. Stopping a thread with Thread.stop causes it to unlock all of the monitors that it has locked (as a natural consequence of the unchecked `ThreadDeath` exception propagating up the stack). If any of the objects previously protected by these monitors were in an inconsistent state, the damaged objects become visible to other threads, potentially resulting in arbitrary behavior. Many uses of `stop` should be replaced by code that simply modifies some variable to indicate that the target thread should stop running. The target thread should check this variable regularly, and return from its run method in an orderly fashion if the variable indicates that it is to stop running. If the target thread waits for long periods (on a condition variable, for example), the `interrupt` method should be used to interrupt the wait. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?.

java.lang.Thread.suspend()

This method has been deprecated, as it is inherently deadlock-prone. If the target thread holds a lock on the monitor protecting a critical system resource when it is suspended, no thread can access this resource until the target thread is resumed. If the thread that would resume the target thread attempts to lock this monitor prior to calling `resume`, deadlock results. Such deadlocks typically manifest themselves as "frozen" processes. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?.

java.lang.ThreadGroup.allowThreadSuspension​(boolean) | The definition of this call depends on `ThreadGroup.suspend()`, which is deprecated. Further, the behavior of this call was never specified.
java.lang.ThreadGroup.resume() | This method is used solely in conjunction with `Thread.suspend` and `ThreadGroup.suspend`, both of which have been deprecated, as they are inherently deadlock-prone. See `Thread.suspend()` for details.
java.lang.ThreadGroup.stop() | This method is inherently unsafe. See `Thread.stop()` for details.
java.lang.ThreadGroup.suspend() | This method is inherently deadlock-prone. See `Thread.suspend()` for details.
java.math.BigDecimal.divide​(BigDecimal, int, int) | The method `BigDecimal.divide(BigDecimal, int, RoundingMode)` should be used in preference to this legacy method.
java.math.BigDecimal.setScale​(int, int) | The method `BigDecimal.setScale(int, RoundingMode)` should be used in preference to this legacy method.
java.net.DatagramSocketImpl.getTTL() | use getTimeToLive instead.
java.net.DatagramSocketImpl.setTTL​(byte) | use setTimeToLive instead.
java.net.MulticastSocket.getTTL() | use the getTimeToLive method instead, which returns an int instead of a byte.
java.net.MulticastSocket.send​(DatagramPacket, byte) | Use the following code or its equivalent instead: ...... int ttl = mcastSocket.getTimeToLive(); mcastSocket.setTimeToLive(newttl); mcastSocket.send(p); mcastSocket.setTimeToLive(ttl); ......
java.net.MulticastSocket.setTTL​(byte) | use the setTimeToLive method instead, which uses int instead of byte as the type for ttl.
java.net.URLConnection.getDefaultRequestProperty​(String) | The instance specific getRequestProperty method should be used after an appropriate instance of URLConnection is obtained.
java.net.URLConnection.setDefaultRequestProperty​(String, String) | The instance specific setRequestProperty method should be used after an appropriate instance of URLConnection is obtained. Invoking this method will have no effect.
java.net.URLDecoder.decode​(String) | The resulting string may vary depending on the platform's default encoding. Instead, use the decode(String,String) method to specify the encoding.
java.net.URLEncoder.encode​(String) | The resulting string may vary depending on the platform's default encoding. Instead, use the encode(String,String) method to specify the encoding.
java.net.URLStreamHandler.setURL​(URL, String, String, int, String, String) | Use setURL(URL, String, String, int, String, String, String, String);
java.rmi.dgc.VMID.isUnique() |
java.rmi.registry.RegistryHandler.registryImpl​(int) | no replacement. As of the Java 2 platform v1.2, RMI no longer uses the `RegistryHandler` to obtain the registry's implementation.
java.rmi.registry.RegistryHandler.registryStub​(String, int) | no replacement. As of the Java 2 platform v1.2, RMI no longer uses the `RegistryHandler` to obtain the registry's stub.
java.rmi.server.LoaderHandler.getSecurityContext​(ClassLoader) | no replacement
java.rmi.server.LoaderHandler.loadClass​(String) | no replacement
java.rmi.server.LogStream.getDefaultStream() | no replacement
java.rmi.server.LogStream.getOutputStream() | no replacement
java.rmi.server.LogStream.log​(String) | no replacement
java.rmi.server.LogStream.parseLevel​(String) | no replacement
java.rmi.server.LogStream.setDefaultStream​(PrintStream) | no replacement
java.rmi.server.LogStream.setOutputStream​(OutputStream) | no replacement
java.rmi.server.LogStream.toString() | no replacement
java.rmi.server.LogStream.write​(int) | no replacement
java.rmi.server.Operation.getOperation() | no replacement
java.rmi.server.Operation.toString() | no replacement
java.rmi.server.RemoteCall.done() | no replacement
java.rmi.server.RemoteCall.executeCall() | no replacement
java.rmi.server.RemoteCall.getInputStream() | no replacement
java.rmi.server.RemoteCall.getOutputStream() | no replacement
java.rmi.server.RemoteCall.getResultStream​(boolean) | no replacement
java.rmi.server.RemoteCall.releaseInputStream() | no replacement
java.rmi.server.RemoteCall.releaseOutputStream() | no replacement
java.rmi.server.RemoteRef.done​(RemoteCall) | 1.2 style stubs no longer use this method. Instead of using a sequence of method calls to the remote reference (`newCall`, `invoke`, and `done`), a stub uses a single method, `invoke(Remote, Method, Object[], int)`, on the remote reference to carry out parameter marshalling, remote method executing and unmarshalling of the return value.
java.rmi.server.RemoteRef.invoke​(RemoteCall) | 1.2 style stubs no longer use this method. Instead of using a sequence of method calls to the remote reference (`newCall`, `invoke`, and `done`), a stub uses a single method, `invoke(Remote, Method, Object[], int)`, on the remote reference to carry out parameter marshalling, remote method executing and unmarshalling of the return value.

java.rmi.server.RemoteRef.newCall​(RemoteObject, Operation[], int, long)

1.2 style stubs no longer use this method. Instead of using a sequence of method calls on the stub's the remote reference (`newCall`, `invoke`, and `done`), a stub uses a single method, `invoke(Remote, Method, Object[], int)`, on the remote reference to carry out parameter marshalling, remote method executing and unmarshalling of the return value.

java.rmi.server.RemoteStub.setRef​(RemoteStub, RemoteRef) | No replacement. The `setRef` method was intended for setting the remote reference of a remote stub. This is unnecessary, since `RemoteStub`s can be created and initialized with a remote reference through use of the `RemoteStub(RemoteRef)` constructor.
java.rmi.server.RMIClassLoader.getSecurityContext​(ClassLoader) | no replacement. As of the Java 2 platform v1.2, RMI no longer uses this method to obtain a class loader's security context.
java.rmi.server.RMIClassLoader.loadClass​(String) | replaced by `loadClass(String,String)` method
java.rmi.server.Skeleton.dispatch​(Remote, RemoteCall, int, long) | no replacement
java.rmi.server.Skeleton.getOperations() | no replacement
java.rmi.server.UnicastRemoteObject.exportObject​(Remote) | This method is deprecated because it supports only static stubs. Use `exportObject(Remote, port)` or `exportObject(Remote, port, csf, ssf)` instead.
java.security.Provider.getVersion() | use `Provider.getVersionStr()` instead.

java.security.Security.getAlgorithmProperty​(String, String)

This method used to return the value of a proprietary property in the master file of the "SUN" Cryptographic Service Provider in order to determine how to parse algorithm-specific parameters. Use the new provider-based and algorithm-independent `AlgorithmParameters` and `KeyFactory` engine classes (introduced in the J2SE version 1.2 platform) instead.

java.security.Signature.getParameter​(String) |
java.security.Signature.setParameter​(String, Object) | Use `setParameter`.
java.security.SignatureSpi.engineGetParameter​(String) |
java.security.SignatureSpi.engineSetParameter​(String, Object) | Replaced by `engineSetParameter`.
java.sql.CallableStatement.getBigDecimal​(int, int) | use `getBigDecimal(int parameterIndex)` or `getBigDecimal(String parameterName)`
java.sql.Date.getHours() |
java.sql.Date.getMinutes() |
java.sql.Date.getSeconds() |
java.sql.Date.setHours​(int) |
java.sql.Date.setMinutes​(int) |
java.sql.Date.setSeconds​(int) |
java.sql.DriverManager.getLogStream() | Use `getLogWriter`
java.sql.DriverManager.setLogStream​(PrintStream) | Use `setLogWriter`
java.sql.PreparedStatement.setUnicodeStream​(int, InputStream, int) | Use `setCharacterStream`
java.sql.ResultSet.getBigDecimal​(int, int) | Use `getBigDecimal(int columnIndex)` or `getBigDecimal(String columnLabel)`
java.sql.ResultSet.getUnicodeStream​(int) | use `getCharacterStream` in place of `getUnicodeStream`
java.sql.Time.getDate() |
java.sql.Time.getDay() |
java.sql.Time.getMonth() |
java.sql.Time.getYear() |
java.sql.Time.setDate​(int) |
java.sql.Time.setMonth​(int) |
java.sql.Time.setYear​(int) |

java.util.concurrent.atomic.AtomicBoolean.weakCompareAndSet​(boolean, boolean)

This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicBoolean.compareAndExchange(boolean, boolean)` and `AtomicBoolean.compareAndSet(boolean, boolean)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicBoolean.weakCompareAndSetPlain(boolean, boolean)` be used instead.

java.util.concurrent.atomic.AtomicInteger.weakCompareAndSet​(int, int)

This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicInteger.compareAndExchange(int, int)` and `AtomicInteger.compareAndSet(int, int)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicInteger.weakCompareAndSetPlain(int, int)` be used instead.

java.util.concurrent.atomic.AtomicIntegerArray.weakCompareAndSet​(int, int, int)

This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicIntegerArray.compareAndExchange(int, int, int)` and `AtomicIntegerArray.compareAndSet(int, int, int)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicIntegerArray.weakCompareAndSetPlain(int, int, int)` be used instead.

java.util.concurrent.atomic.AtomicLong.weakCompareAndSet​(long, long)

This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicLong.compareAndExchange(long, long)` and `AtomicLong.compareAndSet(long, long)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicLong.weakCompareAndSetPlain(long, long)` be used instead.

java.util.concurrent.atomic.AtomicLongArray.weakCompareAndSet​(int, long, long)

This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicLongArray.compareAndExchange(int, long, long)` and `AtomicLongArray.compareAndSet(int, long, long)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicLongArray.weakCompareAndSetPlain(int, long, long)` be used instead.

java.util.concurrent.atomic.AtomicReference.weakCompareAndSet​(V, V)

This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicReference.compareAndExchange(V, V)` and `AtomicReference.compareAndSet(V, V)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicReference.weakCompareAndSetPlain(V, V)` be used instead.

java.util.concurrent.atomic.AtomicReferenceArray.weakCompareAndSet​(int, E, E)

This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicReferenceArray.compareAndExchange(int, E, E)` and `AtomicReferenceArray.compareAndSet(int, E, E)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicReferenceArray.weakCompareAndSetPlain(int, E, E)` be used instead.

java.util.concurrent.ThreadPoolExecutor.finalize() |
java.util.Date.getDate() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.DAY_OF_MONTH)`.
java.util.Date.getDay() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.DAY_OF_WEEK)`.
java.util.Date.getHours() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.HOUR_OF_DAY)`.
java.util.Date.getMinutes() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.MINUTE)`.
java.util.Date.getMonth() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.MONTH)`.
java.util.Date.getSeconds() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.SECOND)`.
java.util.Date.getTimezoneOffset() | As of JDK version 1.1, replaced by `-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)`.
java.util.Date.getYear() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.YEAR) - 1900`.
java.util.Date.parse​(String) | As of JDK version 1.1, replaced by `DateFormat.parse(String s)`.
java.util.Date.setDate​(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.DAY_OF_MONTH, int date)`.
java.util.Date.setHours​(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.HOUR_OF_DAY, int hours)`.
java.util.Date.setMinutes​(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.MINUTE, int minutes)`.
java.util.Date.setMonth​(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.MONTH, int month)`.
java.util.Date.setSeconds​(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.SECOND, int seconds)`.
java.util.Date.setYear​(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.YEAR, year + 1900)`.
java.util.Date.toGMTString() | As of JDK version 1.1, replaced by `DateFormat.format(Date date)`, using a GMT `TimeZone`.
java.util.Date.toLocaleString() | As of JDK version 1.1, replaced by `DateFormat.format(Date date)`.
java.util.Date.UTC​(int, int, int, int, int, int) | As of JDK version 1.1, replaced by `Calendar.set(year + 1900, month, date, hrs, min, sec)` or `GregorianCalendar(year + 1900, month, date, hrs, min, sec)`, using a UTC `TimeZone`, followed by `Calendar.getTime().getTime()`.
java.util.logging.Logger.logrb​(Level, String, String, String, String) | Use `Logger.logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.util.ResourceBundle, java.lang.String, java.lang.Object...)` instead.
java.util.logging.LogManager.getLoggingMXBean() | `java.util.logging.LoggingMXBean` is deprecated and replaced with `java.lang.management.PlatformLoggingMXBean`. Use `ManagementFactory.getPlatformMXBean`(PlatformLoggingMXBean.class) instead.
java.util.logging.LogRecord.setMillis​(long) | LogRecord maintains timestamps with nanosecond resolution, using `Instant` values. For this reason, `setInstant()` should be used in preference to `setMillis()`.
java.util.Properties.save​(OutputStream, String) | This method does not throw an IOException if an I/O error occurs while saving the property list. The preferred way to save a properties list is via the `store(OutputStream out, String comments)` method or the `storeToXML(OutputStream os, String comment)` method.

javax.imageio.spi.ServiceRegistry.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

javax.imageio.stream.FileCacheImageInputStream.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

javax.imageio.stream.FileImageInputStream.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

javax.imageio.stream.FileImageOutputStream.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

javax.imageio.stream.ImageInputStreamImpl.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

javax.imageio.stream.MemoryCacheImageInputStream.finalize()

The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.

javax.management.AttributeValueExp.setMBeanServer​(MBeanServer) | This method has no effect. The MBean Server used to obtain an attribute value is `QueryEval.getMBeanServer()`.
javax.management.MBeanServer.deserialize​(ObjectName, byte[]) | Use `getClassLoaderFor` to obtain the appropriate class loader for deserialization.
javax.management.monitor.CounterMonitor.getDerivedGauge() | As of JMX 1.2, replaced by `CounterMonitor.getDerivedGauge(ObjectName)`
javax.management.monitor.CounterMonitor.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `CounterMonitor.getDerivedGaugeTimeStamp(ObjectName)`
javax.management.monitor.CounterMonitor.getThreshold() | As of JMX 1.2, replaced by `CounterMonitor.getThreshold(ObjectName)`
javax.management.monitor.CounterMonitor.setThreshold​(Number) | As of JMX 1.2, replaced by `CounterMonitor.setInitThreshold(java.lang.Number)`
javax.management.monitor.CounterMonitorMBean.getDerivedGauge() | As of JMX 1.2, replaced by `CounterMonitorMBean.getDerivedGauge(ObjectName)`
javax.management.monitor.CounterMonitorMBean.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `CounterMonitorMBean.getDerivedGaugeTimeStamp(ObjectName)`
javax.management.monitor.CounterMonitorMBean.getThreshold() | As of JMX 1.2, replaced by `CounterMonitorMBean.getThreshold(ObjectName)`
javax.management.monitor.CounterMonitorMBean.setThreshold​(Number) | As of JMX 1.2, replaced by `CounterMonitorMBean.setInitThreshold(java.lang.Number)`
javax.management.monitor.GaugeMonitor.getDerivedGauge() | As of JMX 1.2, replaced by `GaugeMonitor.getDerivedGauge(ObjectName)`
javax.management.monitor.GaugeMonitor.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `GaugeMonitor.getDerivedGaugeTimeStamp(ObjectName)`
javax.management.monitor.GaugeMonitorMBean.getDerivedGauge() | As of JMX 1.2, replaced by `GaugeMonitorMBean.getDerivedGauge(ObjectName)`
javax.management.monitor.GaugeMonitorMBean.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `GaugeMonitorMBean.getDerivedGaugeTimeStamp(ObjectName)`
javax.management.monitor.Monitor.getObservedObject() | As of JMX 1.2, replaced by `Monitor.getObservedObjects()`
javax.management.monitor.Monitor.setObservedObject​(ObjectName) | As of JMX 1.2, replaced by `Monitor.addObservedObject(javax.management.ObjectName)`
javax.management.monitor.MonitorMBean.getObservedObject() | As of JMX 1.2, replaced by `MonitorMBean.getObservedObjects()`
javax.management.monitor.MonitorMBean.setObservedObject​(ObjectName) | As of JMX 1.2, replaced by `MonitorMBean.addObservedObject(javax.management.ObjectName)`
javax.management.monitor.StringMonitor.getDerivedGauge() | As of JMX 1.2, replaced by `StringMonitor.getDerivedGauge(ObjectName)`
javax.management.monitor.StringMonitor.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `StringMonitor.getDerivedGaugeTimeStamp(ObjectName)`
javax.management.monitor.StringMonitorMBean.getDerivedGauge() | As of JMX 1.2, replaced by `StringMonitorMBean.getDerivedGauge(ObjectName)`
javax.management.monitor.StringMonitorMBean.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `StringMonitorMBean.getDerivedGaugeTimeStamp(ObjectName)`
javax.management.StringValueExp.setMBeanServer​(MBeanServer) |
javax.management.ValueExp.setMBeanServer​(MBeanServer) | This method is not needed because a `ValueExp` can access the MBean server in which it is being evaluated by using `QueryEval.getMBeanServer()`.
javax.net.ssl.HandshakeCompletedEvent.getPeerCertificateChain() | The `HandshakeCompletedEvent.getPeerCertificates()` method that returns an array of `java.security.cert.Certificate` should be used instead.
javax.net.ssl.SSLSession.getPeerCertificateChain() | The `SSLSession.getPeerCertificates()` method that returns an array of `java.security.cert.Certificate` should be used instead.
javax.sql.rowset.BaseRowSet.setUnicodeStream​(int, InputStream, int) | getCharacterStream should be used in its place
javax.swing.AbstractButton.getLabel() | - Replaced by `getText`
javax.swing.AbstractButton.setLabel​(String) | - Replaced by `setText(text)`
javax.swing.FocusManager.disableSwingFocusManager() | as of 1.4, replaced by `KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy)`
javax.swing.FocusManager.isFocusManagerEnabled() | As of 1.4, replaced by `KeyboardFocusManager.getDefaultFocusTraversalPolicy()`
javax.swing.InputVerifier.shouldYieldFocus​(JComponent) | use `InputVerifier.shouldYieldFocus(JComponent, JComponent)` instead.
javax.swing.JComponent.disable() | As of JDK version 1.1, replaced by `java.awt.Component.setEnabled(boolean)`.
javax.swing.JComponent.enable() | As of JDK version 1.1, replaced by `java.awt.Component.setEnabled(boolean)`.
javax.swing.JComponent.getNextFocusableComponent() | As of 1.4, replaced by `FocusTraversalPolicy`.
javax.swing.JComponent.hide() |
javax.swing.JComponent.isManagingFocus() | As of 1.4, replaced by `Component.setFocusTraversalKeys(int, Set)` and `Container.setFocusCycleRoot(boolean)`.
javax.swing.JComponent.requestDefaultFocus() | As of 1.4, replaced by `FocusTraversalPolicy.getDefaultComponent(Container).requestFocus()`
javax.swing.JComponent.reshape​(int, int, int, int) | As of JDK 5, replaced by `Component.setBounds(int, int, int, int)`. Moves and resizes this component.
javax.swing.JComponent.setNextFocusableComponent​(Component) | As of 1.4, replaced by `FocusTraversalPolicy`
javax.swing.JInternalFrame.getMenuBar() | As of Swing version 1.0.3, replaced by `getJMenuBar()`.
javax.swing.JInternalFrame.setMenuBar​(JMenuBar) | As of Swing version 1.0.3 replaced by `setJMenuBar(JMenuBar m)`.
javax.swing.JList.getSelectedValues() | As of JDK 1.7, replaced by `JList.getSelectedValuesList()`
javax.swing.JMenuBar.getComponentAtIndex​(int) | replaced by `getComponent(int i)`
javax.swing.JPasswordField.getText() | As of Java 2 platform v1.2, replaced by `getPassword`.
javax.swing.JPopupMenu.getComponentAtIndex​(int) | replaced by `Container.getComponent(int)`
javax.swing.JRootPane.getMenuBar() | As of Swing version 1.0.3 replaced by `getJMenuBar()`.
javax.swing.JRootPane.setMenuBar​(JMenuBar) | As of Swing version 1.0.3 replaced by `setJMenuBar(JMenuBar menu)`.
javax.swing.JTable.createScrollPaneForTable​(JTable) | As of Swing version 1.0.2, replaced by `new JScrollPane(aTable)`.
javax.swing.JTable.sizeColumnsToFit​(boolean) | As of Swing version 1.0.3, replaced by `doLayout()`.
javax.swing.JViewport.isBackingStoreEnabled() | As of Java 2 platform v1.3, replaced by `getScrollMode()`.
javax.swing.JViewport.setBackingStoreEnabled​(boolean) | As of Java 2 platform v1.3, replaced by `setScrollMode()`.
javax.swing.KeyStroke.getKeyStroke​(char, boolean) | use getKeyStroke(char)
javax.swing.plaf.basic.BasicSplitPaneUI.createKeyboardDownRightListener() | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.createKeyboardEndListener() | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.createKeyboardHomeListener() | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.createKeyboardResizeToggleListener() | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.createKeyboardUpLeftListener() | As of Java 2 platform v1.3.
javax.swing.plaf.basic.BasicSplitPaneUI.getDividerBorderSize() | As of Java 2 platform v1.3, instead set the border on the divider.
javax.swing.plaf.basic.BasicTextUI.modelToView​(JTextComponent, int) | replaced by `TextUI.modelToView2D(JTextComponent, int, Position.Bias)`
javax.swing.plaf.basic.BasicTextUI.viewToModel​(JTextComponent, Point) | replaced by `TextUI.viewToModel2D(JTextComponent, Point2D, Position.Bias[])`
javax.swing.plaf.metal.MetalComboBoxUI.editablePropertyChanged​(PropertyChangeEvent) | As of Java 2 platform v1.4.
javax.swing.plaf.metal.MetalComboBoxUI.removeListeners() | As of Java 2 platform v1.4.
javax.swing.plaf.metal.MetalScrollPaneUI.uninstallListeners​(JScrollPane) | - Replaced by `BasicScrollPaneUI.uninstallListeners(JComponent)`
javax.swing.plaf.multi.MultiTextUI.modelToView​(JTextComponent, int) | replaced by `TextUI.modelToView2D(JTextComponent, int, Position.Bias)`
javax.swing.plaf.multi.MultiTextUI.viewToModel​(JTextComponent, Point) |
javax.swing.plaf.TextUI.getToolTipText​(JTextComponent, Point) | replaced by `TextUI.getToolTipText2D(JTextComponent, Point2D)`
javax.swing.plaf.TextUI.modelToView​(JTextComponent, int) | replaced by `TextUI.modelToView2D(JTextComponent, int, Position.Bias)`
javax.swing.plaf.TextUI.viewToModel​(JTextComponent, Point) | replaced by `TextUI.viewToModel2D(JTextComponent, Point2D, Position.Bias[])`
javax.swing.RepaintManager.addDirtyRegion​(Applet, int, int, int, int) | The Applet API is deprecated. See the java.applet package documentation for further information.
javax.swing.ScrollPaneLayout.getViewportBorderBounds​(JScrollPane) | As of JDK version Swing1.1 replaced by `JScrollPane.getViewportBorderBounds()`.
javax.swing.SwingUtilities.findFocusOwner​(Component) | As of 1.4, replaced by `KeyboardFocusManager.getFocusOwner()`.
javax.swing.table.TableColumn.disableResizedPosting() | as of Java 2 platform v1.3
javax.swing.table.TableColumn.enableResizedPosting() | as of Java 2 platform v1.3
javax.swing.text.html.HTMLEditorKit.InsertHTMLTextAction.insertAtBoundry​(JEditorPane, HTMLDocument, int, Element, String, HTML.Tag, HTML.Tag) | As of Java 2 platform v1.3, use insertAtBoundary
javax.swing.text.JTextComponent.modelToView​(int) | replaced by `JTextComponent.modelToView2D(int)`
javax.swing.text.JTextComponent.viewToModel​(Point) | replaced by `JTextComponent.viewToModel2D(Point2D)`
javax.swing.text.LabelView.getFontMetrics() | FontMetrics are not used for glyph rendering when running in the JDK.
javax.swing.text.PasswordView.drawEchoCharacter​(Graphics, int, int, char) | replaced by `PasswordView.drawEchoCharacter(Graphics2D, float, float, char)`
javax.swing.text.PasswordView.drawSelectedText​(Graphics, int, int, int, int) | replaced by `PlainView.drawSelectedText(Graphics2D, float, float, int, int)`
javax.swing.text.PasswordView.drawUnselectedText​(Graphics, int, int, int, int) | replaced by `PlainView.drawUnselectedText(Graphics2D, float, float, int, int)`
javax.swing.text.PlainView.drawLine​(int, Graphics, int, int) | replaced by `PlainView.drawLine(int, Graphics2D, float, float)`
javax.swing.text.PlainView.drawSelectedText​(Graphics, int, int, int, int) | replaced by `PlainView.drawSelectedText(Graphics2D, float, float, int, int)`
javax.swing.text.PlainView.drawUnselectedText​(Graphics, int, int, int, int) | replaced by `PlainView.drawUnselectedText(Graphics2D, float, float, int, int)`
javax.swing.text.TableView.createTableCell​(Element) | Table cells can now be any arbitrary View implementation and should be produced by the ViewFactory rather than the table.
javax.swing.text.Utilities.drawTabbedText​(Segment, int, int, Graphics, TabExpander, int) | replaced by `Utilities.drawTabbedText(Segment, float, float, Graphics2D, TabExpander, int)`
javax.swing.text.Utilities.getBreakLocation​(Segment, FontMetrics, int, int, TabExpander, int) | replaced by `Utilities.getBreakLocation(Segment, FontMetrics, float, float, TabExpander, int)`
javax.swing.text.Utilities.getPositionAbove​(JTextComponent, int, int) | replaced by `Utilities.getPositionAbove(JTextComponent, int, float)`
javax.swing.text.Utilities.getPositionBelow​(JTextComponent, int, int) | replaced by `Utilities.getPositionBelow(JTextComponent, int, float)`
javax.swing.text.Utilities.getTabbedTextOffset​(Segment, FontMetrics, int, int, TabExpander, int) | replaced by `Utilities.getTabbedTextOffset(Segment, FontMetrics, float, float, TabExpander, int, boolean)`
javax.swing.text.Utilities.getTabbedTextWidth​(Segment, FontMetrics, int, TabExpander, int) | replaced by `Utilities.getTabbedTextWidth(Segment, FontMetrics, float, TabExpander, int)`
javax.swing.text.View.modelToView​(int, Shape) |
javax.swing.text.View.viewToModel​(float, float, Shape) |
javax.swing.text.WrappedPlainView.drawLine​(int, int, Graphics, int, int) | replaced by `WrappedPlainView.drawLine(int, int, Graphics2D, float, float)`
javax.swing.text.WrappedPlainView.drawSelectedText​(Graphics, int, int, int, int) | replaced by `WrappedPlainView.drawSelectedText(Graphics2D, float, float, int, int)`
javax.swing.text.WrappedPlainView.drawUnselectedText​(Graphics, int, int, int, int) | replaced by `WrappedPlainView.drawUnselectedText(Graphics2D, float, float, int, int)`
javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange​(Vector<?>, TreePath) | As of JDK version 1.7

javax.tools.StandardJavaFileManager.getJavaFileObjectsFromPaths​(Iterable<? extends Path>)

use `StandardJavaFileManager.getJavaFileObjectsFromPaths(Collection)` instead, to prevent the possibility of accidentally calling the method with a single `Path` as such an argument. Although `Path` implements `Iterable<Path>`, it would almost never be correct to pass a single `Path` and have it be treated as an `Iterable` of its components.

javax.tools.ToolProvider.getSystemToolClassLoader() | This method is subject to removal in a future version of Java SE. Use the `system tool provider` or `service loader` mechanisms to locate system tools as well as user-installed tools.
javax.xml.stream.XMLEventFactory.newInstance​(String, ClassLoader) | This method has been deprecated to maintain API consistency. All newInstance methods have been replaced with corresponding newFactory methods. The replacement `XMLEventFactory.newFactory(java.lang.String, java.lang.ClassLoader)` method defines no changes in behavior.
javax.xml.stream.XMLInputFactory.newInstance​(String, ClassLoader) | This method has been deprecated to maintain API consistency. All newInstance methods have been replaced with corresponding newFactory methods. The replacement `XMLInputFactory.newFactory(java.lang.String, java.lang.ClassLoader)` method defines no changes in behavior.
javax.xml.stream.XMLOutputFactory.newInstance​(String, ClassLoader) | This method has been deprecated because it returns an instance of XMLInputFactory, which is of the wrong class. Use the new method `XMLOutputFactory.newFactory(java.lang.String, java.lang.ClassLoader)` instead.
jdk.nashorn.api.scripting.AbstractJSObject.getDefaultValue​(JSObject, Class<?>) | use `JSObject.getDefaultValue(Class)` instead.
jdk.nashorn.api.scripting.AbstractJSObject.toNumber() | use `JSObject.getDefaultValue(Class)` with `Number` hint instead.
jdk.nashorn.api.scripting.JSObject.toNumber() | use `JSObject.getDefaultValue(Class)` with `Number` hint instead.
jdk.nashorn.api.scripting.ScriptObjectMirror.toNumber() |
netscape.javascript.JSObject.getWindow​(Applet) | The Applet API is deprecated, no replacement. See the java.applet package documentation for further information.
org.ietf.jgss.GSSContext.acceptSecContext​(InputStream, OutputStream) | The stream-based methods have been removed from RFC 8353. Use `GSSContext.acceptSecContext(byte[], int, int)` instead.
org.ietf.jgss.GSSContext.getMIC​(InputStream, OutputStream, MessageProp) | The stream-based methods have been removed from RFC 8353. Use `GSSContext.getMIC(byte[], int, int, MessageProp)` instead.
org.ietf.jgss.GSSContext.initSecContext​(InputStream, OutputStream) | The stream-based methods have been removed from RFC 8353. Use `GSSContext.initSecContext(byte[], int, int)` instead.
org.ietf.jgss.GSSContext.unwrap​(InputStream, OutputStream, MessageProp) | The stream-based methods have been removed from RFC 8353. Use `GSSContext.unwrap(byte[], int, int, MessageProp)` instead.
org.ietf.jgss.GSSContext.verifyMIC​(InputStream, InputStream, MessageProp) | The stream-based methods have been removed from RFC 8353. Use `GSSContext.verifyMIC(byte[], int, int, byte[], int, int, MessageProp)` instead.
org.ietf.jgss.GSSContext.wrap​(InputStream, OutputStream, MessageProp) | The stream-based methods have been removed from RFC 8353. Use `GSSContext.wrap(byte[], int, int, MessageProp)` instead.

Constructors
Constructor | Description
--- | ---
java.awt.AWTEvent​(Event) | It is recommended that `AWTEvent(Object, int)` be used instead
java.awt.event.KeyEvent​(Component, int, long, int, int) | as of JDK1.1; use `KeyEvent(Component, int, long, int, int, char)` instead

java.io.StreamTokenizer​(InputStream)

As of JDK version 1.1, the preferred way to tokenize an input stream is to convert it into a character stream, for example:

>        Reader r = new BufferedReader(new InputStreamReader(is));
>        StreamTokenizer st = new StreamTokenizer(r);

java.lang.Boolean​(boolean) | It is rarely appropriate to use this constructor. The static factory `Boolean.valueOf(boolean)` is generally a better choice, as it is likely to yield significantly better space and time performance. Also consider using the final fields `Boolean.TRUE` and `Boolean.FALSE` if possible.
java.lang.Byte​(byte) | It is rarely appropriate to use this constructor. The static factory `Byte.valueOf(byte)` is generally a better choice, as it is likely to yield significantly better space and time performance.
java.lang.Character​(char) | It is rarely appropriate to use this constructor. The static factory `Character.valueOf(char)` is generally a better choice, as it is likely to yield significantly better space and time performance.
java.lang.Double​(double) | It is rarely appropriate to use this constructor. The static factory `Double.valueOf(double)` is generally a better choice, as it is likely to yield significantly better space and time performance.
java.lang.Float​(float) | It is rarely appropriate to use this constructor. The static factory `Float.valueOf(float)` is generally a better choice, as it is likely to yield significantly better space and time performance.
java.lang.Integer​(int) | It is rarely appropriate to use this constructor. The static factory `Integer.valueOf(int)` is generally a better choice, as it is likely to yield significantly better space and time performance.
java.lang.Long​(long) | It is rarely appropriate to use this constructor. The static factory `Long.valueOf(long)` is generally a better choice, as it is likely to yield significantly better space and time performance.
java.lang.Short​(short) | It is rarely appropriate to use this constructor. The static factory `Short.valueOf(short)` is generally a better choice, as it is likely to yield significantly better space and time performance.
java.lang.String​(byte[], int, int, int) | This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via the `String` constructors that take a `Charset`, charset name, or that use the platform's default charset.
java.net.Socket​(String, int, boolean) | Use DatagramSocket instead for UDP transport.
java.rmi.RMISecurityException​(String) | no replacement
java.rmi.server.Operation​(String) | no replacement
java.rmi.server.SkeletonMismatchException​(String) | no replacement
java.rmi.ServerRuntimeException​(String, Exception) | no replacement
java.security.AuthProvider​(String, double, String) | use `AuthProvider(String, String, String)` instead.
java.security.Provider​(String, double, String) | use `Provider(String, String, String)` instead.
java.sql.Date​(int, int, int) | instead use the constructor `Date(long date)`
java.sql.Time​(int, int, int) | Use the constructor that takes a milliseconds value in place of this constructor
java.sql.Timestamp​(int, int, int, int, int, int, int) | instead use the constructor `Timestamp(long millis)`
java.util.Date​(int, int, int) | As of JDK version 1.1, replaced by `Calendar.set(year + 1900, month, date)` or `GregorianCalendar(year + 1900, month, date)`.
javax.lang.model.util.AbstractAnnotationValueVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.AbstractAnnotationValueVisitor7() | Release 7 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.AbstractElementVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.AbstractElementVisitor7() | Release 7 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.AbstractTypeVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.AbstractTypeVisitor7() | Release 7 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.ElementKindVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.ElementKindVisitor7() | Release 7 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.ElementScanner6() | Release 6 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.ElementScanner7() | Release 7 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.SimpleAnnotationValueVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.SimpleAnnotationValueVisitor7() | Release 7 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.SimpleElementVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.SimpleElementVisitor7() | Release 7 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.SimpleTypeVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.SimpleTypeVisitor7() | Release 7 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.TypeKindVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
javax.lang.model.util.TypeKindVisitor7() | Release 7 is obsolete; update to a visitor for a newer release level.
javax.management.AttributeValueExp() | An instance created with this constructor cannot be used in a query.

Enum Constants
Enum Constant | Description
--- | ---
com.sun.security.jgss.InquireType.KRB5_GET_SESSION_KEY | as of 9, replaced by `InquireType.KRB5_GET_SESSION_KEY_EX` which returns an instance of `EncryptionKey` that implements the `SecretKey` interface and has similar methods with `KerberosKey`.
com.sun.source.tree.Tree.Kind.SWITCH_EXPRESSION | This enum constant is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
com.sun.source.tree.Tree.Kind.YIELD | This enum constant is modeling yield statement, which are part of a preview feature and may be removed if the preview feature is removed.