怎么用compareto(To)这个方法比较两个对象的大小啊
谢邀。在java中,如果一个类实现了Comparable接口,我们认为这个类的对象是可以进行比较的。
Comparable接口中的 compareTo方法就是用于提供两个对象比较策略的方法。根据JDK文档,方法产生一个整数作为返回值,当这一整数小于0时,说明调用方小于被调用方,即在自然排序会排在前面;反之,当返回值大于0时,说明调用方大于被调用方。当返回值等于0时,可以认为二者相等(只是在比较时相等,不能严格保证二者是equals的关系)。
这里首先要说题主问题里提到的compareTo的场景是不成立的,因为compareTo方法的调用法是一个引用类型的对象,除包装类外,引用类型对象不能用减号连接,而包装类都是final类型的,无法被继承。一般新建一个类实现Comparable接口时,都是通过比较对象的某一个或多个成员变量来对对象的大小进行比较。
那么假设问题成立的话,x=1, y=2返回-1,表示的是在自然排序中1在2前面,x=2,y=1,返回1,表示的是自然排序中2在1的后面,二者是一致的。
实际上,如果是要自定义排序的规则,一般是在排序中使用Comparator接口,Comparator接口与Comparable类似,接口中包含一个compare方法
即要比较的两个对象都作为参数传入方法中,此时两个参数可以是基本类型的包装类,可以按问题中的方式进行调用。
对象构成成分包括什么
对象的构成组成部分包括对象头、对象的实例数据区和对齐填充字节这三部分组成。
1. 对象头
对象头由三部分组成:
Mark Word:记录对象和锁的有关信息。当一个对象被 synchronized 关键字加锁之后,围绕锁的操作就都会和MarkWord有关联。MarkWord通常都是 32 bit位大小。会保存一些分代年龄、无锁状态下对象的HashCode、偏向锁的线程ID、轻量级锁指向栈中锁记录的指针、指向重量级锁的指针、锁的标志位等内容。 指向类的指针:大小也通常为32bit,它主要指向类的数据,也就是指向方法区中的位置。
数组长度:只有数组对象才有,在32位或者64位JVM中,长度都是32bit。
2. 实例数据区
该区域主要就存放着实例对象的一些字段属性内容。
3. 对齐填充字节
由于JVM要求Java对象所占的内存大小应该是8bit的倍数,所以这部分主要就是将对象大小补充为8bit的倍数,没有别的功能。
JAVA怎么用if语句,比较两个数的大小。急!谢谢!在线等
public class Compare { public static void main(String[] args) { int a = 2; int b = 3; if (a > b) { System.out.println("a大于b"); } else { System.out.println("a小于b"); } }}
java编写的时候区分大小写吗
java里是区分大小的如定义变量名 int A=1;和 int a=1; A和a 就是不同的变量。一般来说类名第一个字母要大写,方法名第一个单词小写如 class Test{} ;类名 public void testMothed(){}方法

