• Java基础知识强化67:基本类型包装类之Integer直接赋值的面试题


    1. 面试题:

    Integer  i = 1;

    i += 1;

    做了哪些事情?

    (1)其中Integer i =1;做了自动装箱( 使用valueOf()方法,int ---> Integer )

    (2)其中i +=1;先将Integer类型的 i 自动拆箱成 int(使用intValue()方法,Integer--->int ),完成加法运行之后的 i 再装箱成Integer类型。

    2. 面试题:

    观察下面程序,判断输出写出结果:

     1 package cn.itcast_06;
     2 
     3 /*
     4  * 看程序写结果
     5  * 
     6  * 注意:Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据
     7  */
     8 public class IntegerDemo {
     9     public static void main(String[] args) {
    10         Integer i1 = new Integer(127);
    11         Integer i2 = new Integer(127);
    12         System.out.println(i1 == i2);
    13         System.out.println(i1.equals(i2));
    14         System.out.println("-----------");
    15 
    16         Integer i3 = new Integer(128);
    17         Integer i4 = new Integer(128);
    18         System.out.println(i3 == i4);
    19         System.out.println(i3.equals(i4));
    20         System.out.println("-----------");
    21 
    22         Integer i5 = 128;
    23         Integer i6 = 128;
    24         System.out.println(i5 == i6);
    25         System.out.println(i5.equals(i6));
    26         System.out.println("-----------");
    27 
    28         Integer i7 = 127;
    29         Integer i8 = 127;
    30         System.out.println(i7 == i8);
    31         System.out.println(i7.equals(i8));
    32 
    33         // 通过查看源码,我们就知道了,针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间
    34         // Integer ii = Integer.valueOf(127);
    35     }
    36 }

    程序运行的结果:

  • 相关阅读:
    解决打开GitHub慢的问题
    RestFramework规范简介
    在Linux中持久化运行项目
    Linux安装Mysql
    Java基础内容汇总[持续更新]
    Elasticsearch内容汇总[持续更新]
    深入源码理解SpringBean生命周期
    利用JVM钩子函数优雅关闭线程池
    聊聊消息队列高性能的秘密——零拷贝技术
    Elasticsearch性能优化汇总——写入&搜索
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4836394.html
Copyright © 2020-2023  润新知