java Comparable 和 Cloneable接口
Comparable接口定义了compareTo方法,用于比较对象。

例如,在JavaAPI中,Integer、BigInteger、String以及Date类定义如下

Cloneable接口
Cloneable接口给出了一个可克隆的对象。
若要出现需要创建一个对象拷贝的情况。为了这个目的,需要使用clone方法
Cloneable定义如下:

直接调用clone()话,对象里面的基本类型数据会直接复制,但引用类型数据,是复制他的引用,这称为浅复制,不是深复制
package test;
import java.util.Date;
public class House implements Cloneable,Comparable{
private int id;
private double area;
private Date whenBuilt;
public House(int id,double area) {
// TODO Auto-generated constructor stub
this.id = id;
this.area = area;
whenBuilt = new Date();
}
public int getId() {
return id;
}
public double getArea() {
return area;
}
public Date getWhenBuilt() {
return whenBuilt;
}
public Object clone() throws CloneNotSupportedException{
return super.clone();
}
@Override
public int compareTo(Object o) {
// TODO Auto-generated method stub
if(area > ((House)o).area) {
return 1;
}else if(area < ((House)o).area) {
return -1;
}else {
return 0;
}
}
public static void main(String [] args) throws CloneNotSupportedException {
House house1 = new House(1, 1750.50);
House house2 = (House) house1.clone();
}
}
这个例子就是直接调用clone() 所以whenbuilt 地址是一样的,内容也一样
若把clone()改为这样

whenBuilt 地址就不一样了 ,内容一样
java Comparable 和 Cloneable接口的更多相关文章
- Java中的Cloneable接口理解
Cloneable接口是一个标记接口,也就是没有任何内容,定义如下: 这里分析一下这个接口的用法,clone方法是在Object种定义的,而且是protected型的,只有实现了这个接口,才可以在该类 ...
- java Comparable 和 Comparator接口区别
Comparable 简介 Comparable 是排序接口. 若一个类实现了Comparable接口,就意味着“该类支持排序”. 即然实现Comparable接口的类支持排序,假设现在存在“实现C ...
- Java中的Cloneable接口与深拷贝、浅拷贝
Cloneable接口是一个标记接口,也就是没有任何内容,定义如下: 这里分析一下这个接口的用法,clone方法是在Object种定义的,而且是protected型的,只有实现了这个接口,才可以在该类 ...
- Java Comparable 和 Comparator 接口详解
本文基于 JDK8 分析 Comparable Comparable 接口位于 java.lang 包下,Comparable 接口下有一个 compareTo 方法,称为自然比较方法.一个类只要实现 ...
- Java的Cloneable接口还有深浅复制
我的小记录 首先语法上,搞清除,Java有个Cloneable接口,但这个接口是没有定义方法的. 那实现了这个接口有什么用呢? 再看Object类中,有个clone()方法,这个方法提供一个浅复制的功 ...
- [Java Tutorial学习分享]接口与继承
目录 接口 概述 Java 中的接口 使用接口作为API 定义一个接口 The Interface Body 实现接口 使用接口作为类型 进化的接口 默认方法 扩展包含默认方法的接口 静态方法 接口总 ...
- Java 深拷贝、浅拷贝及Cloneable接口
Cloneable接口是一个空接口,仅用于标记对象,Cloneable接口里面是没有clone()方法,的clone()方法是Object类里面的方法!默认实现是一个Native方法 protecte ...
- Java中Comparable和Comparator接口区别分析
Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...
- Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨
Java对象克隆(Clone)及Cloneable接口.Serializable接口的深入探讨 Part I 没啥好说的,直接开始Part II吧. Part II 谈到了对象的克隆,就不得不说为什么 ...
随机推荐
- python中json.load()、json.loads()、json.dump()、json.dumps()的区别
json.load()从文件中读取json字符串 json.loads()将json字符串转换为字典类型 json.dumps()将python中的字典类型转换为字符串类型 json.dump()将j ...
- Scout YYF I POJ - 3744(概率dp + 矩阵快速幂)
题意: 一条路上有n个地雷,你从1开始走,单位时间内有p的概率走一步,1-p的概率走两步,问安全通过这条路的概率 解析: 很容易想到 dp[i] = p * dp[i-1] + (1 - p) * d ...
- day7 新三级菜单
# 简单吧简单吧,用动态变量不停的改变进行遍历 menu = { "北京":{ "朝阳":{ "国贸":{ "CICC" ...
- MT【215】集合中元素个数
设$M=\{1,2,3\cdots,2010\}$,$A$是$M$的子集且满足条件:当$x\in A$时$15x\notin A$,则$A$中的元素的个数最多是______ 分析:由于$x,15x,( ...
- 自学Zabbix之路15.1 Zabbix数据库表结构简单解析-Hosts表、Hosts_groups表、Interface表
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix之路15.1 Zabbix数据库表结构简单解析-Hosts表.Hosts_grou ...
- py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图
0.准备 所用到的模块: urllib.request,获取源码 beautifulsoup4(bs4),网页抓取数据 安装bs4,python3 -m pip install beautiful ...
- [luogu3398][仓鼠找sugar]
luogu3398 思路: 假设松鼠a要从a1去a2,松鼠b要从b1去b2,ks表示lca(a1,a2)和lca(b1,b2)中深度较深的那个.那么,若要使得两只松鼠可能相遇,则只要满足lca(a1, ...
- .net跨防火墙链接oracle连接池链接长时间无通讯数据被断开后报错问题解决
环境: .net 4.0以上使用Oracle.ManagedDataAccess组件链接oracle数据库,应用程序与数据库之间存在硬件防火墙. 症状:应用程序启动后正常访问,如果出现长时间无数据库请 ...
- Java使用SFTP和FTP两种连接方式实现对服务器的上传下载 【我改】
[]如何区分是需要使用SFTP还是FTP? []我觉得: 1.看是否已知私钥. SFTP 和 FTP 最主要的区别就是 SFTP 有私钥,也就是在创建连接对象时,SFTP 除了用户名和密码外还需要知道 ...
- reids的主从复制配置
本博来简单介绍一下redsi的主从配置.意思就是说有一台主redis,一个从redis,你向主的redis里面写一个数据,然后会同步到从redis里面.注意:从redis 不能写入数据.所以当我们用到 ...