文章506
标签266
分类65
为什么在Java中String被设计为不可变

为什么在Java中String被设计为不可变

最近在学习新的编程语言Scala了, 在Scala中变量分为val(不可变类型), 和var(可变类型). 突发奇想想到了在Java中的String都被声明为final, 也就相当于是Scala中都被声明为val了吧! 但是具体是为什么呢? 本篇文章带你探寻在Java中String被声明为不可变背后的秘密!

本篇文章主要内容:

  • String源码简单分析
  • String在JVM中的常量池的解析: 字面量, new, +连接, intern()
  • String中的==和equals
  • 什么是Java中的不可变? 不可变的好处与坏处?
  • 证明回答String被设计成不可变和不能被继承的原因
  • ……

示例代码: https://github.com/JasonkayZK/Java_Samples/tree/java-string

算法:字符串的排列

算法:字符串的排列


算法:字符流中第一个不重复的字符

算法:字符流中第一个不重复的字符


算法:正则表达式匹配

算法:正则表达式匹配


算法:第一个只出现一次的字符位置

算法:第一个只出现一次的字符位置


算法:翻转单词顺序列

算法:翻转单词顺序列


算法:表示数值的字符串

算法:表示数值的字符串


算法:替换空格

算法:替换空格