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

自己做传奇网站网站开发整体流程图

自己做传奇网站,网站开发整体流程图,wordpress数据库配置文件,莫名接到网站建设电话前言#xff1a;在Java编程中#xff0c;深拷贝#xff08;Deep Copy#xff09;与浅拷贝#xff08;Shallow Copy#xff09;是两个非常重要的概念。它们涉及到对象在内存中的复制方式#xff0c;对于理解对象的引用、内存管理以及数据安全都至关重要。 ✨✨✨这里是秋…        前言在Java编程中深拷贝Deep Copy与浅拷贝Shallow Copy是两个非常重要的概念。它们涉及到对象在内存中的复制方式对于理解对象的引用、内存管理以及数据安全都至关重要。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 先让我们看一下本文的大致内容 目录 1.深拷贝与浅拷贝的概念 1浅拷贝 2深拷贝 2.浅拷贝的实现 3.深拷贝的实现 4.深浅拷贝的作用 浅拷贝的作用 深拷贝的作用 1.深拷贝与浅拷贝的概念 ——在了解Java中是如何实现对象的深浅拷贝之前我们需要先了解一下什么是深拷贝、浅拷贝 1浅拷贝 在浅拷贝中只复制对象本身而不复制对象引用的内容。这意味着如果对象中包含了引用类型的成员变量那么这些成员变量的引用将会被复制但是它们仍然指向相同的内存地址。因此对于引用类型成员变量的修改会影响到原始对象和拷贝对象。 2深拷贝 与浅拷贝不同深拷贝会递归地复制对象及其所有引用的对象直到所有对象都被复制到一个新的内存地址上。这样原始对象和拷贝对象完全独立彼此的修改不会相互影响。 嗯嗯嗯......感觉看了和没看没什么区别还是不太能理解到底什么是Java中的深浅拷贝那么我们使用一个生活中的案例来解释一下 浅拷贝的情景 ——如果你选择了浅拷贝那么你会简单地把整个礼物篮进行复制然后送给你的朋友。在这种情况下你的朋友会得到一个看起来一模一样的礼物篮。然而当你的朋友拆开礼物篮他们发现里面的食品和饰品并没有改变他们是和你的礼物篮里的相同的食品和饰品。 深拷贝的情景 ——相比之下如果你选择了深拷贝那么你会仔细地把礼物篮里的每一样东西都复制一份然后把这些复制品装进一个新的礼物篮里送给你的朋友。在这种情况下你的朋友得到的是一个全新的礼物篮里面的食品和饰品和你的礼物篮里的完全一样。但是现在他们拥有的是独立于你的礼物篮的新的食品和饰品。 不知道上面的生活案例有没有使你更好的理解Java中的深浅拷贝如果还是没有那么直接往下看即可 大致的了解了什么是Java中的深浅拷贝之后那么我们又该如何使用代码去实现它们呢 2.浅拷贝的实现 在Java中实现浅拷贝通常使用clone()方法。该方法会创建一个新对象并将原始对象的所有字段值复制到新对象中。但是需要注意的是对于引用类型的成员变量仍然是浅拷贝即复制的是引用而不是对象本身。 下面是在Java中实现浅拷贝的详细步骤 1.实现Cloneable接口 class MyClass implements Cloneable {// 类的定义 }2.重写clone()方法并调用super.clone() class MyClass implements Cloneable {// 类的定义Overridepublic Object clone() throws CloneNotSupportedException {return super.clone();} }3.在使用时捕获CloneNotSupportedException异常 try {MyClass copy (MyClass) original.clone(); } catch (CloneNotSupportedException e) {e.printStackTrace(); }4.强制转换由于clone()方法返回的是Object类型因此在使用时需要进行类型转换。 try {MyClass copy (MyClass) original.clone(); } catch (CloneNotSupportedException e) {e.printStackTrace(); }这就是实现Java中浅拷贝的四步实现流程相信你仔细的读完上边的代码之后对Java中浅拷贝的实现流程已经有了初步的理解了现在让我们使用一个完整的案例来实现一下Java中的浅拷贝     class Person implements Cloneable {private String name;private Address address;public Person(String name, Address address) {this.name name;this.address address;}// Getter and setter 方法Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} }class Address {private String city;public Address(String city) {this.city city;}// Getter and setter 方法 }public class ShallowCopyExample {public static void main(String[] args) {Address address new Address(New York);Person person1 new Person(Alice, address);try {Person person2 (Person) person1.clone();// 输出: trueSystem.out.println(person1.getAddress() person2.getAddress()); } catch (CloneNotSupportedException e) {e.printStackTrace();}} }以上代码演示了一个浅拷贝的例子。让我来解释一下它的执行过程和输出 首先我们定义了两个类Person和Address。Person类有一个name属性和一个address属性而Address类只有一个city属性。 在ShallowCopyExample类的main方法中我们创建了一个Address对象表示Alice的地址是New York。然后我们创建了一个Person对象person1传入了名字Alice和上面创建的Address对象。 接着我们调用person1.clone()方法进行浅拷贝。由于Person类实现了Cloneable接口并重写了clone()方法因此它支持克隆操作。在clone()方法内部我们调用了super.clone()来复制Person对象本身但是对于address属性只是复制了其引用而没有对Address对象进行深度复制。 输出语句System.out.println(person1.getAddress() person2.getAddress());比较了person1和person2的address属性是否是同一个对象。由于浅拷贝只是复制了引用所以person1和person2的address属性指向的是同一个Address对象因此输出结果为true。 这样我们就大致的了解了在Java中如何去实现对象的浅拷贝了。 3.深拷贝的实现 在Java中实现深拷贝相对于浅拷贝来说更为复杂因为需要确保对象及其引用的所有对象都被复制到新的内存地址上。 下面是在Java中实现深拷贝的详细流程 1.实现Cloneable接口同样为了使用clone()方法需要确保类实现了Cloneable接口。 class MyClass implements Cloneable {// 类的定义 }2.重写clone()方法在重写的clone()方法中除了调用super.clone()来复制对象本身之外还需要递归地复制所有引用的对象。 class MyClass implements Cloneable {private AnotherClass anotherObject;public MyClass(AnotherClass anotherObject) {this.anotherObject anotherObject;}// Getter and setter 方法Overridepublic Object clone() throws CloneNotSupportedException {MyClass clonedObject (MyClass) super.clone();// 对引用类型的成员变量进行深度复制clonedObject.anotherObject (AnotherClass) anotherObject.clone();return clonedObject;} }3.在引用类型的类中同样实现深拷贝如果类中有成员变量是引用类型那么需要在该引用类型的类中同样实现深拷贝。 class AnotherClass implements Cloneable {// 类的定义Overridepublic Object clone() throws CloneNotSupportedException {return super.clone();} }4.调用clone()方法现在可以调用clone()方法来获取深拷贝的对象。 public class DeepCopyExample {public static void main(String[] args) {AnotherClass anotherObject new AnotherClass();MyClass original new MyClass(anotherObject);MyClass deepCopy null;try {deepCopy (MyClass) original.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();}} }这就是实现Java中深拷贝的四步实现流程当然现在让我们使用一个完整的案例来实现一下Java中的深拷贝     class Person implements Cloneable {private String name;private Address address;public Person(String name, Address address) {this.name name;this.address address;}// Getter and setter 方法Overrideprotected Object clone() throws CloneNotSupportedException {Person clonedPerson (Person) super.clone();clonedPerson.address (Address) this.address.clone();return clonedPerson;} }class Address implements Cloneable {private String city;public Address(String city) {this.city city;}// Getter and setter 方法Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} }public class DeepCopyExample {public static void main(String[] args) {Address address new Address(New York);Person person1 new Person(Alice, address);try {Person person2 (Person) person1.clone();// 输出: falseSystem.out.println(person1.getAddress() person2.getAddress()); } catch (CloneNotSupportedException e) {e.printStackTrace();}} }让我解释一下代码的主要部分 Person 类和 Address 类都实现了 Cloneable 接口这是为了表明它们可以被克隆。 在 Person 类中有一个私有字段 address类型为 Address。Person 类的构造函数用于初始化这个字段。 Person 类的 clone() 方法首先调用了 super.clone()这会复制 Person 对象本身。然后它对 address 字段进行了深拷贝即创建了一个新的 Address 对象并将其赋值给 clonedPerson 的 address 字段。 Address 类中的 clone() 方法也是调用了 super.clone()实现了浅拷贝因为 Address 类只有一个字段且该字段为不可变类型。 在 main() 方法中首先创建了一个 Address 对象和一个 Person 对象。然后通过调用 clone() 方法创建了一个新的 Person 对象 person2其中包含了新的 Address 对象。 最后通过比较 person1 和 person2 的地址字段可以看到它们不相同这表明在克隆过程中进行了深拷贝。 这样我们就大致的了解了在Java中如何去实现对象的深拷贝了。 4.深浅拷贝的作用 了解完了Java中的深浅拷贝之后那么其有什么用呢 浅拷贝的作用 节省内存空间浅拷贝只复制对象本身不会复制对象引用的内容因此在某些情况下可以节省内存空间。 提高对象创建速度由于浅拷贝只复制对象本身因此复制过程相对较快。 适用于不包含引用类型成员变量的对象如果对象中的成员变量都是基本数据类型或者不需要被复制的对象那么浅拷贝是一个简单有效的复制方式。 深拷贝的作用 确保对象的独立性深拷贝会递归地复制对象及其引用的所有对象从而确保复制后的对象与原始对象完全独立对复制对象的修改不会影响原始对象。 数据安全性在多线程环境下深拷贝可以确保对象的数据安全性因为每个线程都可以操作独立的对象而不会相互影响。 避免对象共享的副作用在某些情况下对象的共享可能会导致意外的副作用深拷贝可以避免这种情况的发生保证数据的一致性和可靠性。 适用于包含引用类型成员变量的对象如果对象中包含了引用类型的成员变量并且需要复制所有引用的对象那么深拷贝是更合适的选择。 总的来说浅拷贝适用于简单对象的复制可以提高性能和节省内存空间而深拷贝则适用于需要确保对象独立性和数据安全性的情况尤其是当对象包含引用类型成员变量时。 以上就是本篇文章的全部内容了~~~
http://www.dnsts.com.cn/news/41259.html

相关文章:

  • 公司建设网站的报告吉首做网站
  • 南充网站建设网站wordpress主题加载语言包
  • 做网站 搜索引擎模拟建筑2022手机版
  • 做网站的过程中有哪些问题seo策略是什么
  • 正规建网站公司个人网页制作模板下载
  • 百度餐饮网站建设图片1600px做网站
  • 旅游网站建设计划书邢台网站建设电话
  • 看一个网站是哪里做的麻六记网络营销方式
  • 中国十大品牌网站网站源代码分列怎么做
  • 建门户网站哪家最好免费注册qq
  • 简繁英3合1企业网站生成管理系统V1.6网站的开发建设要做什么的
  • 25亿企业网站管理系统嘉兴网站制作星讯网络科技
  • 为何上不了建设银行网站wordpress 分类目录 标签
  • 建设网站费用计入什么费用柯桥做网站哪家好
  • 做农产品网站需要做的准备手机在线制作图片
  • 建设银行互联网网站首页超级折扣2WordPress
  • 唐山门户网站建设谷德设计网站官网入口
  • win10记事本怎么做网站中升乙源建设公司网站
  • 网站框架指的是什么网页设计提升班有哪些
  • 假网站的域名招聘类网站该怎么做
  • 网站路径301重定向怎么做做视频网站要什么软件
  • 怎么做盗版网站网站访问统计报告模板
  • 我的个人网站怎么做软件开发专业名词
  • 网站建设一站式自助建站信息网
  • 上海美容论坛网站建设做炫光素材的网站
  • 360网站卖东西怎么做的游戏传奇
  • 网站域名注册商标网站的文字被爬取了
  • 自驾游网站建设方案好网站123
  • 上海知名网站建网站结构优化包括哪些
  • 大丰做网站找哪家好哪个wordpress编辑器