美文网首页
Java中String不可变性及其优点

Java中String不可变性及其优点

作者: callme周小伦 | 来源:发表于2019-10-15 20:36 被阅读0次
  1. String pool 是存储在Method Area的一个独特区域,当一个string被创建时,如果他已经存在于pool中,已存在的string的引用将会被返回。
    例如:
String string1 = "abcd";
String string2 = "abcd";
image

如果string是可变的,改变string会导致其他值的引用出错。

注:Method Area

image
详解见: JVM Run-Time Data Areas
  1. 缓存hashcode
    字符串的hashcode在Java中经常使用。例如,在HashMap或HashSet中。不可变保证了hashcode总是相同的,这样就可以兑现它,而不必担心更改。这意味着,不需要每次使用hashcode时都计算它。这样更有效率。

  2. 安全性
    String 经常作为参数,String 不可变性可以保证参数不可变。例如在作为网络连接参数的情况下如果 String 是可变的,那么在网络连接过程中,String 被改变,改变 String 对象的那一方以为现在连接的是其它主机,而实际情况却不一定是。

4.线程安全
因为不可变对象不能被改变,所以它们可以在多个线程之间自由共享。这消除了执行同步的需求。

Why String is immutable in Java?

相关文章

  • Java中String不可变性及其优点

    String pool 是存储在Method Area的一个独特区域,当一个string被创建时,如果他已经存在于...

  • Diagram to show Java String’s Im

    图解java中String的不可变性 翻译自 What is string immutability 定义字符串 ...

  • Java基础(四)

    Java基础4 JAVA字符 1.String的不可变性 String 是一个对象,一个封装了字符数组的对象。不可...

  • 基础提高(三):深入分析String

    本章将深入分析在Java中最常用的String类,主要分析以下几个部分: String类的二大特点:不可变性和不可...

  • 10.28

    为什么 Java 中的 String 是不可变的(Immutable)?Java 中的 String 不可变是因为...

  • java基础巩固-浅析String源码及其不可变性

    字符串可以说是广泛应用在日常编程中,jdk从1.0就提供了String类来创建和操作字符串。同时它也是不可改变类(...

  • 面试题汇总

    1. String, StringBuffer and StringBuilder 可变性String 不可变St...

  • String(一)

    字符串的不可变性 String在Java中特别常用,而且我们经常要在代码中对字符串进行赋值和改变他的值,但是,为什...

  • Android 面试要点之字符

    1. String的不可变性 参考资料一旦一个String对象在内存中创建,它将是不可改变的,所有的String类...

  • Java 中字符串的不变性

    Java 中字符串的不变性 String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指...

网友评论

      本文标题:Java中String不可变性及其优点

      本文链接:https://www.haomeiwen.com/subject/eukemctx.html