1.我对这两者感到困惑,如果有,那么它们有不同的功能吗?

StringBuffer(CharSequence chars)


StringBuffer(String str)

2. String 和 CharSequence(特殊功能)之间的基本区别是什么?

最佳答案

CharSequence 是一个接口(interface);碰巧 String 实现了它。

这意味着,例如,当您在 .charAt() 上调用 String 时,真正调用的是 String 的这个 CharSequence 方法的实现。

CharSequence 的 javadoc 可以看出,JDK 中真正实现这个接口(interface)的类并不多。

至于为什么有两个构造函数,StringBuffer可以追溯到Java 1.0,CharSequence只出现在1.4中;然而,这也是 StringBuilder (你应该使用,实际上,而不是 StringBuffer )有两个构造函数(一个以 CharSequence 作为参数,另一个以 String 作为参数)的情况,所以当 a String 作为参数传递。至于这种优化可能是什么,嗯,这是“使用源,卢克”(tm)的一个案例。

作为一个不在 JDK 中的 CharSequence 实现的例子,你可以看到我的一个项目: largetext 。请注意,除其他外,从 Matcher uses a Pattern and not a CharSequence as an argument 生成 String ;并且由于 String 实现了 CharSequence ,所以将 String 作为参数传递是有效的。

关于java - StringBuffer(String str) 和 StringBuffer(CharSequence chars) 的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27175875/

10-11 04:58