Java小后生 2023-08-11 14:50 采纳率: 0%
浏览 6

为什么将全局变量kyzIdList的值赋值给局部变量list ,然后去改变局部变量的值,全局变量kyzIdList也跟着变了

为什么将全局变量kyzIdList的值赋值给局部变量list ,然后去改变局部变量的值,全局变量kyzIdList也跟着变了?

@RestController
@RequestMapping("homePage")
public class TestController implements ApplicationRunner {
    private static final List<String> kyzIdList = new ArrayList<>();

    @Override
    public void run(ApplicationArguments args) throws Exception {
         getKyzIdList();
    }

    @RequestMapping("electric")
    public void electric(@RequestParam Map<String, Object> params) {
        List<String> list = kyzIdList;
        for (int i = 0; i < list .size(); i++) {
            String s = list .get(i);
            if (s.equals("1")) {
                list .remove(i);
                i--;
            }
        }
    }
        private final List<String> getKyzIdList () {
            //ArrayList<String> list = new ArrayList<>();
            kyzIdList.add("1");
            kyzIdList.add("2");
            kyzIdList.add("3");
            kyzIdList.add("4");
            kyzIdList.add("5");
            //kyzIdList=list;
            return kyzIdList;
        }
    }

  • 写回答

3条回答 默认 最新

  • 兴奋的大母鸡 2023-08-11 15:21
    关注

    内存地址一样
    你的银行卡不管是绑定了支付宝,还是微信,只要有消费,钱包里的钱就会变,支付宝/微信就相当于你的定义,钱就相当于你的内存地址

    评论

报告相同问题?

问题事件

  • 创建了问题 8月11日