繁体   English   中英

BigDecimal.ONE和新BigDecimal(“1”)之间的区别

[英]Difference between BigDecimal.ONE and new BigDecimal(“1”)

下面两行代码有什么区别?

BigDecimal one = new BigDecimal("1");
BigDecimal two = BigDecimal.ONE;

这两条线路是否相同?

谢谢!

不,它们并不完全相同 - 第一个在每次执行时分配一个新对象(并且还必须解析该值); 第二个将每次使用对同一现有对象的引用。

由于BigDecimal是不可变的,因此您可以自由地重用现有实例 - 因此,在您知道值将是什么的“预先包装”对象时,这是有意义的。

BigDecimal.ONE是一个预先扫描的对象,与内存利用率相比,它具有高效率

BigDecimal one = new BigDecimal(“1”);

因为在这一行中它首先创建一个实例,然后解析字符串“1”然后分配。

而BigDecimal.ONE就像一个常数,会给你直接的价值。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM