![](/img/trans.png)
[英]Why is there a call to “String.valueOf(Object)” in my string concatenation bytecode?
[英]Why does the println (Object x) method in PrintStream.java call String.valueOf() from outside the synchronized block?
为什么PrintStream.java中的println(Object x)方法从同步块外部调用String.valueOf()?
为什么不使用现有的打印(对象obj)?
为了表现?
String.valueOf(x)
调用toString()
上方法x
。 此方法的实现可以执行任何操作,包括在此或其他PrintStream
实例上进行同步。 为了避免死锁,需要在锁之外调用String.valueOf()
。
由于需要在对象之后立即打印换行符,因此即使有其他线程将其他数据写入同一PrintStream
也无法重用print
方法。 为此,可在synchronized
块内调用print
和newLine
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.