Integer class

package com.uncle.myutil;

/**
 * 包装类(封装类)  1.5版本之后  自动拆装包
 * 	byte---Byte   short---Short   int---Integer  long---Long
 * 	float---Float  double---Double  char---Character   boolean---Boolean
 * 	1.八个包装类都在同一个包下   java.lang包   不需要import导包直接使用
 * 	2.八个包装类中有六个是与数字相关  都默认继承父类Number
 * 	3.八个包装类都实现了Serializable, Comparable
 * 	4.八个包装类都有带自己对应类型参数的构造方法
 * 	   八个包装类中有七个(除了Character)还有构造方法重载   带String类型
 * 	5.创建对象  对象调用方法
 * 		有六个与数字相关的类都继承Number     xxxValue();  将一个包装类类型转化为对应的基本类型(拆包)
 * 		Integer i1 = new Integer(10);//引用数据类型 包装类
 * 		int value = i1.intValue();
 *
 * 		Integer i2 = 10;
 * 		int value = new Integer(10);
 *
 * 		int value = Integer.parseInt("123");	Float.parseFloat("123.45")
 * 		int value = new Integer("123");
 * 	6.笔试题
 * 		Integer i1 = 10;
 * 		Integer i2 = 10;
 * 		Integer i3 = new Integer(10);
 * 		Integer i4 = new Integer(10);
 * 		System.out.println(i1==i2);//  true--->如果数字范围超过127false
 * 		System.out.println(i1==i3);//  false
 * 		System.out.println(i3==i4);//  false
 * 		System.out.println(i1.equals(i2));//true
 * 		System.out.println(i1.equals(i3));//true
 * 		System.out.println(i3.equals(i4));//true
 * 		1.==与equals()区别
 * 		==可以比较基本数据类型  也可以比较引用数据类型  (变量中存储的内容)
 * 		如果比较基本类型比较是变量中存储的值
 * 		如果比较引用类型比较是变量中存储的地址引用
 * 		equals()是Object类中继承过来的方法  每一个引用类型都可以调用
 * 		默认继承的equals()方法比较与==一致  如果想要改变比较规则 可以重写equals方法
 * 		由于Integer类就重写了equals() 所以Integer比较的是数值
 * 		2.考察Integer类加载的时候  自己有一个静态的空间
 * 		空间内立即加载 Integer类型的数组  内存储256个Integer对象   -128 ~ 127
 * 		如果我们用的对象范围在这之内Integer i1 = 10;  直接取静态区中找对应的对象
 * 		如果我们用的对象范围超出了这个Integer i1 = 1000;  会帮我们创建一个新的Integer对象
 */
public class TestUtil {
    
    

    public static void main(String[] args){
    
    
        new TestUtil().equals(null);
        Integer i1 = 1000;//10自动包装成Integer对象
        Integer i2 = 1000;
        Integer i3 = new Integer(1000);
        Integer i4 = new Integer(1000);
        System.out.println(i1==i2);//true-->false
        System.out.println(i1==i3);//false
        System.out.println(i3==i4);//false
        System.out.println(i1.equals(i2));//true
        System.out.println(i1.equals(i3));//true
        System.out.println(i3.equals(i4));//true

        //重写后的equals方法
        //public boolean equals(Object obj) {
    
    
        //        if (obj instanceof Integer) {
    
    
        //            return value == ((Integer)obj).intValue();
        //        }
        //        return false;
        //    }

		 
        //重写后的hashcode
//        public static int hashCode(int value) {
    
    
//            return value;
//        }
    }

}

Guess you like

Origin blog.csdn.net/m0_51945027/article/details/112798339