string 的理解

   首先 string即使对象 又是基本类型,

 

   string是用char 的数组存它的值,而且char的前面用了final ,因此string生成后它的值是不能改变的

(  public   final   class   String  
          implements   java.io.Serializable,   Comparable<String>,   CharSequence  
  {  
          /**   The   value   is   used   for   character   storage.   */  
          private   final   char   value[];  
   
          /**   The   offset   is   the   first   index   of   the   storage   that   is   used.   */  
          private   final   int   offset;  
   
          /**   The   count   is   the   number   of   characters   in   the   String.   */  
          private   final   int   count;  

             ................

      public   String(char   value[])

 

 

   1.直接赋值:String str = "abc";  这种赋值,内存是用栈来存储"abc"的。
   2.用new指令来创建的:String str = new String("abc"); 这种赋值,内存是用堆来存储"abc"的。

 

  1只创建了一个引用对象

  2创建了两个对象,一个引用对象和new String("abc") 对象

   String +String 是通过Stringbuffer来完成的,所以String对象一旦创建了后就不能在改变

要改变其实就是重新建一个对象

 

欢迎指正和补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值