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 !=");
}
}
例如:
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 !=");
}
}
在基本数据类型的比较中,== 比的就是基本数据类型变量中所保存的值
在引用数据类型的比较中,== 才比较的是变量所指向的对象的地址。equals 方法是需要你重写的,也就是说如果通过 equals 方法来比较两个对象,那么 equals 是否返回 true 是由 equals 方法中的比较逻辑来决定的
int b=1;
这两个都是常量,常量是放在常量池的,所以用“==”比较时为true
而 == 则是 值比较 和引用传递 值传递有点像
自学Java,我建议,先看张孝祥的13多G的视频教学,再看浪曦的JDK5.0的新特性,在看马士兵的Java语法视频,我感觉可以理解的很透彻,我也自学,就是这个顺序。
而equels比较的是两个变量里面的内容是否相等 一般的数据类型都有重写这个方法
== 就是比较地址
equals,比较内容
这个是不容置疑的 可不是分情况!