1、“==” 是 “比较引用地址”,不明白这里地址指的是什么地址?
例如:
int a = 1;
int b = 1;
这里a,b的地址肯定是不一样的?为什么说 通过“==”“比较引用地址”,是 ture的。
小弟刚转入java,所以有很多地方不是很清楚,问题可能有点菜,请见谅~2.、t.getText().equals("123")
t.equals("123")这两个分别比较的是什么?
import java.awt.*;
public class e
{
public static void main(String args[])
{
TextField t = new TextField("123"); if(t.equals("123")) System.out.println("="); //只是想知道这里t.equals("123")比较的是什么?
else System.out.println("!=");

if(t.getText().equals("123")) System.out.println("gettext =");
else System.out.println("gettext !=");
}
}

解决方案 »

  1.   

     == 值是一样的 所以true   如果比较对象的话 ----false
      

  2.   

    java 的数据类型分为“基本数据类型” 和“引用数据类型”
    在基本数据类型的比较中,== 比的就是基本数据类型变量中所保存的值
    在引用数据类型的比较中,== 才比较的是变量所指向的对象的地址。equals 方法是需要你重写的,也就是说如果通过 equals 方法来比较两个对象,那么 equals 是否返回 true 是由 equals 方法中的比较逻辑来决定的
      

  3.   

    equals就是比较内容 是否一样
      

  4.   

    int a=1;
    int b=1;
    这两个都是常量,常量是放在常量池的,所以用“==”比较时为true
      

  5.   

    没有说equal比较的就是内容直说一般情况下的equals 比较的是toString();对于对象来说 equals 类似于引用比较
    而 == 则是 值比较 和引用传递 值传递有点像
      

  6.   

    是 没有说 equals 比较的就是内容  之说
      

  7.   

    Java中存在基本数据类型和对象数据类型。==比较,如果是基本数据类型,就是比较的值是否相同,如果是对象数据,比较地址。equels(),在Object类里面比较的是地址,如果子类重写了equals,则比较的是数据,如String,Integer。
    自学Java,我建议,先看张孝祥的13多G的视频教学,再看浪曦的JDK5.0的新特性,在看马士兵的Java语法视频,我感觉可以理解的很透彻,我也自学,就是这个顺序。
      

  8.   

    补充三楼的,比较两个对象一般需要重写hashcode和equals方法!!
      

  9.   

    ==比较的是简单数据类型(基本数据类型)的值是否相等  比较引用类型的地址是否相等
    而equels比较的是两个变量里面的内容是否相等  一般的数据类型都有重写这个方法
      

  10.   

    建议楼主 了解下池的概念!
    == 就是比较地址
    equals,比较内容  
    这个是不容置疑的  可不是分情况!