您的位置:首页 > 新闻 > 资讯 > 游戏网页设计_电子商务毕业设计网站_网络建站工作室_竞价推广教程

游戏网页设计_电子商务毕业设计网站_网络建站工作室_竞价推广教程

2025/4/11 20:33:25 来源:https://blog.csdn.net/qq_63964907/article/details/144651572  浏览:    关键词:游戏网页设计_电子商务毕业设计网站_网络建站工作室_竞价推广教程
游戏网页设计_电子商务毕业设计网站_网络建站工作室_竞价推广教程

目录

  • Java 中的字符串
    • 字符串的创建
    • 字符串的比较
    • 字符串的拼接
    • 如何定义一个空的字符串

Java 中的字符串

字符串的创建

在 Java 中,可以通过以下几种方式创建字符串:

1.使用字符串字面量:

String str = "Hello, World!";

2.使用 new 关键字和构造函数:

String str = new String("Hello, World!");

3.使用 StringBuilderStringBuffer 类的 toString() 方法:

StringBuilder sb = new StringBuilder("Hello, World!");
String str = sb.toString();

字符串的比较

在 Java 中,比较字符串时需要注意以下几点:

  1. 使用 == 运算符比较字符串时,比较的是字符串的引用,而不是字符串的值。

    public class Client {public static void main(String[] args) {String a = "123"; //创建字符串String b = "123";System.out.println(a == b);}
    }
    

    在这里插入图片描述

    原因:相同字符串的地址共用

    图解:

    在这里插入图片描述

    在这里插入图片描述

    new关键字是在堆内存中开辟内存空间

    == 对基本数据类型来说进行的是值的判断,对引用数据类型来说比较的是地址是否相等

    public class Client {public static void main(String[] args) {String a = "123"; //创建字符串String b = "123";String c = new String(original: "123"); //new关键字是在堆内存中开辟内存空间System.out.println(a == b);System.out.println(a == c);System.out.println(b == c);//== 对基本数据类型来说进行的是值的判断,对引用数据类型来说比较的是地址是否相等}
    }
    

    在这里插入图片描述

    对基本数据类型来说 进行的是值的判断,基本数据类型只能用判断,没有equals()这个方法

    对引用数据类型来说 ==比较的是地址是否相等,equals()方法首先比较的是地址是否相等,如果相等返回true,如果不相等,比较的是值是否相等

  2. 使用 equals() 方法比较字符串时,比较的是字符串的值。

  3. 如果需要比较字符串的大小,可以使用 compareTo() 方法。

字符串的拼接

在 Java 中,可以使用 + 运算符或 concat() 方法来拼接字符串。

1.使用 + 运算符:

+这里会调用append()方法进行拼接,利用toString()方法生成new,toString()方法里有new关键字;new关键字是在堆内存中开辟内存空间

String str1 = "Hello";
String str2 = "World";
String str3 = str1 + ", " + str2 + "!";
public static void main(String[] args) {//字符串的拼接String s1 = "123";String s2 = "456";String s3 = s1 + s2;String s4 = "123456";System.out.println(s3 == s4);
}

在这里插入图片描述

原因:s3这里:调用了append()方法,进行了字符串拼接,形成了123456

执行顺序:

在这里插入图片描述

@Override
public synchronized String toString() {if (toStringCache == null) {toStringCache = Arrays.copyOfRange(value, from: 0, count);}return new String(toStringCache, share: true);
}

并且这里返回的是new,new关键字是在堆内存中开辟内存空间,

所以是flase

例题1:

在这里插入图片描述

在这里插入图片描述

例题2:

String s1 = "123" + "456"; //编译是编译成123456
String s2 = "123456"; //编译是编译成123456
System.out.println(s1);
System.out.println(s1 == s2); //所以是true

在这里插入图片描述

图解:

在这里插入图片描述

2.使用 concat() 方法:

String str1 = "Hello";
String str2 = "World";
String str3 = str1.concat(", " + str2 + "!");

如何定义一个空的字符串

字符串定义空的两种方法:

String 张三=" ";//在栈,堆内存中有指向,但是没有数据String 李四=null;//没有指向(指向是空)String 王五;//不能使用,必须要初始化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com