关系运算符“==”
总的来说关系运算符“==”判断的是值是否相等。
a:在基本数据类型中:由于变量与值同在栈中,所以比较的是值是否相等。
public class Test {
public static void main(String[] args) {
int a=5;
int b= 5;
System.out.println(a==b);
}
}
结果返回:
true
附:
即使一个是int类型,一个是double类型,但是他们的值是不变的。所以他们仍然是相等的。
b:如果为引用类型,变量中存的是对象的地址,所以“==”比的是地址是否相等。
我们可以这样想:
地址是不是也是一个个的数组成的?那么,我们就可以将a,b归结为一句话。“==”比得就是数值是否一样。
字符串创建对象的方式
一、字符串创建对象的方式 有两种:
(1)直接赋值法。
格式:
String a = "yueg";
(2)使用new的构造方法
格式:
String name =new String("sdag");
二、两种方式的区别:
(1)直接赋值法中对象是直接存入了常量池中的。而new方法则是直接存在堆内存中的。
虽然常量池在堆里。但是他们是不同的概念。
他们之间的关系如下:
(2)直接赋值法 :当JVM创建字符串对象前会先去常量池中找有没有一个字符串 内容和当前字符串内容完全一样。
如果有,那么将已有的地址赋值给变量。
若没有,创建新的对象。
而new方法每一次都会创建一个新的对象。