在JDK8中,StringBuffer类有一个toStringCache,而StringBuilder没有。/***AcacheofthelastvaluereturnedbytoString.Cleared*whenevertheStringBufferismodified.*/privatetransientchar[]toStringCache;但是为什么呢?我能想到的一个可能原因是StringBuffer已经同步,因此可以更轻松地实现缓存。或者也许历史上StringBuffer是这样实现的,所以旧代码严重依赖这个特性?鉴于现代JVM具有逃逸分析和偏向锁定,这些差异是否相关?