咕噜咕噜502 2022-01-11 09:38 采纳率: 57.7%
浏览 166
已结题

使用增强for循环会出现什么问题?

在idea中写的方法中出现警告,提示我写的普通for循环要我改为增强for,百度说不要在增强for中使用修改操作,这个修改操作指的是移除集合中某下标数据,还是说数据库之类的修改操作也不行?试了一下修改数据库数据是没问题的,不太确定,还是想问一下。
还有就是到底使用普通for好还是增强for呢?
=================
还有就是在编写代码时,需要尽量避免警告的出现吗?虽然这些警告不会对程序运行造成影响。
=================
“不需要的对象在使用后需赋值为空”我有时在方法中会将使用过的对象赋null的操作,但是idea也会警告 "The value null assigned to 'outTheadData' is never used"这步赋值为null的操作多余吗?但是可能如果没有赋值null,这个对象会占用内存空间,我想问问是写着好还是说去掉,希望提一下意见,在什么情况下使用,什么情况不需要多余的写这步操作

  • 写回答

5条回答 默认 最新

  • 俺不理解 2022-01-11 09:55
    关注
    1. 《“不需要的对象在使用后需赋值为空”我有时在方法中会将使用过的对象赋null的操作,但是idea也会警告 "The value null assigned to 'outTheadData' is never used"这步赋值为null的操作多余吗?但是可能如果没有赋值null,这个对象会占用内存空间,我想问问是写着好还是说去掉》这个问题,你只需要对类对象回收(如果确认不再使用的话)如果是方法内声明使用的对象,那是不需要赋值null的,因为jvm会在作用域结束后自动回收(时机不定,但是会标记废弃)

    2. 《这个修改操作指的是移除集合中某下标数据,还是说数据库之类的修改操作也不行?试了一下修改数据库数据是没问题的,不太确定,还是想问一下。》这个问题,foreach 无法修改的是集合序列中的引用,但是可以修改引用对象内部的数据。举个栗子:

    • 集合 / 数组 list 中有 下标对应数据: 0 - data0,1 - data1 ...
    • foreach 无法修改 0 对应的目标,但是可以修改 data0.*** 某一项数据
    • 比如 for(Data data : list) 如果你做操作 data = new Data(),这个赋值对 list 是无效的,在本轮循环结束后将会丢弃
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月11日
  • 已采纳回答 1月11日
  • 修改了问题 1月11日
  • 修改了问题 1月11日
  • 展开全部

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备