解答
方式一:通过字面量定义的方式
方式二:通过new + 构造器() 的方式
代码理解:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //通过字面量定义的方式:此时数据abc声明在方法区中的字符串常量池中 String s1= "abc" ; String s2= "abc" ; //通过new+构造器的方式: 此时s3,s4保存的地址值,是数据在堆空间中开辟以后对应的地址值 String s3 = new String( "abc" ); String s4 = new String( "abc" ); System.out.println(s1==s2); //true System.out.println(s1==s3); //false System.out.println(s1==s4); //false System.out.println(s3==s4); //false System.out.println( "**************************" ); Person p1 = new Person( "Tom" ,14); Person p2 = new Person( "Tom" ,14); System.out.println(p1.name.equals(p2.name)); //true,因为比较的是实体内容(String重写了equals()方法) System.out.println(p1==p2); //false new的两个对象地址值是不一样的 System.out.println(p1.name==p2.name); //true p1.name= "Lay" ; System.out.println(p2.name); //结果为Tom |
帖子还没人回复快来抢沙发