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
"在常量池中分配内存,所以和静态区差不多。
如图:
String str = new String("abc")
创建实例的过程
1首先定义一个str
的String
类型的引用并存放在栈中
2在字符串常量池中查看是否存在内容为"abc"
字符串对象
3若存在则跳过这个步骤,若不存在,则在字符串常量池中创建一个内容为"abc"
的字符串对象。
4执行new
操作,在堆中创建一个指定的对象"abc"
,这里堆的对象是字符串常量池“abc”
对象的一个拷贝对象。
5让str
指向堆中“abc”
这个对象(也就是存储这个对象的在堆中的地址)
字符串中的常用方法
(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()
该方法只是去掉开头和结尾的空格,并返回得到的新字符串.值得注意的是,在原来字符串中间的空格并不去掉.
写完了如果写得有什么问题,希望读者能够给小编留言,也可以点[击此处扫下面二维码关注微信公众号](https://www.ycbbs.vip/?p=28 "击此处扫下面二维码关注微信公众号")
看完两件小事
如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:
- 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
- 关注公众号 「方志朋」,公众号后台回复「666」 免费领取我精心整理的进阶资源教程
本文著作权归作者所有,如若转载,请注明出处
转载请注明:文章转载自「 Java极客技术学习 」https://www.javajike.com