登陆 / 注册
JAVA 学习手册 展开/折叠

Java String类

阅读数:7

在Java中,string基本上是一个表示char值序列的对象。字符数组与Java字符串相同。例如:

char [] ch = { 'j' ,'a' ,'v' ,'a' ,'s' ,'t' ,'r' ,'i' ,'n' ,'g' };
String s = new  String(ch);  
与:
String s = "javastring" ;

Java String类提供了许多方法来对字符串执行操作,例如compare(),concat(),equals(),split(),length(),replace(),

compareTo(),intern(),substring()等等.

string-implements.png

java.lang.String类实现Serializable,Comparable和CharSequence接口。

CharSequence接口用于表示字符序列。String,StringBuffer和StringBuilder类实现它。这意味着,我们可以使用这三个类在java中创建字符串。

charsequence.png

Java String是不可变的,这意味着它无法更改。每当我们更改任何字符串时,都会创建一个新实例。对于可变字符串,您可以使用

StringBuffer和StringBuilder类。

什么是java中的String

通常,String是一系列字符。但在Java中,string是一个表示字符序列的对象。java.lang.String类用于创建字符串对象。


如何创建一个字符串对象?

有两种方法可以创建String对象:

按字符串文字

按new关键字


1)String Literal

Java String文字是使用双引号创建的。例如:

String s = "welcome" ;

每次创建字符串文字时,JVM首先检查"字符串常量池"。如果池中已存在该字符串,则返回对池化实例的引用。如果池中不存在该字符串,则会创建一个新的字符串实例并将其放置在池中。例如:

 String s1 = "欢迎" ;  
 String s2 = "欢迎" ; //它不会创建新实例


Java字符串

在上面的示例中,只会创建一个对象。首先,JVM在字符串常量池中找不到任何值为"Welcome"的字符串对象,这就是它将创建一个新

对象的原因。之后,它将在池中找到值为"Welcome"的字符串,它不会创建新对象,但会返回对同一实例的引用。

注意:String对象存储在称为"字符串常量池"的特殊内存区域中。


为什么Java使用字符串的概念?

使Java更具内存效率(因为如果字符串常量池中已存在新对象,则不会创建新对象)。

2)通过new关键字

String s = new  String("Welcome" ); //创建两个对象和一个引用变量

在这种情况下,JVM将在普通(非池)堆内存中创建一个新的字符串对象,文字"Welcome"将放在字符串常量池中。变量s将引用堆中的对

象(非池)。


Java字符串示例:

public class StringExample{
    public static void  main(String args []){    
        String s1 = "java" ; //通过java字符串文字创建字符串  
        char  ch [] = {'s','t' ,'r' ,'i' ,'n' ,'g' ,'s''}  
        String s2 = new  String(ch); //将char数组转换为字符串  
        String s3 = new  String("example" ); //用new关键字创建java字符串  
        System.out.println(S1);  
        System.out.println(S2);  
        System.out.println(S3);  
    }
}

运行以上示例,输出如下结果:

java
strings
example

本节有以下内容:

string的简介

string的方法

stringBuffer类

stringBuilder类

stringBuffer与stringBuilder的区别

微信扫码登陆