java.lang.object,是Java中所有类(当然Object类除外)的终极父类,其中数组也继承了Object类,但是接口是不继承Object类的。

Object中方法如下(11个):

  Class<> getClass();

  boolean equals(Object obj);
int hashCode(); protected Object clone();
protected void finalize(); String toString(); void wait();
void wait(long timeout);
void wait(long timeout, int nanos); void notify();
void notifyAll();

1、protected Object clone();

作用:创建并返回此对象的一个副本。

注意

- 要执行clone()方法,对象所属的类必须实现Cloneable接口,否则会抛出CloneNotSupportedException。

- 所有的数组都被视为实现了Cloneable接口;

- Object类本身不实现Cloneable接口;

- 谨记返回的是Object类型,所以有时候可能需要强制类型转换。

如何工作

Object将clone()作为一个本地方法来实现,代码是存放在本地代码库的。当代码执行时,将会检查调用对象的类(或者父类)是否实现了java.lang.Cloneable接口,如果没有实现,则会抛出异常。如果实现,clone()则会创建一个新的对象,并将原来的对象的内容复制到新对象中,最后返回这个新对象的引用。

浅克隆:也叫做浅拷贝,仅仅复制对象本身的成员变量,对于该对象引用变量中引用的对象,不创建副本,只是复制引用变量,指向同一个对象。这样你对副本进行修改的时候,就可能影响到源本。如果一个对象中的成员变量都是基本类型,或者其引用的对象都是不可改变的,使用浅克隆效果很好。

深克隆:也叫做深复制,不仅会复制此时对象的成员变量,对于该对象引用的对象,深克隆也会对其创建副本。

2、boolean equals(Object obj);

objec类中方法介绍的更多相关文章

  1. Java多线程学习笔记(一)——Thread类中方法介绍

    currentThread():返回代码正在被哪个线程调用. public class CurrentThreadWay { public static void main(String[] args ...

  2. Java多线程学习笔记(四)——Thread类中方法介绍

    currentThread():返回代码正在被哪个线程调用. public class CurrentThreadWay { public static void main(String[] args ...

  3. java Object类中方法介绍

  4. Java学习笔记(七)——获取类中方法的信息,java的LinkedList

    [前面的话] 在实际项目中学习知识总是最快和最有效的,既能够较好的掌握知识,又能够做出点东西,还是简单的知识总结,最近一直在总结笔记,写的东西还是比较水,希望慢慢可以写出一些干货. 学习过程中的小知识 ...

  5. Spring service本类中方法互相调用事物失效问题

    简介 Spring事物利用的是AOP,动态代理采用CGLIB代理(默认,也可以用Proxy代理,但是Proxy代理效率低于CGLIB代理).故只要弄懂Spring的AOP实现,就知道为什么servic ...

  6. 对Object类中方法的深入理解

    看一下API中关于Object的介绍: 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法. 那么Object中到底有哪些方法,各自有什 ...

  7. Java:面向对象(继承,方法的重写(overide),super,object类及object类中方法的重写,父子类代码块执行顺序)

    继承: 1.继承是对某一匹类的抽象,从而实现对现实世界更好的建模. 2.提高代码的复用性. 3.extends(扩展),子类是父类的扩展. 4.子类继承父类可以得到父类的全部属性和方法.(除了父类的构 ...

  8. C#实现调用Java类中方法

    基本思路: 用C#实现调用Java编写的类中的方法:重点是将Java编写的程序打包成Jar,然后使用开源工具IKVM将其转化成DLL控件,在.NET环境下调用. 分为以下步骤: 1.下载JDK6(注: ...

  9. android开发中关于继承activity类中方法的调用

    android开发中关于继承activity类中的函数,不能在其他类中调用其方法. MainActivity.java package com.example.testmain; import and ...

随机推荐

  1. c++学习路线连接

    https://blog.csdn.net/qq_36482772/article/category/7396881/4?

  2. JVM深入理解

    JVM深入理解 一.JVM介绍 JVM应用百度百科的原话是: JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过 ...

  3. 微信支付遇到的坑---缺少参数total_fee

    今天在做微信砍价成功后支付,出现了这个报错 看到报错后,去找total_fee这个参数,调试了半天,total_fee是确定有值的 微信支付的步骤 ① 预支付 商户号,商户秘钥,appid,appse ...

  4. vue element-ui 设置时间组件

    备注:设置开始时间小于结束时间 <!-- 开始时间 --> <div class="block"> <!-- <span class=" ...

  5. Java-Oracle数据库连接

    Oracle数据库先创建一个表和添加一些数据,下面是连接数据库的具体实现.(导入jar包:ojdbc14.jar) import java.sql.Connection; import java.sq ...

  6. 通过PHP调用微信JSSDK实例

    JSSDK使用步骤: 1. 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 2. 采用http GET方式请求获得access_token(有效期7200秒). 3. ...

  7. oo第四次博客总结

    1.论述测试与正确性论证的效果差异,比较其优缺点 测试:通过大量测试样例覆盖测试代码,来检测代码功能的实现是否正确是否完善.测试一个程序的正常输入比较容易,但难点就在于大量的非法输入,测试只能发现bu ...

  8. GitHub 使用说明

    GitHub使用教程 附件是Github 使用说明: GitHub使用说明.pdf 目录 1      注册帐户... 2 2      登录帐户... 2 3      创建仓库... 2 4    ...

  9. 解决vs验证控件报错” WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping”问题

    将RequiredFieldValidator的 EnableClientScript属性设置成 False 适用于大多验证控件

  10. Innodb 状态的部分解释

    Innodb_buffer_pool_pages_data Innodb buffer pool缓存池中包含数据的页的数目,包括脏页.单位是page. Innodb_buffer_pool_pages ...