BigDecimal("0")和BigDecimal.ZERO之间有区别吗?

Mat*_*mes 26 java bigdecimal zero

无论是对于新变量的比较还是初始化,它是否会影响您使用哪一个?

我知道BigDecimal.ZERO是一个1.5特性,所以这是一个问题,但假设我使用1.5是否重要?

谢谢.

Gre*_*ill 36

BigDecimal.ZERO是一个预定义的常量,因此不必在运行时从字符串中进行求值BigDecimal("0").它会更快,不需要创建新对象.

如果您的代码需要在1.5之前运行,那么您可以使用(备受mal的)Singleton模式来创建相当于的对象BigDecimal.ZERO.第一次使用它时,它将调用BigDecimal("0")创建一个零对象,并在后续调用中返回该对象.否则,如果您的代码在1.5系统上运行,则您的单例对象只能返回BigDecimal.ZERO而不会损失运行时.


Jon*_*eet 14

使用ZERO不会创建新对象或需要任何解析.绝对是要走的路.