Java 接口:比较对象的大小
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 接口:比较对象的大小的更多相关文章
- Java中计算对象的大小
一.计算对象大小的方法 Java中如何计算对象的大小呢,找到了4种方法: 1.java.lang.instrument.Instrumentation的getObjectSize方法: 2.BTrac ...
- 查看java程序中对象占用空间大小
需要引入的jar包: <dependency> <groupId>com.carrotsearch</groupId> <artifactId>java ...
- Java中实现对象的比较:Comparable接口和Comparator接口
在实际应用中,我们往往有需要比较两个自定义对象大小的地方.而这些自定义对象的比较,就不像简单的整型数据那么简单,它们往往包含有许多的属性,我们一般都是根据这些属性对自定义对象进行比较的.所以Java中 ...
- Java:实现对象的比较 comparable接口和comparator接口
在实际应用中,我们往往有需要比较两个自定义对象大小的地方.而这些自定义对象的比较,就不像简单的整型数据那么简单,它们往往包含有许多的属性,我们一般都是根据这些属性对自定义对象进行比较的.所以Java中 ...
- Ehcache计算Java对象内存大小
在EHCache中,可以设置maxBytesLocalHeap.maxBytesLocalOffHeap.maxBytesLocalDisk值,以控制Cache占用的内存.磁盘的大小(注:这里Off ...
- java 中对象比较大小
java 中对象比较大小 java 中对象比较大小有两种方法 1:实现Comparable 接口 的 public int compareTo(T o) 方法: 2:实现Comparator 接口 的 ...
- 如何准确计算Java对象的大小
如何准确计算Java对象的大小 原创文章,转载请注明:博客园aprogramer 原文链接:如何准确计算Java对象的大小 有时,我们需要知道Java对象到底占用多少内存,有人通过连续调用两 ...
- JVM —— Java 对象占用空间大小计算
零. 为什么要知道 Java 对象占用空间大小 缓存的实现: 在设计 JVM 内缓存时(不是借助 Memcached. Redis 等), 须要知道缓存的对象是否会超过 JVM 最大堆限制, 假设会超 ...
- 如何精确地测量java对象的大小-底层instrument API
转载: 如何精确地测量java对象的大小-底层instrument API 关于java对象的大小测量,网上有很多例子,大多数是申请一个对象后开始做GC,后对比前后的大小,不过这样,虽然说这样测量对象 ...
- 计算Java对象内存大小
摘要 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍,涉及内存模型.锁原理 ...
随机推荐
- 限制input框中字数的输入maxlength
今天产品提出一个需求就是.限制input框中的的值. 当用户超过10个字符时,用户再次输入的时,就不能够输入了. (最后就能够输入10个字符) maxlength=10 <input maxle ...
- pycharm的docstring多了一行type
注释中多了一行:type 设置为Epytext PyCharm 2020.3.5 (Community Edition) def test(param1,param2,param3): "& ...
- TienChin-课程管理-课程更新接口
更改包名 将之前的 entity 更改为 domain: 将之前的 validator 包当中的校验分组接口移动到 common 模块当中,因为其它模块也需要使用就放到公共当中进行存储. 更改完毕之后 ...
- tensorflow语法【tf.concat()详解】
相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...
- PE格式:实现ELF结构解析工具
ELF文件格式,是一个开放的可执行文件和链接文件格式,其主要工作在Linux系统上,是一种用于二进制文件.可执行文件.目标代码.共享库和核心转储格式文件,ELF文件格式类似于PE格式,但比起PE结构来 ...
- 【译】VisualStudio 17.9预览3带来了令人兴奋的代码搜索改变
随着 VisualStudio17.9预览版3的发布,我们为代码搜索(也称为 All-In-One Search)带来了一些令人兴奋的增强.自从我们上次更新搜索体验以来,我们一直在努力改进体验,并想出 ...
- .NET Avalonia开源、免费的桌面UI库 - SukiUI
前言 今天分享一款.NET Avalonia基于MIT License协议开源.免费的桌面UI库:SukiUI. Avalonia介绍 Avalonia是一个强大的框架,使开发人员能够使用.NET创建 ...
- Linux离线安装MySQL(5.7.22)
1.下载tar包 (1)Window PC下载(PC需要联网) MySQL官网地址:https://www.mysql.com/ MySQL社区版下载地址: https://dev.mysql.com ...
- 扒开源安卓性能测试工具moblieperf源码——开发属于你自己的性能稳定性测试工具
moblieperf下载和使用 moblieperf由阿里巴巴开源的Android性能测试工具 下载:官方源码地址mobileperf github 使用: 使用pycharm打开下载的项目 使用只需 ...
- SATA学习笔记——OOB信号
一.SATA物理层概述 说OOB之前,首先得了解一下SATA结构以及物理层的含义. SATA主要包括:应用层(Application Layer), 传输层(Transport Layer),链路层( ...