BigDecimal(“0”) 和 BigDecimal.ZERO 之间有区别吗?
2022-09-01 16:49:10
无论是为了比较还是初始化新变量,使用哪一个变量是否有区别?
我知道BigDecimal.ZERO是1.5的功能,所以这是一个问题,但假设我使用的是1.5,这有什么关系吗?
谢谢。
无论是为了比较还是初始化新变量,使用哪一个变量是否有区别?
我知道BigDecimal.ZERO是1.5的功能,所以这是一个问题,但假设我使用的是1.5,这有什么关系吗?
谢谢。
BigDecimal.ZERO
是预定义的常量,因此不必像现在这样在运行时从字符串进行计算。它将更快,并且不需要创建新对象。BigDecimal("0")
如果您的代码需要在 1.5 之前的版本中运行,则可以使用(备受诟病的)Singleton 模式来创建与 等效的对象。第一次使用它时,它将调用以创建一个零对象,并在后续调用中返回该对象。否则,如果您的代码在 1.5 系统上运行,则您的单例对象可以只返回而不会造成运行时损失。BigDecimal.ZERO
BigDecimal("0")
BigDecimal.ZERO
使用 ZERO 不会创建新对象或需要任何解析。绝对是要走的路。