您的位置:首页 > 编程语言 > Java开发

谈谈JDK1.5新特性之Integer与int的自动装箱和自动拆箱

2013-03-15 17:06 295 查看
import junit.framework.Assert;

import org.junit.Test;

public class AutoBox {

//Integer和int的自动拆箱和自动装箱的数据范围是-128——127,也就是一个字节表示的范围内

//其实String str1 = "main strings";与拆箱和自动装箱有异曲同工之效

//要说明白这个,就得明白,JAVA的栈和堆,这里主要说栈,就String str1 = "main strings";而不是String str2 = new String("main string");

//因为前者会在栈中存放,在存放"main strings"之前,会在栈中查找,是否已经存在"main strings",如果存在,则str1也指向该地址,就多个对象共享同一内存值

//这跟装箱和拆箱的-128——127的栈数据共享是一致的,而str2是调用new的,存放与堆,每次调用都会重新new出一块内存,而不会共享同一块内存值。

@Test

public void testAutoBoxing() {

Integer inter = 100;

Integer inter2 = inter;

System.out.println(inter == inter2);

inter2++;

System.out.println(inter == inter2);

int sum = 10 + 10;

Assert.assertEquals(21, sum);

}

@Test

public void testAutoBoxing2() {

// System.out.println(inter == inter2);

Integer inter = 100;

Integer inter2 = inter;

System.out.println(inter == inter2);

inter2++;

System.out.println(inter == inter2);

System.out.println(inter == inter2);

System.out.println(inter == inter2);

System.out.println(inter == inter2);

System.out.println(inter == inter2);

int sum = 10 + 10;

Assert.assertEquals(21, sum);

// Color.BLACK;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: