Java 用等号或 == 比较 2 个整数?

Java Compare 2 integers with equals or ==?

我对 Java 非常陌生,我想知道如何比较 2 个整数?我知道 == 完成了工作..但是等于呢?这可以比较 2 个整数吗? (当我说整数时,我的意思是 "int" 而不是 "Integer")。 我的代码是:

import java.lang.*;
import java.util.Scanner;
//i read 2 integers the first_int and second_int
//Code above
if(first_int.equals(second_int)){
//do smth
}
//Other Code

但由于某种原因这不起作用..我的意思是 Netbeans 给我一个错误:"int cannot be dereferenced" 为什么?

int 是原语。您可以像

这样使用包装器 Integer
Integer first_int = 1;
Integer second_int = 1;
if(first_int.equals(second_int)){ // <-- Integer is a wrapper.

或者你可以按值比较(因为它是原始类型),比如

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 说(部分)

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).

如果你想比较

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

由于 int 是原始类型,因此您不能使用 equals。 你可以做什么 使用 Interger 作为包装器

 void IntEquals(Integer original, Integer reverse) {
        Integer origianlNumber = original;
        Integer reverseNumber = reverse;

        if (origianlNumber.equals(reverse)) {
            System.out.println("Equals ");
        } else {
            System.out.println("Not Equal");
        }

int 是原始的 type.This 本身具有值,但 Integer 是对象并且它内部具有原始 int 类型来保存值。 您可以通过使用包装器 Integer 执行更多操作,例如比较、longValue、..more。

== 表示整数 will not work the rang above -128 and 127。整数仅在内存中保留此范围内的缓存值。超过这个范围你必须使用 equals() 方法来检查 Integer wrapper class。

equals() 方法将检查存储在引用位置的值。