三张图彻底了解Java中字符串的不变性

 更新时间:2017年06月26日 14:43:23   投稿:lijiao  
这篇文章主要通过三张图彻底帮助大家了解Java中字符串的不变性,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

该文章是图说Java系列文章中的一篇

定义一个字符串

String s = "abcd";

s中保存了string对象的引用。下面的箭头可以理解为“存储他的引用”。

使用变量来赋值变量

String s2 = s;

s2保存了相同的引用值,因为他们代表同一个对象。

字符串连接

s = s.concat("ef");

s中保存的是一个重新创建出来的string对象的引用。

总结

一旦一个string对象在内存(堆)中被创建出来,他就无法被修改。特别要注意的是,String类的所有方法都没有改变字符串本身的值,都是返回了一个新的对象。

如果你需要一个可修改的字符串,应该使用StringBuffer 或者 StringBuilder。否则会有大量时间浪费在垃圾回收上,因为每次试图修改都有新的string对象被创建出来。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 实例解析Java程序中正则表达式的贪婪模式匹配

    实例解析Java程序中正则表达式的贪婪模式匹配

    贪婪模式又叫最大匹配,X?、X*、X+、X{n,}都是最大匹配,例如你要用“<.+>”去匹配“a<tr>aava </tr>abb”,也许你所期待的结果是想匹配“<tr>”,但是实际结果却会匹配到“<tr>aava </tr>”,下面我们就来看具体看一下贪婪模式的使用.
    2016-05-05
  • 详解配置类为什么要添加@Configuration注解

    详解配置类为什么要添加@Configuration注解

    这篇文章主要介绍了详解配置类为什么要添加@Configuration注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Spring Boot环境属性占位符解析及类型转换详解

    Spring Boot环境属性占位符解析及类型转换详解

    这篇文章主要给大家介绍了关于Spring Boot环境属性占位符解析及类型转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • Netty网络编程零基础入门

    Netty网络编程零基础入门

    Netty是一个异步的、基于事件驱动的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端,如果你还不了解它的使用,就赶快继续往下看吧
    2022-08-08
  • java zxing合成复杂二维码图片示例详解

    java zxing合成复杂二维码图片示例详解

    这篇文章主要为大家介绍了java zxing合成复杂二维码图片示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Java编写多功能万年历程序的实例分享

    Java编写多功能万年历程序的实例分享

    这里我们来作一个Java编写多功能万年历程序的实例分享,可以查询公元历、农历、节气与节日等,十分全面,下面就来具体看一下:
    2016-06-06
  • java 抽象类和接口的区别详细解析

    java 抽象类和接口的区别详细解析

    abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力,需要了解的朋友可以参考下
    2012-11-11
  • SpringBoot配置全局异常处理器捕获异常详解

    SpringBoot配置全局异常处理器捕获异常详解

    spring-boot统一异常捕获,异常时相对于return的一种退出机制,可以由系统触发,下面这篇文章主要给大家介绍了关于SpringBoot配置全局异常处理器捕获异常的相关资料,需要的朋友可以参考下
    2023-04-04
  • Flowable执行完毕的流程查找方法

    Flowable执行完毕的流程查找方法

    这篇文章主要为大家介绍了Flowable执行完毕的流程查找方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Java使用Statement接口执行SQL语句操作实例分析

    Java使用Statement接口执行SQL语句操作实例分析

    这篇文章主要介绍了Java使用Statement接口执行SQL语句操作,结合实例形式详细分析了Java使用Statement接口针对mysql数据库进行连接与执行SQL语句增删改查等相关操作技巧与注意事项,需要的朋友可以参考下
    2018-07-07

最新评论