String 与 StringBuffer 可以互相转换。
一个是线程安全的,一个是非线程安全的。
public final class Person {
private final String name;
private final String address;
public Person(String name, String address) {
this.name = name;
this.address = address;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public String toString() {
return "[ Person: name = " + name + ", address = " + address + " ]";
}
}
public class PrintPersonThread extends Thread {
private Person person;
public PrintPersonThread(Person person) {
this.person = person;
}
public void run() {
while (true) {
System.out.println(Thread.currentThread().getName() + " prints " + person);
}
}
}
public class Main {
public static void main(String[] args) {
Person alice = new Person("Alice", "Alaska");
new PrintPersonThread(alice).start();
new PrintPersonThread(alice).start();
new PrintPersonThread(alice).start();
}
}
类中字段不会被修改。所以是安全的。
分享到:
相关推荐
这些文章已扩充为一本书:《Java多线程编程实战指南(设计模式篇)》,由电子工业出版社出版,当当、亚马逊、京东、互动出版网、淘宝等各大书店有售。 【样章】 Active Object模式: Immutable Object模式: Two-...
调试(Debug)是查找和修复程序错误的过程,设计模式(Design Pattern)是解决常见问题的最佳实践。双精度浮点型(Double)和单精度浮点型(Float)用于表示浮点数值。垃圾回收(Garbage Collection)是自动管理内存...
以上只是《Effective Java》中的一部分重要概念,实际书籍中还涉及了很多其他主题,包括集合、多线程、序列化、类设计等方面的最佳实践。通过对这些原则的深入理解和应用,Java开发者可以提升代码质量,编写出更专业...
- **并行性**:Rust内置了高级的并发模型,支持安全的多线程编程,有助于编写可扩展的应用程序。 - **跨平台**:Rust支持多种操作系统,如Windows、macOS和Linux等。 #### 2. Rust与C++相比有哪些优势和不同之处? ...