Java @Deprecated Annotation

In this quick article, we will discuss what is the use of @Deprecated annotation with examples.
From Oracle Java Doc: A program element annotated @Deprecated is one that programmers are discouraged from using, typically because it is dangerous, or because a better alternative exists. Compilers warn when a deprecated program element is used or overridden in non-deprecated code.
Let me put in a simple way, the @Deprecated annotation is used for informing the compiler that the particular method, class or field is deprecated and it should generate a warning when someone tries to use any of them.
The below diagram shows the internal implementation of @Deprecated annotation for your reference:
Let's demonstrates the usage @Deprecated annotation with examples.

@Deprecated annotation Example

class DeprecatedDemo {
    /* @deprecated This field is replaced by 
     * MAX_NUM field
    int num = 10;

    final int MAX_NUM = 10;

    /* @deprecated As of release 1.5, replaced 
     * by myMsg2(String msg, String msg2)
    public void myMsg() {
        System.out.println("This method is marked as deprecated");

    public void myMsg2(String msg, String msg2) {
        System.out.println(msg + msg2);

    public static void main(String a[]) {
        DeprecatedDemo obj = new DeprecatedDemo();
This method is marked as deprecated
In the above example, we have a deprecated method and a deprecated field. As you can see that we have marked both of them using @Deprecated annotation and in the comment section we have used @Deprecated Javadoc tag (for documentation purpose) to inform the programmer what to use in place of it.