ApiInteger

package com.newedu.jb.day14.exercise;


/**
 * 装箱 和拆箱
 * 
 * 装箱: 将基本数据类型转换为 包装类类型
 * 拆箱:将包装类类型 转换为基本数据类型
 * 
 * 
 * 装箱和拆箱 其实是编译器帮我们优化结果:
 * 
 * 装箱:编译器帮我们调用了 Integer.valueOf()方法
 * 拆箱:编译器帮我们调用了 Integer.intValue()方法
 * 举例说明:
 * 
 * Integer
 * @author jerry
 *
 */
  1, public class IntegerDemo {


public static void main(String[] args) {


Integer i = new Integer(4);


Integer  x = 4;//jdk1.5 之后,有自动装箱的概念


x = x+5;//Integer + int -> 先拆箱(int+int) 再装箱  int ->Integer


System.out.println("=============");

Integer y = null;

// y = 5;
y = y + 4;
// 先拆箱(y.intValue(),在装箱
System.out.println(y);

System.out.println("===========");

Integer i1 = 1;
i1 += 1;

System.out.println("======Integer 缓冲池=========");



}


}
2, 
package com.newedu.jb.day14.exercise;


/**
 * Integer的缓冲池的概念
 * 
 * 
 * @author jerry
 *
 */
public class IntegerDemo2 {


public static void main(String[] args) {
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
// new 出来的东西,就是新创建一个东西
// == 比较运算符 , 比较值, 如果是基本数据类型,其实比较的就是值本身。
// 如果 == 两边是引用类型的话 ,其实是比较对象的地址值。
System.out.println(i1 == i2); //false 
System.out.println(i1.hashCode());
System.out.println(i2.hashCode());
System.out.println(i1.equals(i2));//true


Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);// false
System.out.println(i3.equals(i4));//true
        
System.out.println("==================");
Integer i5 = 127;// 自动的装箱 Integer.valueOf()
Integer i6 = 127;
System.out.println(i5 == i6); //true  为什么是true?
System.out.println(i5.equals(i6));//true


Integer.valueOf(127);
//
System.out.println("==================");
Integer i7 = 128;
Integer i8 = 128;
System.out.println(i7 == i8);// false
System.out.println(i7.equals(i8));//true

/**
* Integer 内部维护了一个 内部类,内部类中维护了一个数组
* Integer[] cache = new Integer[255]
*       cache[0] = new Integer(-128)
         *       cache[1] = new Integer(-127)
         *       cache[2] = new Integer(-126)
         *       ....
         *       cache[255] = new Integer(127);
         *       
         *       
         *   把数组,叫做缓冲池。
         *   -128 到127 之间,在自动装箱的时候,都是返回的同一个对象。
         *   超过了这个返回,每装箱一次,就重新new一个对象并返回。
*/




}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值