Java Compare 2 integers with equals or ==?

int is a primitive. You can use the wrapper Integer like

Integer first_int = 1;
Integer second_int = 1;
if(first_int.equals(second_int)){ // <-- Integer is a wrapper.

or you can compare by value (since it is a primitive type) like

int first_int = 1;
int second_int = 1;
if(first_int == second_int){ // <-- int is a primitive.

JLS-4.1. The Kinds of Types and Values says (in part)

There are two kinds of types in the Java programming language: primitive types (§4.2) and reference types (§4.3). There are, correspondingly, two kinds of data values that can be stored in variables, passed as arguments, returned by methods, and operated on: primitive values (§4.2) and reference values (§4.3).


If you want to compare between

1-two integer 
If(5==5)
2- char
If('m'=='M')
3 string
String word="word"
word.equals("word")

int is primitive type.This itself having value but Integer is object and it is having primitive int type inside to hold the value. You can do more operations like compare,longValue,..more by Using wrapper Integer.

== for Integer will not work the rang above -128 and 127. Integer hold cache value upto this range only in memory. More than this range you have to equals() method only to check Integer wrapper class.

equals() method will check the value stored in the reference location.