您的位置:首页 > 编程语言 > Python开发

python之抽象二

2015-06-13 00:46 537 查看
package com.test;

public class StringTest {
public static void main(String[]args){
String s = new String("abc");//执行完此句 有2个对象(内容都是abc) :String池里(abc)堆里(abc)(s——引用——指向堆里的abc)
String s1 = "abc";//执行此句内存里不生成任何新的对象 String池里已经存在abc,直接返回 s1——引用——指向String池里的abc
String s2 = new String("abc");//new出来的对象在堆里 s2——引用——指向堆里的另一个abc
//以下三句返回的都是false
System.out.println(s == s1);// == 比较两个对象的内存地址,即是比较s和s2两个引用是不是指向同一个对象
System.out.println(s == s2);
System.out.println(s1 == s2);
System.out.println(s == s.intern());//false
System.out.println(s1 == s1.intern());//true
System.out.println(s.intern() == s2.intern());//true

String hello = "hello";
String hel = "hel";
String lo = "lo";
System.out.println(hello == "hel"+"lo");//true 等号左右两边的都在String池里
System.out.println(hello == "hel"+lo);//false 等号左边的在 String池里,右边的在堆里
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: