Java字符串(String)

Posted 幻影黑子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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首先定义一个strString类型的引用并存放在栈中

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()
该方法只是去掉开头和结尾的空格,并返回得到的新字符串.值得注意的是,在原来字符串中间的空格并不去掉.

以上是关于Java字符串(String)的主要内容,如果未能解决你的问题,请参考以下文章

java中,String字符串转化为数字

java string类

《java基础知识》Java字符串详解

java里,如何把String字符串转换成int[]数组?

java里,如何把String字符串转换成int[]数组?

Java String 类