首页 > 其他分享 >面试题

面试题

时间:2023-03-02 15:14:07浏览次数:31  
标签:boy 面试题 p1 clone hashCode Person public

1、clone();======>父类默认的拷贝方法是浅拷贝。父类中的修饰符是:protected。

@Override

重写clone()这个父类方法后,还需要把protected改为public,
类型是当前重写的子类类型才能正常使用
protected Object clone() throws CloneNotSupportedException {
    return super.clone();
}

 

public class boy {
    String name;
    int age;
    //get、set、有参无参构造、toString方法
}
public class Person implements Cloneable{
    String name;
    String sex;
    int age;
    boy boy;
}
public class Test2 {
    public static void main(String[] args) throws CloneNotSupportedException {
        Person p1 = new Person();
        p1.setName("李白");
        p1.setSex("女");
        p1.setAge(18);
        Person p2 = p1.clone();
        System.out.println(p1+"===="+p1.hashCode());
        System.out.println(p2+"===="+p2.hashCode());

        boy b = new boy();
        b.setName("小孩");
        b.setAge(3);
        p1.setBoy(b);
        Person p3 = p1.clone();
        System.out.println(p1+"========"+p1.hashCode()+"====="+p1.getBoy().hashCode());
        System.out.println(p1+"========"+p3.hashCode()+"======="+p1.getBoy().hashCode());
    }
}

结论:

  • 通过测试发现克隆出来的对象虽然不一致,但是底层的成员变量的哈希值是一致的。这种复制我们称之为:浅表复制。

浅表复制的内存结构:

浅表复制的弊端

  • 由于浅表复制导致克隆的对象中成员变量的底层哈希值一致,如果我们操作其中一个对象的成员变量内容,就会导致,所有的克隆对象的成员内容发送改变。

标签:boy,面试题,p1,clone,hashCode,Person,public
From: https://www.cnblogs.com/curry3000/p/17170897.html

相关文章

  • Android面试题汇总
    1.面试题:知道Service吗,它有几种启动方式?Service是一个专门在后台处理长时间任务的Android组件,它没有UI。它有两种启动方式,startService和bindService。startService只是......
  • 力扣---面试题 05.02. 二进制数转字符串
     二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。示例1:输......
  • 校招前端二面经典面试题(附答案)
    代码输出结果functionrunAsync(x){constp=newPromise(r=>setTimeout(()=>r(x,console.log(x)),1000))returnp}functionrunReject(x){constp......
  • 那些高级前端是如何回答面试题的
    代码输出结果console.log(1);setTimeout(()=>{console.log(2);Promise.resolve().then(()=>{console.log(3)});});newPromise((resolve,reject)......
  • 社招中级前端笔试面试题总结
    typeofnull的结果是什么,为什么?typeofnull的结果是Object。在JavaScript第一个版本中,所有值都存储在32位的单元中,每个单元包含一个小的类型标签(1-3bits)以及......
  • redis有关面试题1
    redis的特点:redis本质上是一个key-value类型的内存数据库,整个数据库系统加载在内存当中操作,定期通过异步操作把数据库数据flash硬盘上进行保存。因为是纯内存操作,redi......
  • NET Core面试题
    NETCore面试题说说显示实现接口和隐式实现接口的区别。隐式接口实现:如果类或者结构要实现的是单个接口,可以使用隐式实现。显式接口实现:如果类或者结构继承了多个接口......
  • [BAT面试题系列]乐观锁和悲观锁
    基本概念乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题(使用非常广泛,不局限于某种编程语言或数据库)。乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时......
  • 滴滴前端二面常考react面试题(持续更新中)
    什么是React的refs?为什么它们很重要refs允许你直接访问DOM元素或组件实例。为了使用它们,可以向组件添加个ref属性。如果该属性的值是一个回调函数,它将接受底层的DOM元素......
  • 美团前端二面经典react面试题总结
    React事件机制<divonClick={this.handleClick.bind(this)}>点我</div>React并不是将click事件绑定到了div的真实DOM上,而是在document处监听了所有的事件,当事件发生并......