String a="b"与String c=new String("b");
1 package fengke.hashcode; 2 /** 3 * 4 * @author 锋客 5 *学习笔记: 6 *1.hashcode并不是内存地址,只是和内存地址有关; 7 *2.==判断的是内存地址 8 *3.equals一般被String等引用类型重写,并不是比较内存地址,而是实际代表内容的差异; 9 *3.当调用某个类时,先加载static的内容; 10 * 11 */ 12 13 public class StringAndNewString { 14 //常量池中存储(无重复); 15 public String a="锋客"; 16 //堆中生成数据 17 public String b=new String("锋客"); 18 public String c=a; 19 20 21 22 public StringAndNewString() { 23 System.out.println("已调用无参构造器!"); 24 } 25 26 public static void main(String[] args) { 27 System.out.println("未调用无参构造器!"); 28 StringAndNewString test=new StringAndNewString(); 29 System.out.println("已调用static!"); 30 System.out.println(test.a.hashCode()); 31 System.out.println(test.b.hashCode()); 32 System.out.println(test.c.hashCode()); 33 System.out.println(test.a==test.b); 34 } 35 }