java如何定义字符串
定义字符串的基本方法
在Java中,字符串可以通过多种方式定义,最常见的是使用双引号直接创建字符串字面量或使用String类的构造函数。
String str1 = "Hello, World!"; // 字符串字面量
String str2 = new String("Hello, World!"); // 使用构造函数
字符串字面量存储在字符串常量池中,而通过构造函数创建的字符串对象存储在堆内存中。字符串字面量的方式更高效,因为相同的字符串字面量会共享同一内存地址。
使用字符数组定义字符串
可以通过字符数组初始化字符串,这在需要动态构建字符串时非常有用。

char[] charArray = {'H', 'e', 'l', 'l', 'o'};
String str3 = new String(charArray); // 从字符数组创建
使用字节数组定义字符串
如果数据以字节形式存在(例如从文件或网络读取),可以通过字节数组创建字符串,并指定字符编码。
byte[] byteArray = {72, 101, 108, 108, 111};
String str4 = new String(byteArray, "UTF-8"); // 指定编码
使用StringBuilder或StringBuffer
对于需要频繁修改的字符串,推荐使用StringBuilder或StringBuffer(线程安全)来动态构建字符串,最后转换为String对象。

StringBuilder builder = new StringBuilder();
builder.append("Hello");
builder.append(", ");
builder.append("World!");
String str5 = builder.toString(); // 转换为String
多行字符串(Java 13+)
从Java 13开始,可以使用文本块(Text Blocks)定义多行字符串,用三个双引号"""包裹内容。
String str6 = """
This is a
multi-line
string.
""";
字符串不可变性
Java中的字符串是不可变的,任何修改操作(如拼接、替换)都会生成新的字符串对象。理解这一点有助于避免性能问题和内存浪费。
String original = "Java";
String modified = original.concat(" Rules"); // 生成新对象






