java 中 string 对象

1.只使用常量对对象进行赋值,只会在常量去创建对象;

  String name = "11";

  String s1="Java";
  String s2="Java";
  System.out.println(s1==s2);  true

2.使用new关键字创建对象,会在常量区和堆区都创建对象,并且引用为堆区对象;

  String s1=new String("Java");

  String s1=new String("Java");
  String s2= new String("Java");
  System.out.println(s1==s2); false

      只在常量池 中定义 

  String s1="hello world";
  String s2="hello "+"world";
  System.out.println(s1==s2); true

3.传递参数的时候只传递 字段变量的副本

   输出 11

  public class test1 {

  public static void main(String[] args) {

    String name = "11";
    setStr(name);

    }

    public static void setStr(String name) {
    name = "22";
    }

  }

 

4.String、StringBuiler、StringBuffer的用法和区别

  String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的

  StringBuilder是线程不安全的,而StringBuffer是线程安全的

  String:适用于少量的字符串操作的情况 
  StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况 
  StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况

 

posted @ 2019-07-24 11:40  _debug—  阅读(203)  评论(0编辑  收藏  举报