[英]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.