How do I use @Override annotation?

We use the @Override annotation as part of method declaration. The @Override annotation is used when we want to override methods and want to make sure have overridden the correct methods.

As the annotation name we know that there should be the same method signature in the parent class to override. That means using this annotation let us know earlier when we are mistakenly override method that doesn’t exist in the base class.

package org.kodejava.basic;

public class OverrideExample {
    private String field;
    private String attribute;

    @Override
    public int hashCode() {
        return field.hashCode() + attribute.hashCode();
    }

    @Override
    public String toString() {
        return field + " " + attribute;
    }
}

How do I mark method as @deprecated?

To mark a method as deprecated we can use the JavaDoc @deprecated tag. This is what we did since the beginning of Java. But when a new metadata support introduced to the Java language we can also use annotation. The annotation for marking method as deprecated is @Depreated.

The difference between these two that the @deprecated is place in the JavaDoc comment block while the @Deprecated is placed as a source code element.

package org.kodejava.basic;

import java.util.Date;
import java.util.Calendar;

public class DeprecatedExample {
    public static void main(String[] args) {
        DeprecatedExample de = new DeprecatedExample();
        de.getDate();
        System.out.println(de.getMonthFromDate());
    }

    /**
     * Get current system date.
     *
     * @return current system date.
     * @deprecated This method will be removed in the near future.
     */
    @Deprecated
    public Date getDate() {
        return new Date();
    }

    public int getMonthFromDate() {
        return Calendar.getInstance().get(Calendar.MONTH);
    }
}

How do I do bitwise exclusive OR operation?

package org.kodejava.lang;

public class XorDemo {
    public static void main(String[] args) {
        int numberA = 16;
        int numberB = 32;

        // Operator ^ is used for doing bitwise exclusive OR operation
        int result = numberA ^ numberB;

        System.out.println(numberA + " ^ " + numberB + " = " + result);

        // Print the result in binary format
        System.out.println(Integer.toBinaryString(numberA) +
                " ^ " + Integer.toBinaryString(numberB) +
                " = " + Integer.toBinaryString(result));
    }
}

The program prints the following output:

16 ^ 32 = 48
10000 ^ 100000 = 110000

How do I do bitwise OR operation?

package org.kodejava.lang;

public class OrDemo {
    public static void main(String[] args) {
        int numberA = 16;
        int numberB = 4;

        // Operator "|" is used for doing bitwise OR operation
        int result = numberA | numberB;

        System.out.println(numberA + " | " + numberB + " = " + result);

        // Print the result in binary format
        System.out.println(Integer.toBinaryString(numberA) +
                " | " + Integer.toBinaryString(numberB) +
                " = " + Integer.toBinaryString(result));
    }
}

The result of the code snippet:

16 | 4 = 20
10000 | 100 = 10100

How do I do bitwise AND operation?

package org.kodejava.lang;

public class AndDemo {
    public static void main(String[] args) {
        int numberA = 16;
        int numberB = 16;

        // Operator "&"  is used for doing bitwise AND operation
        int result = numberA & numberB;

        System.out.println(numberA + " & " + numberB + " = " + result);

        // Print the result in binary format
        System.out.println(Integer.toBinaryString(numberA) +
                " & " + Integer.toBinaryString(numberB) +
                " = " + Integer.toBinaryString(result));
    }
}

The result of the code snippet:

16 & 16 = 16
10000 & 10000 = 10000