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. Heroku发布前准备

    group :development, :test do gem 'byebug', platform: :mri gem 'sqlite3', '~> 1.3.13' end group :p ...

  2. zabbix基础使用--添加ping监控

    1.添加item key值表示的含义:icmpping[<target>,<packets>,<interval>,<size>,<timeout ...

  3. 用python计算圆周率PI

    1.蒙特卡洛求圆周率 向区域内随即撒点 当点的数目足够多时,落在圆的点数目与在正方形点数目成正比 即圆的面积和正方形的面积成正比 可以得出计算圆周率的算法 DARTS=100000000   hits ...

  4. redis集群搭建及设置账户(转)

    Redis集群搭建以及为集群设置密码 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. ...

  5. 关于Promise的记录和理解

    在JavaScript中,所有的代码都是单线程执行的,这就导致了其所有的网络请求,IO操作,浏览器时间等都是异步非阻塞的模式执行的,这就使得代码的执行顺序可能会超出我们的掌控. 尤其是当多个异步操作待 ...

  6. vim 中文乱码怎么解决

    一般来说只需要正确设置vim的编码识别序列就很少会遇到乱码问题: set fileencodings=ucs-bom,utf-8,utf-16,gbk,big5,gb18030,latin1 这个设置 ...

  7. rtx tiny os

    一,简单测试步骤: 1.  license management包含两项:artx51 real time os, PK51 2. code #include "rtx51tny.h&quo ...

  8. java 日志体系(三)log4j从入门到详解

    java 日志体系(三)log4j从入门到详解 一.Log4j 简介 在应用程序中添加日志记录总的来说基于三个目的: 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作: 跟踪代 ...

  9. [ES]elasticsearch章5 ES的分词(二)

    Elasticsearch 中文搜索时遇到几个问题: 当搜索关键词如:“人民币”时,如果分词将“人民币”分成“人”,“民”,“币”三个单字,那么搜索该关键词会匹配到很多包含该单字的无关内容,但是如果将 ...

  10. Ubuntu 下的QQ WECHAT FOXMAIL解决方案

    原文链接: https://www.lulinux.com/archives/1319 真心很强大. Ubuntu系发行版*安装deepin wine QQ的步骤 1,安装deepin-wine环境: ...