Java创建字符串的2种方式

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java创建字符串的2种方式相关的知识,希望对你有一定的参考价值。

创建String对象,有两种方式:

  • 一是new型:String s = new String("abc");
  • 另一种是双引号型:String s = "abc";

那么这两种方式有什么区别呢?

  • 这两种方法生成的字符串对象,在内存中的存取机制不同。
  • Java为String类型提供了缓冲池机制,当使用双引号定义对象时,Java环境首先去字符串缓冲池寻找相同内容的字符串,如果存在就直接拿出来应用,如果不存在则创建一个新的字符串放在缓冲池中。

示例代码如下:

String a = "tom";
String b = "tom";

在上诉代码中,变量a和b使用的是缓冲区中的同一个存储对象。

    @org.junit.Test
    public void test() {
        String a = "tom";
        String b = "tom";
        System.out.println(a == b);
    }

在这里插入图片描述

在使用String构造方法定义对象时,Java环境会和创建其他类型的对象一样,每次调用时,都会去创建一个新的对象。示例代码如下:

String a = new String("tom");
String b = new String("tom");

在上述代码中,变量a 和b 使用的是两个不同的存储对象,只是对象中的内容相同。

    @org.junit.Test
    public void test() {
        String a = new String("tom");
        String b = new String("tom");
        System.out.println(a == b);
    }

在这里插入图片描述

通常情况下,建议使用string a="tom"



以上是关于Java创建字符串的2种方式的主要内容,如果未能解决你的问题,请参考以下文章

VSCode创建自定义用户片段

条件片段和导航重用

Java常用类--String类概述 & 创建字符串的2种方式

一篇让你读懂java中的字符串(String)

IDEA对新建java线程池的建议

JAVA String创建对象问题