• 84864

    文章

  • 744

    评论

  • 18

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

Java--Java基础数据类型

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

基本类型

  • byte
  • short
  • int
  • long
  • float
  • double
  • char
  • boolean

整型 byte short int long

  byte:1个字节8位 -128(-2^7^)~127(2^7^-1)  默认0
  short:2个字节16位  -2^15^~2^15^-1  默认0
  int:4个字节32位  -2^31^~2^31^-1  默认0
  long:8个字节64位  -2^63^~2^63^-1  默认0L

浮点型 double float

  double:双精度8个字节64位  默认0.0d  浮点数默认类型
  float:单精度4个字节32位 默认0.0f

字符型 char

  char:单一的16位的Unicode字符  \u0000~\uffff\

布尔型 boolean

  boolean:1位   默认false

自动装箱、自动拆箱

自动装箱:编译器调用valueOf()

自动拆箱:编译器调用intValue()/doubleValue()

发生时机:赋值、方法调用

注意事项:

  1. 自动装箱会隐式的创建对象,避免在循环中进行自动装箱的操作。
  2. 自动拆箱过程可能会产生空指针异常。
  3. 对象对比用equals.

自动拆装箱常见面试题:


/**
 * jdk对-128~127之间的值做了缓存
 * valueOf()会判断是否在缓存里
 * @author v_liuwen
 * @date 2019-07-13
 */
public class IntegerDemo {

    public static void main(String[] args) {
        Integer a = 120;
        int b = 120;
        Integer c = 120;
        Integer d = new Integer(120);
        Integer e = new Integer("120");
        System.out.println(a == b); //true
        System.out.println(a == c); //true
        System.out.println(a == d); //false
        System.out.println(a == e); //false

        Integer f = 127;
        Integer g = 127;
        System.out.println(f == g); //false

        Integer h = 128;
        Integer i = 128;
        System.out.println(h == i); //false

        Integer j = new Integer("256");
        Integer k = new Integer("256");
        System.out.println(j == k);  //false

        Integer l = new Integer("127");
        Integer m = new Integer("127");
        System.out.println(l == m);  //false



    }
}

源码分析

    public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

持续更新中...


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客