ptaCH05-SL-5.1为字符串赋值,创建Main类,声明多个字符串变量,用不同的赋值方法为这些字符串变量赋值并输出。
时间: 2025-03-21 13:08:47 浏览: 32
### Java 中为字符串变量赋值并输出
在 Java 中,`String` 是一种特殊的对象类型,用于表示不可变的字符序列。可以通过多种方式声明和初始化 `String` 变量,并将其输出到控制台。
#### 方法一:直接赋值
可以直接将一个字符串字面量分配给 `String` 对象。这种方式会在 JVM 的字符串常量池中查找是否存在相同的字符串,如果存在,则返回该字符串的引用;如果不存在,则创建一个新的字符串对象并放入常量池中[^3]。
```java
public class Main {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "World";
System.out.println(str1); // Hello
System.out.println(str2); // World
}
}
```
#### 方法二:使用 `new` 关键字
通过 `new` 创建的 `String` 对象会被存储在堆内存中,而不是字符串常量池中。即使字符串的内容相同,也会创建新的对象。
```java
public class Main {
public static void main(String[] args) {
String str1 = new String("Hello");
String str2 = new String("World");
System.out.println(str1); // Hello
System.out.println(str2); // World
}
}
```
#### 方法三:组合赋值与操作
可以对已有的 `String` 进行拼接或其他操作后再赋值给另一个 `String` 变量。需要注意的是,字符串拼接通常会产生额外的对象,因此建议避免频繁使用 `+` 操作符进行大量字符串连接。
```java
public class Main {
public static void main(String[] args) {
String part1 = "Hello ";
String part2 = "World!";
String result = part1 + part2;
System.out.println(result); // Hello World!
}
}
```
#### 成员变量与局部变量的区别
对于类中的成员变量(实例变量或类变量),如果没有显式初始化,默认情况下会有一个默认值(对于 `String` 类型来说是 `null`)。而局部变量则必须在使用前显式初始化[^5]。
```java
class Example {
String memberStr; // 默认值为 null
public void testMethod() {
String localStr; // 局部变量未初始化
// 下列语句会导致编译错误
// System.out.println(localStr);
}
public static void main(String[] args) {
Example example = new Example();
System.out.println(example.memberStr); // 输出 null
}
}
```
---
### 总结
- 使用 `"..."` 方式的赋值会使字符串进入常量池。
- 使用 `new String(...)` 的方式会在堆上创建新对象。
- 字符串一旦创建即不可更改其内容。
- 成员变量有默认值,而局部变量需手动初始化才能使用。
阅读全文
相关推荐






