基本类型和包装类型(二)

       上一节我们谈到,编译器会自动帮我们做自动装包和拆包的操作。那么每次都在堆上new一个对象是不是比较耗费内存呢?事实上,对于通常使用的基本类型,java会在其方法区存储相应的值,而不会每次都去new一个。

       比如看下面这个例子:

        Integer a= 3;
        Integer b=3;
        System.out.println(a==b);

如果是重新分配大小的话,很显然结果应该是false,但这个结果是true。说明使用的是同一片内存。

事实上,当值在[-128,127]时,都是使用的方法区的变量,而不会重新new一个对象。

你可能感兴趣的:(JAVA趣学)