java对象拷贝

深拷贝 or 浅拷贝

浅拷贝

  1. 属性是基本类型拷贝的是基本类型的“值”,属性是内存地址,拷贝的是内存地址。一个对象改变这个地址,会影响到另一个对象。
  2. String类型非常特殊,属于引用类型,但是String类型的数据是存放在常量池中,无法修改。

深拷贝

  1. 深拷贝相当于创建一个新的对象。

————————————————————————————————————————

import org.apache.commons.beanutils.PropertyUtils;

StringUtils.copyProperties(A,B);	// B赋A

import org.apache.commons.beanutils.BeanUtils;

BeanUtils.copyProperties(A,B); 	// B赋A

beanutils.PropertyUtils与beanutils.BeanUtils的不同(.copyProperties()方法)

  1. beanutils.BeanUtils提供类型转换,即发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围内进行转换,PropertyUtils不支持这个功能
  2. BeanUtils.copyProperties()可以在一定范围内进行类型转换,同时还要注意一些不能转换时候,会将默认null值转化成0;
  3. Property.copyProperties()则是严格的类型转化,必须类型和属性名完全一致才转化

beanutils.BeanUtils支持的类型转换

* java.lang.BigDecimal   
  
* java.lang.BigInteger   
  
* boolean and java.lang.Boolean   
  
* byte and java.lang.Byte   
  
* char and java.lang.Character   
  
* java.lang.Class   
  
* double and java.lang.Double   
  
* float and java.lang.Float   
  
* int and java.lang.Integer   
  
* long and java.lang.Long   
  
* short and java.lang.Short   
  
* java.lang.String   
  
* java.sql.Date   
  
* java.sql.Time   
  
* java.sql.Timestamp  

import org.springframework.beans

BeanUtils.copyProperties(A,B);
   // A赋B

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值