本帖最后由 Sage 于 2014-3-22 23:08 编辑
关于String类:
1.String类属于引用数据类型,即可以创建对象(new String())
2.String类有2钟定义方式,①直接用双引号""定义,如String str = "abc";②创建对象后定义,如String str = new String("abc");或String str = new String(); str = "abc";
3.双引号定义定义字符串,使用时都会在内存中查找是否包含该字符串,是就直接引用,否则创建一个对象,可被共享
4.String是全局常量,一经定义不可修改,储存在String池中(pool)
String str = new String("abc");
创建了2个对象,pool(池)中一个,stack(堆)中一个
String str = "abc";
创建了1个对象,pool(池)中一个,双引号定义查看pool中是否存在,无则创建一个
String str = "abc";
String str = new String("abc");
创建了2个对象,pool(池)中一个,stack(堆)中一个
System.out.println("abc");
在pool(池)中创建了一个对象
总之,双引号定义查看pool中是否存在,无则创建一个,创建对象定义会先查看pool中是否存在,有则自身再创建一个,无则创建两个对象
|