在 Java 中,String(字符串) 的创建方式主要有以下几种,每种方式在内存和性能上略有区别。
String s1 = "hello";
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // true(同一对象)
new 关键字(不推荐频繁使用)String s2 = new String("hello");
== 比较的是不同对象String s1 = "hello";
String s2 = new String("hello");
System.out.println(s1 == s2); // false
char[] chars = {'h', 'e', 'l', 'l', 'o'};
String s3 = new String(chars);
byte[] bytes = {104, 101, 108, 108, 111}; // hello
String s4 = new String(bytes);
指定编码(推荐):
String s5 = new String(bytes, StandardCharsets.UTF_8);
StringBuilder / StringBuffer适合 频繁拼接字符串
StringBuilder sb = new StringBuilder();
sb.append("hello");
sb.append(" world");
String s6 = sb.toString();
valueOf()String s7 = String.valueOf(123);
intern() 方法(进阶)String s = new String("hello").intern();
| 场景 | 推荐方式 |
|---|---|
| 普通字符串 | String s = "xxx"; |
| 拼接字符串 | StringBuilder |
| 明确新对象 | new String() |
| 编码转换 | new String(bytes, charset) |
如果你愿意,我也可以:
你想了解哪一个?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。