没有合适的资源?快使用搜索试试~ 我知道了~
Java基础之字符串及
资源推荐
资源详情
资源评论
字符串
什么是字符串?如果直接按照字面意思来理解就是多个字符连接起来
组合成的字符序列。为了更好的理解以上的理论,我们先来解释下字符
序列,字符序列:把多个字符按照一定的顺序排列起来;而字符序列就
是作为字符串的内容而存在的。所以可以把字符串理解为:把多个字符
按照一定的顺序排列起来而构成的排列组合。
如果还是不好理解,没有关系,我还有法宝。我们可以用烤串来比喻说
明,可以把字符串看作是烤串,烤串上的每一块肉都相当于是一个字符。
把一块块肉按照肥瘦相间的顺序排列并串起来便成了我们吃的烤串,同
理,把多个字符按照一定的顺序“串”起来就构成了字符串。
字符串的分类,字符串分为可变的字符串和不可变的字符串两种;这里
的不可变与可变指的是字符串的对象还是不是同一个,会不会因为字符
串对象内容的改变而创建新的对象。
不可变的字符串:当字符串对象创建完毕之后,该对象的内容(上述的
字符序列)是不能改变的,一旦内容改变就会创建一个新的字符串对象;
Java 中的 String 类的对象就是不可变的。可变的字符串:StringBuilder
类和 StringBuffer 类的对象就是可变的;当对象创建完毕之后,该对象
的内容发生改变时不会创建新的对象,也就是说对象的内容可以发生改
变,当对象的内容发生改变时,对象保持不变,还是同一个。String
类
String 类表示不可变的字符串,当前 String 类对象创建完毕之后,该
对象的内容(字符序列)是不变的,因为内容一旦改变就会创建一个一个
新的对象。
String 对象的创建:
方式一:通过字面量赋值创建,String s1 = “laofu”; 需要注意这里是双
引号:“”,区别与字符 char 类型的单引号:‘’;方式二:通过构造器创
建, String s2 = new String(“laofu”);以上两种创建方式的对象在 JVM
中又是如何分布的呢? 分别有什么区别呢?
下面就来一一解密:
方式一和方式二在 JVM 中又是如何分布?
字符串对象在 JVM 中的分布
上图中的常量池:用于存储常量的地方内存区域,位于方法区中。常量
池又分为编译常量池和运行常量池两种:
编译常量池:当把字节码加载斤 JVM 的时候,其中存储的是字节码的
相关信息(如:行号等)。运行常量池:其中存储的是代码中的常量数
据。方式一和方式二有何不同?
方式一:String s1 = “laofu”; 有可能只创建一个 String 对象,也有可能
创建不创建 String 对象;如果在常量池中已经存在”laofu”,那么对象 s1
会直接引用,不会创建新的 String 对象;否则,会先在常量池先创建常
量”laofu”的内存空间,然后再引用。
剩余10页未读,继续阅读
资源评论
一零壹0
- 粉丝: 140
- 资源: 135
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功