java小的误区

来源:互联网 发布:淘宝详情模板下载 编辑:程序博客网 时间:2024/05/21 11:34
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);}}

0 0