Java中创建字符串的方式

26 阅读2分钟

在 Java 中,创建字符串的方式主要有以下几种:

1. 使用字符串字面量

这是最常见的方式,使用双引号直接创建字符串:

String str1 = "Hello, World!";

特点:

  • 字符串会存储在字符串常量池中。
  • 如果常量池中已有相同值的字符串对象,则不会创建新对象,而是直接引用已有对象。

2. 使用 new 关键字

通过 new 显式创建字符串对象:

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

特点:

  • 即使常量池中已有相同值的字符串,也会在堆内存中创建一个新的字符串对象。
  • 不推荐用这种方式创建字符串,除非有特殊需求。

3. 使用 String 类的构造方法

可以通过多种构造函数来创建字符串,例如:

// 从字符数组创建字符串
char[] chars = {'H', 'e', 'l', 'l', 'o'};
String str3 = new String(chars);

// 从字节数组创建字符串
byte[] bytes = {72, 101, 108, 108, 111};
String str4 = new String(bytes);

特点:

  • 适合需要对字符数组或字节数组进行转换时使用。

4. 使用 StringBuilderStringBuffer

可以通过这些类先构造字符串,然后调用 toString() 方法创建最终的字符串:

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

特点:

  • StringBuilder 是非线程安全的,性能更高。
  • StringBuffer 是线程安全的,适合多线程环境。
  • 适合需要频繁拼接字符串时使用。

5. 通过其他类生成

例如,通过 String.valueOf()format()concat() 等方法:

// 使用 valueOf
int num = 123;
String str6 = String.valueOf(num);

// 使用 format
String str7 = String.format("Hello, %s!", "World");

// 使用 concat
String str8 = "Hello".concat(", World!");

特点:

  • 通常用于格式化或将其他类型转换为字符串。

总结

字符串的创建方式应根据场景选择:

  • 字符串常量:推荐直接使用字面量。
  • 动态拼接:推荐使用 StringBuilder
  • 特殊数据:可用构造函数或工具方法如 valueOfformat