/**
* @author fxliu
* @version 1.0
*/
public class TestString
{
public static void main(String args[])
{
String s = new String("abc");
/*生成了两个对象,一个abc是在String pool里面,一个abc是在内存的堆里面,s是指向堆里面的一个对象,
* 只有用new关键字生成出来的才叫对象,s是指向堆里面对象的地址
* */
String s1 = "abc";
/* 当执行完这行语句,一个新的对象也没有生成,只是定义一个字符串常量,而不是用new的时候,会在string pool里面查找
是否已经存在了abc这样一个对象,如果已经存在就直接使用
* */
String s2 = new String("abc");
/*首先查找abc在string pool里面是否存在,如果已经存在就在string pool里不再创建
只要有new就会在堆里面生成一个新的对象,
* */
System.out.println(s == s1);
System.out.println(s == s2);
System.out.println(s1 == s2);
/*==是判断他们引用的地址是否一样
s1——>abc是string pool里面的
s——>abc是堆里面的
s2——>abc是另一个堆里面的
三个不同的对象,指向不同的地方
*/
/* 运行结果
false
false
false*/
//首先intern()是返回poo里面的对象
System.out.println(s == s.intern());//false s是堆里面的,s.intern()是pool里面的所以返回false
System.out.println(s1 == s1.intern());//true s1是pool,s1.intern()也是pool里面
System.out.println(s.intern() == s2.intern());//true,都是pool里面的
String h = "hellolili";
String h1 = "hello";
String name = "lili";
/*==========================================*/
System.out.println("=================");
System.out.println(h == "hello" + "lili");//true 只是两个常量,它都是指向pool里面的
System.out.print(h == "hello" + name);//false,name新创建了一个对象是指向堆里面的,所以返回为false
}
}
分享到:
相关推荐
String对象常用的属性的方法String对象常用的属性的方法
此程序是向大家展示js脚本中string对象的基本应用
读入未知数目的string对象.cpp
86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点....
String对象 6.4.1 String对象 1、创建String对象 在JavaScript中可以使用一对单引号或双引号将任意多个字符引起来,即生成字符型数据。这些字符型数据实际上也是构造函数String的实例,即String对象。 6.4.1 String...
对String创建几个对象代码详解,包括字符串相加,对象相加等等
string对象的操作string对象的操作
String对象的创建问题,分为:编译期和执行期 详细的讲解String对象创建问题
memset初始化std::string对象时,按字节顺序将std::string对象所在空间清零,破坏了std::string对象的成员结构,使Myroxy指针资源变为野指针,操作其迭代器会出现不可预知的异常,在存储字符串时可能分配了不必要的...
Java String对象的经典问题,有关String类的介绍
CString对象和string对象的相互转化问题,以及他们呢的用法
JavaScript String 对象参考手册
创建string对象过程的内存分配&&包含多个例子,更加容易理解~~
这是一本对string应用的一本好的教材。是对它的扩展之类的。
最近在网上经常看到String对象的问题,现将String对象的内存分析进行分享
JavaScript String 对象参考手册 字符串是 JavaScript 的一种基本的数据类型。 String 对象的 length 属性声明了该字符串中的字符数。String 类定义了大量操作字符串的方法。 需要注意的是,JavaScript 的字符串是不...
字符串是 JavaScript 的一种基本的数据类型。 提供String对象方法属性的详细解释
java中Object对象String对象的解析.pdf
string 、对象 、json之间相互互转 ,包含jar包测试类,做了简单的,能使而已!