gpt4 book ai didi

java - 当他们说 StringBuffer 类是同步的时,到底是什么意思?该类的所有方法都声明为同步的吗?

转载 作者:行者123 更新时间:2023-12-01 18:15:42 24 4
gpt4 key购买 nike

我知道 StringBuffer 类是同步的(或线程安全的),而 StringBuilder 不是。这是否意味着 StringBuffer 中的所有方法(例如append)都使用关键字synchronized 进行声明?

我检查了哈瓦API:http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html

根据 API,诸如 public StringBuffer append(String str) 之类的方法未使用关键字 synchronized 进行声明。

谁能解释一下吗?

最佳答案

synchronized 关键字不会出现在生成的 JavaDoc 中,但是如果你打开 StringBuffer 的源代码,你会看到每个公共(public)方法都可以更改实例的状态实际上在其签名中具有 synchronized 关键字,例如。

public synchronized StringBuffer append(StringBuffer sb) {
toStringCache = null;
super.append(sb);
return this;
}

正如评论中其他人提到的,静态与线程安全没有直接关系。如果您的意思是这些方法没有使用 synchronized 关键字声明,那么这应该可以回答您的问题。

关于java - 当他们说 StringBuffer 类是同步的时,到底是什么意思?该类的所有方法都声明为同步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29729448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com