java指针有关
java指针相关
---------- 运行java ----------
false
true
---------------------------------
请问为什么第一个是false,第二个是true?
------解决思路----------------------
/**
* 第一步:检查stringpool池中是否有“test”,
* 不存在:在pool池中,放入“test”,在开辟一个新的空间,a指向新的内存地址
* 存在:则直接开辟一个新的空间,a指向新的内存地址
*/
String a = new String("test");
/**
* 同a
* 所以开辟了一个新的内存地址,b且指向新的内存地址
*/
String b = new String("test");
/**
* c与a指向同一个内存地址
*/
String c = a;
/**
* a b 指向不同的内存地址
*结果: false
*/
System.out.println(a==b);
/**
* a c 指向相同的内存地址
* 结果: true
*/
System.out.println(a==c);
public class test
{
public static void main(String[] args)
{
String a = new String("test");
String b = new String("test");
String c = a;
System.out.println(a==b);
System.out.println(a==c);
}
}
---------- 运行java ----------
false
true
---------------------------------
请问为什么第一个是false,第二个是true?
------解决思路----------------------
/**
* 第一步:检查stringpool池中是否有“test”,
* 不存在:在pool池中,放入“test”,在开辟一个新的空间,a指向新的内存地址
* 存在:则直接开辟一个新的空间,a指向新的内存地址
*/
String a = new String("test");
/**
* 同a
* 所以开辟了一个新的内存地址,b且指向新的内存地址
*/
String b = new String("test");
/**
* c与a指向同一个内存地址
*/
String c = a;
/**
* a b 指向不同的内存地址
*结果: false
*/
System.out.println(a==b);
/**
* a c 指向相同的内存地址
* 结果: true
*/
System.out.println(a==c);