JAVA修改函数传入参数值时对原值的影响

本文探讨了JAVA中函数传入参数值对象、引用对象和集合对象时,函数内部修改值对原对象的影响。通过测试代码展示了值对象在函数内修改不会影响外部,而引用对象和集合对象的修改可能会导致外部对象值的改变。在实际项目中,建议传入实体ID或使用VO包装来避免意外修改。
摘要由CSDN通过智能技术生成

        在一次浏览器请求中,发现后台对象的值变了,但大体浏览了下代码,没有对数据做任何更改,再仔细查检查下,原来是实体做参数被其他对象调用时,发生了改动!然后hibernate侦测到了变化,执行了UPDATE语句,改变了记录值。今天在网上搜索了下,竟然还找到了类似的面试题目,所以自己写了段代码测试下。

        下面先上测试的代码,后面再做个简单分析。

public class Test {

    public static class User {
        private String firstName;
        private String lastName;

        public String getFirstName() {
            return firstName;
        }

        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }

        public String getLastName() {
            return lastName;
        }

        public void setLastName(String lastName) {
            this.lastName = lastName;
        }

        @Override
        public String toString() {
            return "User [firstName=" + firstName + ", lastName=" + lastName
             
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值