zoukankan      html  css  js  c++  java
  • java -关于包装类自动装箱与拆箱拓展+整形常量池

    关于自动装箱与拆箱

    1、包装类与基本数据类型的自动转换,叫装箱和拆箱(类型自动转换)

    2、自动装箱拆箱是在编译器,编译器自动配转换方法,实现装箱和拆箱。所以这个过程发生在编译期

    3、只有需要相互类型转换时,编译期才会自动转换

    关于整形常量池

    1、整形常量池同样在方法区内存,是一种缓存技术(cache)

    2、只有[-128 ~ 127]之间的整数数字才会放在整形常量池中(因为用的比较频繁)

    /1、自动装箱、自动拆箱
    public class Test04
    {
        public static void main(String[] args) {
            
            //当Integer与int类型相互转换时,系统编译阶段会自动进行装箱和拆箱
            Integer i1 = 123;
            int in2 = i1;
            int in1 = new Integer(123);
            
            //如果没有Integer与int之间的相互转换,系统编译阶段不会自动装箱与拆箱
            Integer i2 = new Integer(256);
            Integer i3 = new Integer(256);
            System.out.println(i2 == i3);//false,==两边如果是引用数据类型,那么比较的是引用对应的地址,显然两个对象的地址是不同的
            
            Integer i4 = 256;
            Integer i5 = 256;
            System.out.println(i4==i5);//false,因为i4,i5同样是引用数据类型,其对应的地址肯定不同
            
            //“整形常量池”
            /**范围在[-128 ~ 127]之间的整数,因为计较常用,所以java在方法区内存(缓存cache)中创建
             了一块内存叫“整形常量池”,类似于“字符串常量池”。所以的这个之间的数字都会在整形常量池中创建一份
             */
            Integer i6 = 123;
            Integer i7 = 123;
            System.out.println(i6 == i7);//true; 因为i6和i7都是对应的同一个常量池常量,所以地址也是相同
    
        }
    }
  • 相关阅读:
    对es6中Promise和async的理解
    js里面的map、filter、forEach、reduce、for in、for of等遍历方法
    浏览器怎么解析一个hmtl文档
    js获取浏览器版本
    js中的浅复制和深复制
    作为一个程序员,如何调试抓取跳转页面前发送的请求
    escape、unescape、encodeURIComponent、decodeURLComponent
    css超过一定长度显示省略号 强制换行
    gojs去除水印
    版本控制系统svn的超基础使用
  • 原文地址:https://www.cnblogs.com/jesse-zhao/p/10744586.html
Copyright © 2011-2022 走看看