关于string的对象引用

什么都不说了, 一切都在代码里:

 1               string  a1  =   " aaa " ;   //  在堆中分配"aaa"
 2                 string  a2  =   " aaa " ;   //  堆中已有"aaa", 则不再给"aaa"分配新空间,a2指向a1的地址
 3               string  a3  =   new   string ( " aaa " .ToCharArray());  //  new产生新的对象,分配新的空间
 4 
 5              Console.WriteLine( object .ReferenceEquals(a1,  " aaa " ));  // Ture
 6              Console.WriteLine( object .ReferenceEquals(a1, a2));     // True
 7              Console.WriteLine( object .ReferenceEquals(a1, a3));     // False
 8 
 9               string  b1  =   " bbb " ;
10 
11               string  c1  =   " aaabbb " ;         //  定义"aaabbb"
12               string  c2  =   " aaa "   +   " bbb " ;    //  "aaa"和"bbb"都是常量, 合成为"aaabbb"指向c1
13               string  c3  =  a1  +   " bbb " ;       //  a1是变量, 则给c3分配新的空间
14               string  c4  =  a1  +  b1;          //  同上, c4分配新的空间
15               string  c5  =  a1  +  b1;          //  同上, c5分配新的空间
16 
17              Console.WriteLine( object .ReferenceEquals(c1, c2));   // True
18              Console.WriteLine( object .ReferenceEquals(c1, c3));   // False
19              Console.WriteLine( object .ReferenceEquals(c1, c4));   // False
20              Console.WriteLine( object .ReferenceEquals(c3, c4));   // False
21              Console.WriteLine( object .ReferenceEquals(c5, c4));   // False

转载于:https://www.cnblogs.com/Freeway/archive/2010/04/04/stringRef.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
String对象数组是指一个数组中的每个元素都是String类型的对象。在编写代码时,可以使用以下方式声明和使用String对象数组: 1. 使用Array类的构造函数声明并初始化String对象数组: ```java String[] arr = new String[]{"element1", "element2", "element3"}; ``` 这种方式使用Array类的构造函数创建String对象数组,并通过花括号{}中的元素赋值给数组的每个位置。 2. 使用数组的简化声明方式声明和初始化String对象数组: ```java String[] arr = {"element1", "element2", "element3"}; ``` 这种方式简化了数组的声明和初始化,直接在花括号{}中列出元素即可。 3. 可以通过下标访问和修改String对象数组的元素: ```java String element = arr = "newElement"; // 修改数组中下标为1的元素 ``` 使用方括号[]和下标的方式可以访问和修改数组中的元素。需要注意的是,数组的下标从0开始,到数组长度-1为止。 总结:String对象数组是一个数组中的每个元素都是String类型的对象。可以使用Array类的构造函数或简化声明方式来声明和初始化String对象数组,并通过下标来访问和修改数组中的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [String对象和数组的异同](https://blog.csdn.net/m0_37058714/article/details/81165972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Java入门篇(四)——数组](https://blog.csdn.net/weixin_42293337/article/details/94392864)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值