文字描述不清楚,我们还是直接看代码:
public class IntegerTest {
public static void main(String[] args) {
Integer i = new Integer('Q');
Integer i1=new Integer('c');
/*
* toString()返回的是一个字符串,
* 并且该toString()方法并不是重写得来的,是该类中自己的方法
*/
System.out.println(i.toString()+"ckx");//81ckx
/*
* byteValue()-强制类型的转换,将大于Byte类型数值强制转换成Byte
* public byte byteValue(){
* return (byte)value;
* }
*/
i.byteValue();
System.out.println(i.byteValue());//81
/*
* compareTo
* 比较的是对象所指向堆中地址中所存储的内容,而并不是地址
* public int compareTo(Integer anotherInteger) {
* return compare(this.value, anotherInteger.value);
* }
* 源码:
* public static int compare(int x, int y) {
* return (x < y) ? -1 : ((x == y) ? 0 : 1);
* }
* 如果大于则返回1,等于放回0,小于返回-1
*/
i.compareTo(i1);
System.out.println(i.compareTo(i1));//-1
/*
* equals
* 源码:首先是传入一个对象,先判断该对象是否属于该类,
* 如果属于,将传进来的对象强制转换成该类的对象在将该对象所指向堆中所存储的地址所指向的内容,强制转换成整型int
* 该方法比较的是内容
* public boolean equals(Object obj) {
* if (obj instanceof Integer) {
* return value == ((Integer)obj).intValue();
* }
* return false;
* }
*/
i.equals(i1);
System.out.println(i.equals(i1));//false
}
}
每一条输出语句后面的注释对应各自的输出内容
结果展示 :