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

佛山市住房和城乡建设管理局网站网站建设在后台哪里查看

佛山市住房和城乡建设管理局网站,网站建设在后台哪里查看,如何学做网站,wordpress typecho 大数据库目录 一.Java注解 什么是注解? 内置注解 元注解 二.对象克隆 什么是对象克隆? 为什么用到对象克隆 三.浅克隆深克隆 一.Java注解 什么是注解? java中注解(Annotation)又称java标注,是一种特殊的注释。 可以添加在包,类&…

目录

一.Java注解

什么是注解?

内置注解

元注解

二.对象克隆

什么是对象克隆?

为什么用到对象克隆

三.浅克隆深克隆


一.Java注解

什么是注解?

java中注解(Annotation)又称java标注,是一种特殊的注释

        可以添加在包,类,成员变量,方法,参数等内容上面,Java标注可以通过反射获取标注内容。

        注解会随同代码被编译到字节码文件中,在运行时,可以通过反射机制获取到类中注解,然后根据不同的注解进行相应的解析。

内置注解

是java中已经定义好的注解。

@Override检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。
@Deprecated标记过时方法。如果使用该方法,会报编译警告。
@SuppressWarnings指示编译器去忽略注解中声明的警告
@FunctionalInterface用于指示被修饰的接口是函数式接口。

元注解

注解的注解,用来定义其他注解的注解。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
@Target(ElementType.METHOD)  标注此注解可以作用在方法上面。
@Target({ElementType.TYPE, ElementType.METHOD})标注此注解可以作用在类和方法上面。
@Retention(RetentionPolicy.SOURCE)  编译阶段有用的,可以不编译到字节码中。
@Retention(RetentionPolicy.RUNTIME)运行时有用的,编译到字节码文件中去。

 


 

二.对象克隆

什么是对象克隆?

        在已有的对象基础,克隆出一个新的对象,并将已有对象中的属性值复制到新克隆出来的对象中。

为什么用到对象克隆?

        经常在项目开发中,各层数据传输时,需要将一层中的数据,封装到另一个对象中去。

java中如何实现一个基本的对象克隆?

public class Person implements  Cloneable{int num;String name;@Overrideprotected Person clone() throws CloneNotSupportedException {Person person = (Person)super.clone();return person;}
}    //测试Person p1 = new Person(100,"jim");Person p2 =  p1.clone(); //克隆一个新的对象System.out.println(p1==p2);//false  说明是两个不同的对象

 


 

三.浅克隆深克隆

对于基本类型对象克隆时,可以将值直接复制到新对象中。

int a = 10;int b = a;b=20;

浅克隆主要是在于对象中关联的另一个对象是否能被克隆出一个新的对象。

如果克隆时,只是将关联对象的地址进行复制,那么就属于浅克隆。

如果克隆时,将关联的对象也一同克隆出了一个新的对象,那么就属于深克隆。

浅克隆:

深克隆: 

 

         简单来说,浅克隆复制的是基本类型的值,复制引用类型的地址;深克隆则会创建全新的对象,实现对象及其引用类型属性的完全复制。

如何实现深克隆

方式1: 在克隆对象时,将对象中关联的对象也一同进行克隆,虽然能实现,但是要逐级进行克隆,层级较多时,比较麻烦。必须实现Cloneable接口。

@Overrideprotected Person clone() throws CloneNotSupportedException {Person person = (Person) super.clone();//深度复制  联同person中关联的对象也一同克隆.person.address = (Address) person.address.clone();return person;}

方式2: 使用对象序列化反序列化 ,需要我们自己定义一个克隆方法,先将对象进行序列化,然后再进行反序列化,自动将多级关联的对象也一并重新创建,使用起来比较方便,注意需要序列化的类,必须要实现Serializable接口。

public Person myclone() {Person person = null;try { // 将该对象序列化成流,因为写在流里的是对象的一个拷贝,而原对象仍然存在于JVM里面。所以利用这个特性可以实现对象的深拷贝//序列化,将java中的对象输出(写)到文件中ByteArrayOutputStream baos = new ByteArrayOutputStream();ObjectOutputStream oos = new ObjectOutputStream(baos);oos.writeObject(this);// 将流序列化成对象//反序列化,将文件的信息输入(读)到程序中,创建一个新的对象ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());ObjectInputStream ois = new ObjectInputStream(bais);person = (Person) ois.readObject();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}return person;}

对象序列化

将java中的对象输出到一个文件中,ObjectOutputStream

反序列化

将文件中的信息输入到程序,创建一个新的对象,ObjectInputStream

创建对象的几种方式:

1.new 对象

2.反序列化

3.反射机制

4.对象克隆


 感谢你的阅读与关注,如有问题欢迎探讨!💓

http://www.yayakq.cn/news/288771/

相关文章:

  • 国产crm权威seo技术
  • 在网站的标题上怎么做图标网站模板设计
  • 可以做线路板网站的背景图it外包合同范本
  • 网站建设工具最简洁的高职考技能考网站建设试题
  • 淘宝客网站制作教程网站费用清单
  • 一个服务器上有两个网站 要备案两次吗html转wordpress教程
  • 有什么做详情页的参考网站心悦会员荣誉战场两张免做卡网站
  • 浙江省建设工程质量安全协会网站计算机网络技术是干什么的
  • 遵义网站建设哪家好?搜索引擎优化介绍
  • 网站简繁转换代码网店营销
  • 网站关键词优化推广哪家快ps做的网站怎样在dw里打开
  • 网站开发说明书模板成都抖音代运营
  • asp成品网站企业网络营销推广方案策划
  • 网站开发工作程序怎么写网站建设时间怎么查
  • 北京做网站推广网站工程师的职责
  • 台州网站建设公司哪个好中国建设银行报网站
  • 制作网站的工具杭州互联网网站定制公司
  • 自己做网站能赚钱国外做黄漫的网站
  • 可以做兼职翻译的网站微网站 下载
  • 晋州 网站建设 网络推广适合html初学者做的网站
  • wordpress网站推翻重建树莓派架设wordpress
  • 北京东城区 网站建设合合肥网站建设
  • 构建网站无障碍建设网站运营无经验可以做吗
  • 南京 郑州网站建设公司 网络服务性能优化大师
  • 做网站的软件淘汰史网站建设数据库的选择
  • 有域名怎么做网站如何创建个人网站
  • 沈阳鹊起网站建设公司莱芜网站优化加徽信xiala5效果好
  • 企业网站栏目结构网页设计成品网站
  • 网站开发的逻辑wordpress怎么制作订单号管理
  • wordpress不能发邮件福州seo计费