文字比较和变量比较有什么区别

sra*_*ara 3 java

有什么区别

    Float f1 = 120.0f;
Float f2 = 120.00f;

if(f1==120.00f)
{
    System.out.println("Equal");
}
     else
    System.out.println("Not Equal");
Run Code Online (Sandbox Code Playgroud)

在这里我得到Equal作为输出和

    if(f1==f2)
{
    System.out.println("Equal");
}
    else
    System.out.println("Not Equal");
Run Code Online (Sandbox Code Playgroud)

在这里,我的输出不平等.文字比较和变量比较有什么区别

And*_*niy 5

你称之为"变量比较"的东西就是变量值的比较.在您的情况下,您的变量是对象,因此您正在比较它们的引用,即内存中对象的地址.对于两个不同的对象,该地址也将不同.


Har*_*uke 5

在第一个实例中,java将f1与实际数字120.00f进行比较.在第二个实例中,java正在比较内存引用.即使f1和f2保持相同的值,它们也存储在存储器中的不同位置,因此彼此完全分离.因此,当您键入if(f1 == f2)时,java会检查数据存储在f1中的信息,并检查f2是否指向此完全相同的信息位.