Java int A不等于int B

Java int A不等于int B,java,Java,我想比较两个整数。第一个整数是从一个utf-8字节创建的,第二个整数是我要检查它是否等于的整数 int a = 106; int b = (int)byteArray[0]; //which actually equals 106 when you printstatement it 但是 (a==b) //always equals false int i = 0; While(b != i) { println(i); i++;} //eventually escapes the

我想比较两个整数。第一个整数是从一个utf-8字节创建的,第二个整数是我要检查它是否等于的整数

int a = 106;  
int b = (int)byteArray[0]; //which actually equals 106 when you printstatement it
但是

(a==b) //always equals false
int i = 0;    While(b != i) { println(i); i++;} //eventually escapes the loop and is true
基本体在创建时是否也被引用?为什么a永远不等于b,除非我一直数到106


有没有更好的方法来比较字节?因为我尝试了所有形式的变量,但它们都不起作用。

问题出在代码的其他地方(在您未显示的部分)。这就是为什么有人建议您提供

以下工作正常(即打印
true
):


很可能,在您的代码中,
byteArray[0]
不包含106。SSCCE会显示这一点。

问题在代码的其他地方(在您未显示的部分)。这就是为什么有人建议您提供

以下工作正常(即打印
true
):


很可能,在您的代码中,
byteArray[0]
不包含106。SSCCE会显示这一点。

创建一个我们可以编译和运行的SSCCE。我刚刚为此创建了一个SSCCE,它给出的输出为true<代码>字节b1=106;INTA=106;int b=(int)b1;System.out.println(a==b)。你能说它和我用的SSCCE有什么不同吗?那不是SSCCE。特别是,它不是自包含的。创建一个我们可以编译和运行的SSCCE。我刚刚为此创建了一个SSCCE,它给出的输出为true<代码>字节b1=106;INTA=106;int b=(int)b1;System.out.println(a==b)。你能说它和我用的SSCCE有什么不同吗?那不是SSCCE。特别是,它不是独立的。+1s/最有可能/就像2+2是4/一样确定它只是我代码的逻辑,后来我意外地重新分配了它。我以为我只是一时疯了。我想删除这个问题以避免尴尬,但我不知道怎么做,因为这是我的第一个问题。这就是为什么SSCES很有用:)+1s/最有可能/就像2+2是4/结果证明这只是我代码的逻辑,后来我意外地重新分配了它。我以为我只是一时疯了。为了避免尴尬,我想删除这个问题,但我不知道怎么做,因为这是我的第一个问题。这就是为什么SSCCE很有用:)
public class Test
{
    public static void main(String[] args) throws Exception
    {
        byte[] byteArray = new byte[] { 106 };
        int a = 106;  
        int b = (int) byteArray[0];
        if (a == b)
            System.out.println("true");
    }
}