1. 首页
  2. Java基础

007-七、Java字符串(String)

String是一个特殊的包装类数据。

String 即可以用 String str= new String("abc");的形式来创建,也可以用String str ="abc";的形式来创建。
String str = "abc"创建对象的过程

1 首先在常量池中查找是否存在内容为"abc"的字符串对象
2 如果不存在则在常量池中创建一个"abc"的字符串对象,并让str引用该对象
3 如果存在则直接让 str 引用该对象

注意:常量池属于类信息的一部分,而类信息反映到 JVM 内存模型中是对应存在于 JVM 内存模型的方法区,也就是说这个类信息中的常量池概念是存在于在方法区中。

一般这种情况下,"abc"在编译时就被写入字节码中,所以 class 被加载时,JVM 就为"abc"在常量池中分配内存,所以和静态区差不多。

如图:
07-七、Java字符串(String)"

String str = new String("abc")创建实例的过程

1首先定义一个strString类型的引用并存放在栈中

2在字符串常量池中查看是否存在内容为"abc"字符串对象

3若存在则跳过这个步骤,若不存在,则在字符串常量池中创建一个内容为"abc"的字符串对象。

4执行new操作,在堆中创建一个指定的对象"abc",这里堆的对象是字符串常量池“abc”对象的一个拷贝对象。

5让str指向堆中“abc”这个对象(也就是存储这个对象的在堆中的地址)

07-七、Java字符串(String)"

字符串中的常用方法
(1) 字符串的连接
public String concat(String str)
该方法的参数为一个 String 类对象,作用是将参数中的字符串 str 连接到原来字符串的后面.

(2)求字符串的长度
public int length()
返回字串的长度,这里的长度指的是字符串中 Unicode 字符的数目.

(3)求字符串中某一位置的字符
public char charAt(int index)
该方法在一个特定的位置索引一个字符串,以得到字符串中指定位置的字符.值得注意的是,在字符串中第一个字符的索引是0,第二个字符的索引是1,依次类推,最后一个字符的索引是length()-1.

(4)字符串的比较
比较字符串可以利用String类提供的下列方法:
public boolean equals(Object anObject)
该方法比较两个字符串,和Character类提供的equals方法相似,因为它们都是重载Object类的方法.该方法比较当前字符串和参数字符串,在两个字符串相等的时候返回true,否则返回false.

(5)从字符串中提取子串
public String substring(int beginIndex)
该方法从beginIndex位置起,从当前字符串中取出剩余的字符作为一个新的字符串返回.

(6) 字符串中单个字符的查找
字符串中单个字符的查找可以利用String类提供的下列方法:
public int indexOf(int ch)

该方法用于查找当前字符串中某一个特定字符ch出现的位置.该方法从头向后查找,如果在字符串中找到字符ch,则返回字符ch在字符串中第一次出现的位置;如果在整个字符串中没有找到字符ch,则返回-1.

(7) 字符串中多余空格的去除
public String trim()
该方法只是去掉开头和结尾的空格,并返回得到的新字符串.值得注意的是,在原来字符串中间的空格并不去掉.
07-七、Java字符串(String)"

写完了如果写得有什么问题,希望读者能够给小编留言,也可以点[击此处扫下面二维码关注微信公众号](https://www.ycbbs.vip/?p=28 "击此处扫下面二维码关注微信公众号")

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「666」 免费领取我精心整理的进阶资源教程
  4. JS中文网,Javascriptc中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,是给开发者用的 Hacker News,技术文章由为你筛选出最优质的干货,其中包括:Android、iOS、前端、后端等方面的内容。目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。

    本文著作权归作者所有,如若转载,请注明出处

    转载请注明:文章转载自「 Java极客技术学习 」https://www.javajike.com

    标题:007-七、Java字符串(String)

    链接:https://www.javajike.com/article/1316.html

« 008-八、Java之变量
006-六、Java数据类型(下)»

相关推荐

QR code