当前位置: 首页 > news >正文

做短租哪个网站好中国建设银行官网站保本理财

做短租哪个网站好,中国建设银行官网站保本理财,亦庄网站建设价格,深圳福田区房价多少钱一平米目录 1. 深拷贝#xff08;Deep Copy#xff09; 2. 浅拷贝#xff08;Shallow Copy#xff09; 3. 深拷贝和浅拷贝的区别 4. 示例代码 浅拷贝示例 深拷贝示例 5.常用的方法 1.Java Object.clone() 方法 2.序列化与反序列化 6.Spring Boot 中的常用方法 使用 Se…目录 1. 深拷贝Deep Copy 2. 浅拷贝Shallow Copy 3. 深拷贝和浅拷贝的区别 4. 示例代码 浅拷贝示例 深拷贝示例 5.常用的方法 1.Java Object.clone() 方法 2.序列化与反序列化 6.Spring Boot 中的常用方法 使用 SerializationUtils 使用 ModelMapper 或 MapStruct 7.Hutool 工具类 浅拷贝 深拷贝 8.Guava 中的相关工具类 总结 深拷贝和浅拷贝是对象复制的两种方式它们在处理引用类型的字段时存在显著差异。下面将详细介绍它们的含义、区别并提供代码示例。 1. 深拷贝Deep Copy 定义深拷贝创建一个新对象并且复制原对象中的所有字段包括引用类型的字段。对于每个引用类型的字段它都会创建一个新的实例确保源对象和目标对象之间没有任何共享的引用。 递归地复制所有子对象。即使原始对象或拷贝对象修改其子对象也不会互相影响。 特点 基本数据类型的值会被复制。 引用数据类型的对象会被完全独立地复制。 2. 浅拷贝Shallow Copy 定义浅拷贝创建一个新对象该对象与原对象具有相同的值但对引用类型字段只会复制引用地址而不复制实际的对象。这意味着原对象和新对象的引用类型属性指向同一块内存。 不递归地复制对象所引用的子对象。它仅复制对象的基本数据类型和对引用类型的引用因此原始对象和拷贝对象中对引用类型的修改会相互影响。 特点 基本数据类型的值会被复制。 引用数据类型的对象会共享同一个实例。 3. 深拷贝和浅拷贝的区别 特性浅拷贝深拷贝对基本类型复制其值复制其值对引用类型复制引用共同使用同一对象复制对象各自独立的对象影响修改一个对象的引用类型字段会影响另一个对象修改一个对象不会影响另一个对象 4. 示例代码 浅拷贝示例 class Address {String city; ​public Address(String city) {this.city city;} } ​ class Person implements Cloneable {String name;Address address; ​public Person(String name, Address address) {this.name name;this.address address;} ​Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone(); // 浅拷贝} } ​ public class ShallowCopyExample {public static void main(String[] args) throws CloneNotSupportedException {Address address new Address(New York);Person person1 new Person(Alice, address);Person person2 (Person) person1.clone(); // 浅拷贝 ​System.out.println(Before modification:);System.out.println(Person1 Address: person1.address.city); // 输出: New YorkSystem.out.println(Person2 Address: person2.address.city); // 输出: New York ​// 修改 person2 的地址person2.address.city Los Angeles; ​System.out.println(After modification:);System.out.println(Person1 Address: person1.address.city); // 输出: Los Angeles (共享同一引用)System.out.println(Person2 Address: person2.address.city); // 输出: Los Angeles} } 深拷贝示例 class Address {String city; ​public Address(String city) {this.city city;} ​// 深拷贝方法public Address deepCopy() {return new Address(this.city);} } ​ class Person {String name;Address address; ​public Person(String name, Address address) {this.name name;this.address address;} ​// 深拷贝方法public Person deepCopy() {return new Person(this.name, this.address.deepCopy());} } ​ public class DeepCopyExample {public static void main(String[] args) {Address address new Address(New York);Person person1 new Person(Alice, address);Person person2 person1.deepCopy(); // 深拷贝 ​System.out.println(Before modification:);System.out.println(Person1 Address: person1.address.city); // 输出: New YorkSystem.out.println(Person2 Address: person2.address.city); // 输出: New York ​// 修改 person2 的地址person2.address.city Los Angeles; ​System.out.println(After modification:);System.out.println(Person1 Address: person1.address.city); // 输出: New York (不受影响)System.out.println(Person2 Address: person2.address.city); // 输出: Los Angeles} } 5.常用的方法 1.Java Object.clone() 方法 Object 类提供的 clone() 方法可以用于实现浅拷贝。 需要实现 Cloneable 接口并重写 clone() 方法。 2.序列化与反序列化 对象可以通过序列化为字节流再反序列化为新对象。这种方式可以实现深拷贝。 需要实现 Serializable 接口。 6.Spring Boot 中的常用方法 在 Spring Boot 中通常使用以下方式来实现深拷贝 使用 SerializationUtils import org.springframework.util.SerializationUtils; ​ byte[] bytes SerializationUtils.serialize(originalObject); MyObject copiedObject (MyObject) SerializationUtils.deserialize(bytes); ​ 使用 ModelMapper 或 MapStruct ModelMapper 和 MapStruct 都可以用来轻松地进行对象之间的映射借此实现深拷贝。 7.Hutool 工具类 Hutool 提供了简单易用的工具类可以进行深拷贝和浅拷贝 浅拷贝 Person copy ShallowUtil.clone(original); 深拷贝 Person deepCopy CloneUtil.clone(original); 8.Guava 中的相关工具类 Guava 提供了 Immutable 集合来避免可变性虽然不是直接的拷贝方法但可以帮助管理不可变对象。 ImmutableList、ImmutableSet和ImmutableMap 用于创建不可变的集合这样可以避免浅拷贝的问题。 不可变集合在创建后无法更改这使得它们特别适合于多线程环境和函数式编程风格。 import com.google.common.collect.ImmutableList; ​ public class ImmutableListExample {public static void main(String[] args) {// 创建一个不可变列表ImmutableListString immutableList ImmutableList.of(Apple, Banana, Cherry); ​System.out.println(immutableList); ​// 下面的操作会抛出 UnsupportedOperationException因为该列表是不可变的// immutableList.add(Date); // Uncommenting this line will throw an exception} } import com.google.common.collect.ImmutableSet; ​ public class ImmutableSetExample {public static void main(String[] args) {// 创建一个不可变集合ImmutableSetString immutableSet ImmutableSet.of(Red, Green, Blue); ​System.out.println(immutableSet); ​// 下面的操作会抛出 UnsupportedOperationException因为该集合是不可变的// immutableSet.add(Yellow); // Uncommenting this line will throw an exception} } ​ ​ import com.google.common.collect.ImmutableMap; ​ public class ImmutableMapExample {public static void main(String[] args) {// 创建一个不可变映射ImmutableMapString, Integer immutableMap ImmutableMap.of(Alice, 30,Bob, 25,Charlie, 35); ​System.out.println(immutableMap); ​// 下面的操作会抛出 UnsupportedOperationException因为该映射是不可变的// immutableMap.put(Dave, 40); // Uncommenting this line will throw an exception} } ​ 总结 浅拷贝和深拷贝分别适用于不同的场景。 根据需要选择合适的拷贝方法并利用现有的框架和库简化工作。
http://www.ho-use.cn/article/10822154.html

相关文章:

  • 深圳市建设工程造价站官网二手书交易网站开发背景分析
  • 网站建设方案数给网站人做网站
  • 东莞做网站排名优化推广排名优化系统
  • 赣州营销网站建设一般做网站的在哪里找
  • 鲜花网站建设企划书口碑好的秦皇岛网站建设哪里有
  • 网页网站开发公司佛山网站建设外贸
  • 中国高清adidas网站北京5人死亡
  • 汕头网站关键排名创建全国文明城市演讲稿
  • 购物网站建设款流程天津建设工程信息网网上报名
  • 建站之星模板好吗免费vip电影网站怎么做
  • 大型网站故障设计店名logo
  • 不属于企业网站建设基本标准的是一个ip地址上可以做几个网站吗
  • 山东省建设工程 评估中心网站做食物网站应该考虑些什么
  • 产品设计排版网站wordpress 网银
  • 新网站收录多少关键词郑州工装定制公司
  • 这么给网站做关键字临沂地区建站网站
  • 设计通网站建设网店运营推广登录入口
  • 疗养院有必要做网站吗招聘网站设计师要求
  • 新乡专业做网站做英文网站怎么赚钱
  • 网站虚拟建设策划做设计网站的工作
  • 目前做美术的网站以及app程序员接外包平台
  • 违法网站建设国外服务器网站建设 启象科技
  • 网站移动端建设家居装修设计平台
  • 那里有专做粮食的网站乐清建网站哪家强
  • 福建两学一做网站wordpress 租赁主题
  • 免费发帖的网站广州网站优化流程
  • 网站百度不收录了襄阳网站设计制作公司
  • 旺苍网站建设海南房产网
  • 中山网站制作方案阿里云空间做网站
  • 网站开发必看书籍宝安中心医院怎么样