【问题标题】:StringBuiler in place of StringBuffer for appending multiple String with dynamic inputs in EJBStringBuilder 代替 StringBuffer 用于在 EJB 中附加多个带有动态输入的字符串
【发布时间】:2014-07-09 12:50:53
【问题描述】:

根据定义和工作“StringBuffer是同步的,而StringBuilder不是”在Java中

在项目中,我们使用多个文件来处理数据库操作,在许多文件中,我们使用 StringBuffer 来附加字符串。在一些 Ejb 文章中,我们刚刚了解到 EJB 容器提供了线程安全机制。

所以我们想知道我们可以使用 StringBuiler 代替 StringBuffer 来附加多个带有动态输入的字符串。

【问题讨论】:

    标签: string jakarta-ee ejb stringbuilder stringbuffer


    【解决方案1】:

    我假设您使用 StringBuffer 作为成员变量(但如果是这样,为什么?),否则这个问题没有任何意义。如果你是,那么是的,EJB 容器确保一次只有一个线程可以访问一个 bean 实例(除非你使用 EJB 3.1 单例会话 bean 并且使用了非标准并发设置),所以是的,你只是使用 StringBuilder。

    【讨论】:

    • 是的,我们使用 StringBuffer 作为成员变量。谢谢,它真的很有价值。
    【解决方案2】:

    StringBuilder 和 StringBuffer 都是可变的(您可以修改其中的字符)。 StringBuilder 是在 java 1.5 中引入的。唯一的区别是线程安全。 StringBuffer 是线程安全的,因此您可以在多线程应用程序中使用它。 StringBuilder 不是线程安全的。

    因此,如果您正在开发非多线程应用程序,请使用 StringBuilder,因为它正在执行 比 StringBuffer 好。

    希望这会有所帮助。

    祝你好运。

    【讨论】:

    • 关于 StringBuffer 和 StringBuilder 已经在文档中提及。问题是在 EJB 容器的情况下使用 StringBuilder。它会为 StringBuilder 提供同步/线程安全吗?
    猜你喜欢
    • 2016-07-13
    • 2020-10-14
    • 1970-01-01
    • 2013-02-08
    • 2020-04-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    相关资源
    最近更新 更多