欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java,

来源: javaer 分享于  点击 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;
 

   }
}

相关文章

    暂无相关文章
相关栏目:

用户点评