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接口的更多相关文章

  1. Java中的Cloneable接口理解

    Cloneable接口是一个标记接口,也就是没有任何内容,定义如下: 这里分析一下这个接口的用法,clone方法是在Object种定义的,而且是protected型的,只有实现了这个接口,才可以在该类 ...

  2. java Comparable 和 Comparator接口区别

    Comparable 简介 Comparable 是排序接口. 若一个类实现了Comparable接口,就意味着“该类支持排序”.  即然实现Comparable接口的类支持排序,假设现在存在“实现C ...

  3. Java中的Cloneable接口与深拷贝、浅拷贝

    Cloneable接口是一个标记接口,也就是没有任何内容,定义如下: 这里分析一下这个接口的用法,clone方法是在Object种定义的,而且是protected型的,只有实现了这个接口,才可以在该类 ...

  4. Java Comparable 和 Comparator 接口详解

    本文基于 JDK8 分析 Comparable Comparable 接口位于 java.lang 包下,Comparable 接口下有一个 compareTo 方法,称为自然比较方法.一个类只要实现 ...

  5. Java的Cloneable接口还有深浅复制

    我的小记录 首先语法上,搞清除,Java有个Cloneable接口,但这个接口是没有定义方法的. 那实现了这个接口有什么用呢? 再看Object类中,有个clone()方法,这个方法提供一个浅复制的功 ...

  6. [Java Tutorial学习分享]接口与继承

    目录 接口 概述 Java 中的接口 使用接口作为API 定义一个接口 The Interface Body 实现接口 使用接口作为类型 进化的接口 默认方法 扩展包含默认方法的接口 静态方法 接口总 ...

  7. Java 深拷贝、浅拷贝及Cloneable接口

    Cloneable接口是一个空接口,仅用于标记对象,Cloneable接口里面是没有clone()方法,的clone()方法是Object类里面的方法!默认实现是一个Native方法 protecte ...

  8. Java中Comparable和Comparator接口区别分析

    Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...

  9. Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨

    Java对象克隆(Clone)及Cloneable接口.Serializable接口的深入探讨 Part I 没啥好说的,直接开始Part II吧. Part II 谈到了对象的克隆,就不得不说为什么 ...

随机推荐

  1. 【 Gym 101116K 】Mixing Bowls(dfs)

    BUPT2017 wintertraining(15) #4H Gym - 101116K 题意 给定一个菜谱,大写的单词代表混合物,小写的代表基础原料.每个混合物由其它混合物或基础原料组成,不会间接 ...

  2. Domino 邮箱服务器接收不存在的邮箱账号的邮件

    背景: domino邮箱服务器需要设置多个邮件账号邮件转到同一个邮箱账号. 比如:现在没有了 abc@mail.com 的邮箱账号.但是当用户发邮件给它的时候就发给Support@mail.com 原 ...

  3. 学习Spring Boot:(二十一)使用 EhCache 实现数据缓存

    前言 当多次查询数据库影响到系统性能的时候,可以考虑使用缓存,来解决数据访问新能的问题. SpringBoot 已经为我们提供了自动配置多个 CacheManager 的实现,只要去实现使用它就可以了 ...

  4. Ubuntu16.04常用软件源

    这篇博文的,主要目的是为了方便我和大家安装软件.我将我安装过的所有软件包的源列在此处. Google Chrome sudo wget https://repo.fdzh.org/chrome/goo ...

  5. 一次有趣的ant-design与后端数据交互的使用

    最近有个需求是新闻时间排序与点击量排序,数据库中存储的新闻是按照时间顺序排序的,从后台数据中取出数据,在前端进行页面展示即可. 我用到了ant-design中的Tabs切换页,样式大概如下图. 其实这 ...

  6. c语言输入字符注意

    1.c=getchar(); //getchar can't accept Space Tab 2.    scanf("%c",&c);    printf(" ...

  7. myeclipse如何设置或关闭断点调试自动跳入debug模式

    遇到了很坑的问题,在myeclipse(eclipse应该也一样)开发过程中,打了断点调试,最初时候会弹出一个弹出框,让你选择是否进入debug模式,结果一不小心点了一个记住选择,然后选择了yes,结 ...

  8. PHP iconv 解决utf-8和gb2312编码转换问题

    就一个很简单的函数iconv();但是就是这个函数在网上找了很多例子,都无法成功转换,这是为什么呢?     终于皇天不负有心人,答案还是让我找到了. 网上的都是这样用的   <?php $co ...

  9. vue2.0 之列表渲染-v-for

    v-for 数组渲染 App.vue代码 <template> <div> <ul> <li v-for="item in list"&g ...

  10. WebServer Security apache / bind / IIS5

    s C:\Users\Lindows\Desktop\学习参考 Apache_配置规范_(Linux).zip Apache_配置规范_(Windows).zip BIND_配置规范.zip IIS5 ...