Salesforce Apex中String类是否不可变?拼接操作会创建新对象吗?
Salesforce Apex中String类的不可变性解析
在Salesforce Apex中,String类是不可变类。所谓不可变,指的是String对象一旦被创建,其内部的字符序列就无法被修改。所有看似对字符串内容进行修改的操作,本质上都是创建了一个全新的String对象。
以你给出的代码为例:
String str = 'Hello'; str += 'World!';
- 第一行代码执行时,会创建一个值为
'Hello'的String对象,变量str指向这个对象。 - 第二行的
+=运算符执行时,并不会修改原来的'Hello'对象,而是将原字符串与'World!'拼接后,生成一个值为'HelloWorld!'的新String对象,随后变量str会被更新为指向这个新对象。 - 原来的
'Hello'对象如果没有其他引用指向它,会被Apex的垃圾回收机制回收。
内容的提问来源于stack exchange,提问作者dvrsandeep
相关产品推荐
相关产品推荐

