当您使用“ + =”在Java中“更改”字符串时会发生什么情况?

肖尼96

我了解Java中的String变量是不可变的,因此无法更改。

String myString = "Hello.";
myString += " ";
myString += "My name is Kevin"; 

每次我们向其中“添加”某些东西时String(),我们都会有效地创建一个new String(),但是它的名称与要连接的字符串相同。这是否意味着内存中有多个变量为“ myString”的引用?

将要

每次“修改” /拼接的String+=,你创建一个新的String对象,并更换指定的参考myString与新创建的String因此,没有,内存中只有一个引用,但是引用指向的对象每次都会更改。字符串是不可变的,因此无法“就地”修改对象。

字符串是Java中的不可变类。不可变类只是其实例无法修改的类。创建实例后,实例中的所有信息都会初始化,并且无法修改该信息。不变类有很多优点。

在程序员的StackExchange上,有一个很好的答案,它解释了为什么 Strings在Java中是不可变的,以及有关其工作原理的更多详细信息。

最好的方法是只使用StringBuilder()类:

String myStringBuilder = new StringBuilder("Hello.");
myStringBuilder.append(" ");
myStringBuilder.append("My name is Kevin");

System.out.println(myStringBuilder.toString());

但是,现代Java编译器String会将串联StringBuilder自动转换为操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用“ + =”在Java中“更改”字符串时会发生什么情况?

来自分类Dev

使用类函数更改S4对象的“类”时会发生什么情况?

来自分类Dev

RabbitMQ Java客户端:当在使用者的handleDelivery()方法中抛出RuntimeException时会发生什么情况?

来自分类Dev

如果我为当前不使用的字符串位置分配一个值,会发生什么情况?

来自分类Dev

当您按Esc键退出全屏时会发生什么情况?如何使用按钮复制它?

来自分类Dev

当您清除Android应用程序的存储空间时会发生什么情况

来自分类Dev

了解我使用Ctrl-v转储终端字符序列时会发生什么情况?

来自分类Dev

在PHP中,当您从文本编辑器中在字符串定义中输入内容时会发生什么?

来自分类Dev

不等待HttpClient使用时会发生什么情况

来自分类Dev

在ruby中使用字符串插值时会发生什么?

来自分类Dev

当您使用浏览器返回时会发生什么?

来自分类Dev

当您使用jquery更改img标签的src时会发生什么?

来自分类Dev

在C ++中将char连接到字符串时会发生什么情况?

来自分类Dev

构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

来自分类Dev

构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

来自分类Dev

如果我将“填充”(猫鼬)与空字符串一起使用,会发生什么情况?我想创建一个抽象函数来从猫鼬获取数据

来自分类Dev

如果在我的java文件中使用了很多@SuppressWarnings,会发生什么情况?

来自分类Dev

如果您同时修改要在节点js中循环通过的数组,会发生什么情况?

来自分类Dev

当您从《虚无》中抽奖时会发生什么?

来自分类Dev

如果仅在类中重写hashCode()并在Set中使用它,会发生什么情况?

来自分类Dev

当您用尽PID时会发生什么?

来自分类Dev

如果结构中的字符串比使用的p / Invoked签名长或短,会发生什么?

来自分类Dev

在视觉上,当您使用&符号调用同一进程时会发生什么

来自分类Dev

当您使用Task.Run太多而导致线程池耗尽时会发生什么?

来自分类Dev

当您使用多个嵌套作用域时会发生什么?

来自分类Dev

当您使用范围通道中断for语句时会发生什么

来自分类Dev

当您使用 select# 作为 css 选择器时会发生什么?

来自分类Dev

RabbitMQ Java客户端:如果在使用者的handleDelivery()方法中抛出RuntimeException,会发生什么情况?

来自分类Dev

尝试使用Java捕获-发生异常时会发生什么?

Related 相关文章

  1. 1

    使用“ + =”在Java中“更改”字符串时会发生什么情况?

  2. 2

    使用类函数更改S4对象的“类”时会发生什么情况?

  3. 3

    RabbitMQ Java客户端:当在使用者的handleDelivery()方法中抛出RuntimeException时会发生什么情况?

  4. 4

    如果我为当前不使用的字符串位置分配一个值,会发生什么情况?

  5. 5

    当您按Esc键退出全屏时会发生什么情况?如何使用按钮复制它?

  6. 6

    当您清除Android应用程序的存储空间时会发生什么情况

  7. 7

    了解我使用Ctrl-v转储终端字符序列时会发生什么情况?

  8. 8

    在PHP中,当您从文本编辑器中在字符串定义中输入内容时会发生什么?

  9. 9

    不等待HttpClient使用时会发生什么情况

  10. 10

    在ruby中使用字符串插值时会发生什么?

  11. 11

    当您使用浏览器返回时会发生什么?

  12. 12

    当您使用jquery更改img标签的src时会发生什么?

  13. 13

    在C ++中将char连接到字符串时会发生什么情况?

  14. 14

    构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

  15. 15

    构造函数使用1个参数,但基本关键字使用2个参数时会发生什么情况

  16. 16

    如果我将“填充”(猫鼬)与空字符串一起使用,会发生什么情况?我想创建一个抽象函数来从猫鼬获取数据

  17. 17

    如果在我的java文件中使用了很多@SuppressWarnings,会发生什么情况?

  18. 18

    如果您同时修改要在节点js中循环通过的数组,会发生什么情况?

  19. 19

    当您从《虚无》中抽奖时会发生什么?

  20. 20

    如果仅在类中重写hashCode()并在Set中使用它,会发生什么情况?

  21. 21

    当您用尽PID时会发生什么?

  22. 22

    如果结构中的字符串比使用的p / Invoked签名长或短,会发生什么?

  23. 23

    在视觉上,当您使用&符号调用同一进程时会发生什么

  24. 24

    当您使用Task.Run太多而导致线程池耗尽时会发生什么?

  25. 25

    当您使用多个嵌套作用域时会发生什么?

  26. 26

    当您使用范围通道中断for语句时会发生什么

  27. 27

    当您使用 select# 作为 css 选择器时会发生什么?

  28. 28

    RabbitMQ Java客户端:如果在使用者的handleDelivery()方法中抛出RuntimeException,会发生什么情况?

  29. 29

    尝试使用Java捕获-发生异常时会发生什么?

热门标签

归档