java,
分享于 点击 27727 次 点评:273
java,
package qwerty;
public class String2 {
public static void main(String [] args){
String a=new String("as");
String b=new String("as");
System.out.println(a==b);//false:因为new出来的对象是放在堆中的 new出来的每个对象都有一个地址所以不同
String d="ds";
String c=d;
System.out.println(d==c);//true :=赋值是放在常量池中得(栈)中 所以如果有相同内容的字符串就不会再创建了,所以
//d和c的指针指向了同一个地址
d="as";
System.out.println(a==d);//在不同的位置一个在池中 一个在堆中 所以为false
a=a.intern();
System.out.println("估计是:"+(a==d));//intern() 方法:把a放到常量池中 如果常量池中有相同的内容的话
//a的指针指向该内容 没有的话把a对象添加到常量池中 所以这里是true
System.out.println("---------------------------");
String s1=new String("777");//new是执行的时候创建
String s2="aaa777";
String s3="aaa"+"777";//编译时已经确定了的连接值
String s4="aaa"+s1;
System.out.println(s2==s3);
System.out.println(s2==s4);
System.out.println(s2==s4.intern());
System.out.println("-----------------------");
StringBuffer a1=new StringBuffer("A");
StringBuffer b1=new StringBuffer("B");
operate(a1,b1);
System.out.println(a1+","+b1);
}
static void operate( StringBuffer x, StringBuffer y){
x.append(y);
y=x;
}
相关文章
- 暂无相关文章
用户点评