package ceshi;
public class Ceshi {
public static void main(String[] arg0){
/**
* s1 在常量池中
* s2创建是搜索常量池中内容
* s3 new 出来的对象分配在堆内存中
* answer:
* true
* false
*/
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
System.out.println(s1 == s2);
System.out.println(s1 == s3);
/**
* 当复合数据类型用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。
* 当Integer和int 进行==比较时,integer 自动拆箱,转换成int作比较
* c,d为两个不同的对象
* answer:
* true
* false
*/
Integer a = new Integer(1000);
int b = 1000;
Integer c = new Integer(10);
Integer d = new Integer(10);
System.out.println(a == b);
System.out.println(c == d);
/**
* 当声明Integer c1 = 100 会自动装箱,将int转换成Integer对象
* 调用的是valueOf方法,将-128-127缓存了,当Integer对象的值在-128-127之间,引用为同一个1个对象
* answer:
* false
* true
*/
Integer a1 = 1000,b1=1000;
Integer c1 = 100,d1=100;
System.out.println(a1 == b1);
System.out.println(c1 == d1);
}
}
java小的误区
最新推荐文章于 2024-05-04 14:28:28 发布