You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LocalDate对象创建数量分析问询

LocalDate对象创建数量分析问询

嗨,我来帮你梳理这段代码里创建的LocalDate对象数量,先划个关键重点:LocalDate是不可变对象——它的任何修改类方法(比如plusDays、minusMonths这类)都不会改变原有对象本身,而是会返回一个全新的LocalDate实例。咱们逐行拆解代码:

LocalDate d1 = LocalDate.now();
d1.plusDays(1);
d1 = d1.minusMonths(2);
LocalDate d2 = d1.plusWeeks(3);
d2.minusDays(4);
d2 = null;
  • 第一行 LocalDate d1 = LocalDate.now();:调用now()直接创建了第1个LocalDate对象,并把引用赋值给d1。
  • 第二行 d1.plusDays(1);:调用plusDays(1)生成了第2个新的LocalDate对象,但这个对象没有被任何变量引用,后续会被垃圾回收,但确实是创建出来了。
  • 第三行 d1 = d1.minusMonths(2);:调用minusMonths(2)生成第3个新对象,之后把这个新对象的引用赋值给d1,原来d1指向的旧对象失去引用。
  • 第四行 LocalDate d2 = d1.plusWeeks(3);:调用plusWeeks(3)生成第4个新对象,把引用赋值给d2。
  • 第五行 d2.minusDays(4);:调用minusDays(4)生成第5个新对象,同样没有被引用,后续会被回收,但创建动作已经发生。
  • 最后一行 d2 = null;:只是将d2的引用置为空,没有创建新对象。

所以这段代码总共创建了5个LocalDate对象,和你的预期完全一致!

备注:内容来源于stack exchange,提问作者user20301714

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 08:08:07