温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java字符串如何创建

发布时间:2026-07-25 03:18:02 来源:亿速云 阅读:98 作者:小樊 栏目:编程语言

在 Java 中,**字符串(String)**是非常常用的类型,主要有以下几种创建方式,以及它们背后的区别。


一、使用字符串字面量(最常见)

String s1 = "Hello";

特点:

  • 字符串会放入 字符串常量池(String Pool)
  • 如果常量池中已存在相同内容的字符串,会直接复用
  • 推荐方式,效率高
String s2 = "Hello";
System.out.println(s1 == s2); // true(同一对象)

二、使用 new 关键字(不推荐)

String s3 = new String("Hello");

特点:

  • 一定会在 堆内存中创建一个新的对象
  • 如果常量池中不存在 "Hello",也会在常量池中创建一个
  • 通常比字面量方式更耗内存
String s4 = new String("Hello");
System.out.println(s3 == s4); // false(不同对象)

三、通过字符数组创建

char[] chars = {'H', 'e', 'l', 'l', 'o'};
String s5 = new String(chars);

常用于:

  • 从输入流、文件、网络读取字符
  • 需要动态构建字符串

四、通过字节数组创建(指定编码)

byte[] bytes = {72, 101, 108, 108, 111};
String s6 = new String(bytes);

指定编码(推荐):

String s7 = new String(bytes, StandardCharsets.UTF_8);

五、字符串拼接(编译期 vs 运行期)

String s8 = "Hel" + "lo";        // 编译期优化,等同于 "Hello"
String s9 = s1 + " World";       // 运行期,实际生成新对象

⚠️ 注意:

  • 大量字符串拼接不要直接用 +
  • 推荐使用 StringBuilder 或 StringBuffer

六、使用 StringBuilder / StringBuffer

StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" World");
String result = sb.toString();

区别:

类 是否线程安全 性能
StringBuilder 否 高(推荐)
StringBuffer 是 较低

七、总结对比

创建方式 是否入池 是否推荐
"abc" ✅ ✅✅✅
new String("abc") ❌ ❌
char[] / byte[] ❌ ✅
拼接 视情况 少量可用
StringBuilder ❌ ✅✅

八、常见面试点

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

System.out.println(a == b);        // false
System.out.println(a.equals(b));   // true

✅ 比较内容用 equals
❌ 比较对象地址才用 ==


如果你愿意,我也可以:

  • 给你画一张 String 内存结构图
  • 讲清楚 String 为什么不可变
  • 对比 String、StringBuilder、StringBuffer 的底层原理
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手