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. [置顶] ES篇

    环境 第一篇: ES--介绍.安装 第二篇: ES--安装nodejs 第三篇: ES--插件 第四篇: ES--kibana介绍.安装 第五篇: ES--中文分词介绍.下载 第六篇: docker, ...

  2. 快递单信息抽取【二】基于ERNIE1.0至ErnieGram + CRF预训练模型

    相关文章: 1.快递单中抽取关键信息[一]----基于BiGRU+CR+预训练的词向量优化 2.快递单信息抽取[二]基于ERNIE1.0至ErnieGram + CRF预训练模型 3.快递单信息抽取[ ...

  3. 【深度学习项目二】卷积神经网络LeNet实现minst数字识别

    相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...

  4. 19.10 Boost Asio 同步文件传输

    在原生套接字编程中我们介绍了利用文件长度来控制文件传输的方法,本节我们将采用另一种传输方式,我们通过判断字符串是否包含goodbye lyshark关键词来验证文件是否传输结束了,当然了这种传输方式明 ...

  5. Vue3用户代码片段

    1.defineComponent语法 { "Print to console": { "prefix": "vue3", "bo ...

  6. ElasticSearch-聚合、自动补全、集群、数据同步

    数据聚合 1.数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计.分析.运算.例如: 什么品牌的手机最受欢迎? 这些手机的平均价格.最高价格.最低价格? 这些手机每月的销售 ...

  7. Qt信号槽原理

    1.说明 使用Qt已经好几年了,一直以为自己懂Qt,熟悉Qt,使用起来很是熟练,无论什么项目,都喜欢用Qt编写.但真正去看Qt的源码,去理解Qt的思想也就近两年的事. 本次就着重介绍一下Qt的核心功能 ...

  8. 面试官:Sentinel是如何实现限流的?

    限流是一种通过控制系统对外提供的资源.服务或接口的访问数量或速率,以保护系统免受过载的一种策略. 它的目的是确保系统能够在承受范围内提供稳定和可靠的服务,避免因过多的请求而导致系统崩溃.资源耗尽或响应 ...

  9. 定制你的清爽Mac版Edge浏览器

    浏览器每次打开都有个烦人的提示要获取将来的 microsoft edge 更新,需要 macos 10.15 或更高版本,找了很久也没有解决办法,有 windows 端的解决方案,有禁止更新的解决方案 ...

  10. Python学习之Pytorch

    一.如何查看本机是否安装了Pytorch 在Python环境中查看是否安装了PyTorch可以通过几个简单的步骤来完成.这里有一些方法: 使用Python命令行: 打开你的命令行工具(比如Termin ...