1 package com.bytezreo.interfacetest;
2
3 /**
4 *
5 * @Description 接口:比较对象的大小
6 * @author Bytezero·zhenglei! Email:420498246@qq.com
7 * @version
8 * @date 下午9:07:52
9 * @
10 *
11 */
12
13 public class ComparableCircleTest {
14
15 public static void main(String[] args) {
16
17 ComparableCircle c1 = new ComparableCircle(3.4);
18 ComparableCircle c2 = new ComparableCircle(3.6);
19
20 int compareValue = c1.compareTo(c2);
21 if(compareValue > 0) {
22 System.out.println("c1对象大");
23 }else if(compareValue < 0) {
24 System.out.println("c2对象大");
25 }else {
26 System.out.println("c1与c2一样大");
27 }
28
29
30
31
32 }
33 }
 1 package com.bytezreo.interfacetest;
2
3
4 public class ComparableCircle extends Circle implements CompareObject {
5
6
7 public ComparableCircle(double radius) {
8 super(radius);
9 }
10 @Override
11 public int compareTo(Object o) {
12 if(this == o) {
13 return 0;
14 }
15
16 if(o instanceof ComparableCircle ) {
17 ComparableCircle c = (ComparableCircle)o;
18
19 //错误的
20 // return (int) (this.getRadius() - c.getRadius());
21
22 //正确的
23 if(this.getRadius() > c.getRadius()) {
24 return 1;
25 }else if(this.getRadius() < c.getRadius()) {
26 return -1;
27 }else {
28 return 0;
29 }
30 }else {
31 return 0;
32 //throw new RuntimeException("传入的数据类型不匹配");
33
34 }
35
36
37 }
38
39
40 }
 1 package com.bytezreo.interfacetest;
2
3 public class Circle {
4
5 private double radius;
6
7 public double getRadius() {
8 return radius;
9 }
10
11 public void setRadius(double radius) {
12 this.radius = radius;
13 }
14
15 public Circle() {
16 super();
17 }
18
19 public Circle(double radius) {
20 super();
21 this.radius = radius;
22 }
23
24
25
26 }
1 package com.bytezreo.interfacetest;
2
3 public interface CompareObject {
4
5 //若返回值是 0代表相等; 若为正数,代表当前对象大; 负数代表当前对象小
6 public int compareTo(Object o);
7
8 }

Java 接口:比较对象的大小的更多相关文章

  1. Java中计算对象的大小

    一.计算对象大小的方法 Java中如何计算对象的大小呢,找到了4种方法: 1.java.lang.instrument.Instrumentation的getObjectSize方法: 2.BTrac ...

  2. 查看java程序中对象占用空间大小

    需要引入的jar包: <dependency> <groupId>com.carrotsearch</groupId> <artifactId>java ...

  3. Java中实现对象的比较:Comparable接口和Comparator接口

    在实际应用中,我们往往有需要比较两个自定义对象大小的地方.而这些自定义对象的比较,就不像简单的整型数据那么简单,它们往往包含有许多的属性,我们一般都是根据这些属性对自定义对象进行比较的.所以Java中 ...

  4. Java:实现对象的比较 comparable接口和comparator接口

    在实际应用中,我们往往有需要比较两个自定义对象大小的地方.而这些自定义对象的比较,就不像简单的整型数据那么简单,它们往往包含有许多的属性,我们一般都是根据这些属性对自定义对象进行比较的.所以Java中 ...

  5. Ehcache计算Java对象内存大小

    在EHCache中,可以设置maxBytesLocalHeap.maxBytesLocalOffHeap.maxBytesLocalDisk值,以控制Cache占用的内存.磁盘的大小(注:这里Off ...

  6. java 中对象比较大小

    java 中对象比较大小 java 中对象比较大小有两种方法 1:实现Comparable 接口 的 public int compareTo(T o) 方法: 2:实现Comparator 接口 的 ...

  7. 如何准确计算Java对象的大小

    如何准确计算Java对象的大小 原创文章,转载请注明:博客园aprogramer 原文链接:如何准确计算Java对象的大小      有时,我们需要知道Java对象到底占用多少内存,有人通过连续调用两 ...

  8. JVM —— Java 对象占用空间大小计算

    零. 为什么要知道 Java 对象占用空间大小 缓存的实现: 在设计 JVM 内缓存时(不是借助 Memcached. Redis 等), 须要知道缓存的对象是否会超过 JVM 最大堆限制, 假设会超 ...

  9. 如何精确地测量java对象的大小-底层instrument API

    转载: 如何精确地测量java对象的大小-底层instrument API 关于java对象的大小测量,网上有很多例子,大多数是申请一个对象后开始做GC,后对比前后的大小,不过这样,虽然说这样测量对象 ...

  10. 计算Java对象内存大小

    摘要 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍,涉及内存模型.锁原理 ...

随机推荐

  1. elementui中自定义Select选择器样式自定义

    <el-select class="my-el-select" v-model="tenantCont" placeholder="请输入机构标 ...

  2. 开源即时通讯(IM)项目OpenIM源码部署流程

    由于 OpenIM 依赖的组件较多,开发者需求不一,导致 OpenIM 部署一直被人诟病,经过几次迭代优化,包括依赖的组件 compose 的一键部署,环境变量设置一次,全局生效,以及脚本重构,目前 ...

  3. pycharm像vs那样进行代码折叠

    在visual studio中可以使用#region和#endregion来进行代码折叠,我尝试在pycharm中也可以使用相同的指令来折叠代码. 但是如果#endregion是在方法的最后面或者类的 ...

  4. MySQL 常见面试题/知识点总结!(2021 最新版)| JavaGuide

    相关阅读: 2.7w字!Java基础面试题/知识点总结!(2021 最新版) 这篇文章之前发过,不过,我最近对其进行了重构完善并且修复了很多小问题.所以,在公号再同步一下! 内容很硬!强烈建议小伙伴们 ...

  5. 错误: tensorflow.python.framework.errors_impl.OutOfRangeError的解决方案

    近日,在使用CascadeRCNN完成目标检测任务时,我在使用这个模型训练自己的数据集时出现了如下错误: tensorflow.python.framework.errors_impl.OutOfRa ...

  6. 零基础入门学习Java课堂笔记 ——day02

    流程控制 1.Scanner对象 来源:java.util.Scanner 我们可以通过Scanner类来获取用户的输入输出 用户交互Scanner 通过new关键词创建Scanner对象 Scann ...

  7. Kafka-分布式安装

    一.kafka是什么? Kafka是一个快速.可扩展的.高吞吐.可容错的分布式发布订阅消息系统.Kafka具有高吞吐量.内置分区.支持数据副本和容错的特性,它可以处理消费者规模的网站中的所有动作流数据 ...

  8. NC50505 二叉苹果树

    题目链接 题目 题目描述 有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点.这棵树共N个节点,标号1至N,树根编号一定为1. 我们用一根树枝两端连接的节点编号描述一根树枝的位置 ...

  9. 详解最新版RabbitMQ 基于RPM 方式的安装

    如何选择安装版本 已经不支持的发布系列 版本 最后补丁版本 首次发布时间 停止更新时间 3.7 3.7.28 2017年11月28日 2020年09月30日 3.6 3.6.16 2015年12月22 ...

  10. Springboot实现remember-me记住我功能

    1.什么是remeber-me? remeber-me即记住我功能,是我们在登录web系统时的常见勾选项.当我们登录一个web系统时除了输入常规的用户名.密码后还可以勾选记住我选项(假设该系统提供了该 ...