1. 创建字符串
常见的构造 String 的方式
// 方式一
String str = "Hello Bit";
// 方式二
String str2 = new String("Hello Bit");
// 方式三
char[] array = {
'a', 'b', 'c'};
String str3 = new String(array);
在官方文档上 (https://docs.oracle.com/javase/8/doc/api/index.html) 我们可以看到 String 还支持很多其他的构造方式, 我们用到的时候去查就可以了.
注意事项:
- “hello” 这样的字符串字面值常量, 类型也是 String.
- String 也是引用类型.
String str ="Hello"
;
代码内存布局如下:
回忆 "引用"
- 引用类似于 C 语言中的指针, 只是在栈上开辟了一小块内存空间保存一个地址.但是引用和指针又不太相同, 指 针能进行各种数字运算(指针+1)之类的, 但是引用不能, 这是一种 “没那么灵活” 的指针.
- 另外,也可以把引用想象成一个标签, “贴” 到一个对象上. 一个对象可以贴一个标签, 也可以贴多个. 如果一个对 象上面一个标签都没有,那么这个对象就会被 JVM 当做垃圾对象回收掉.
- Java 中数组, String, 以及自定义的类都是引用类型.
由于 String 是引用类型, 因此对于以下代码
String str1 = "Hello";
String str2 = str1;
内存布局如图:
是不是修改 str1 , str2 也会随之变化呢?
String str1 = "Hello";
String str2 = str1;
str1 = "world";
System.out.println(str2);
// 执行结果
Hello
我们发现, “修改