Java 数据类型

2019-08-18  本文已影响0人  编程喵喵

八大基本类型

1字节(b)=8比特(bit)

取值范围和默认值

image.png

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中,除了Boolean类型

类型转换

包装类

Byte, Short, Integer, Long, Float, Double 继承 Number 类

方法

拆箱 装箱

Integer i = 10;  //装箱
int n = i;   //拆箱

面试题:Integer 装箱缓存:

        Integer a = 100;
        Integer b = 100;
        System.out.println(a == b);//true

        Integer c = 200;
        Integer d = 200;
        System.out.println(c == d);//false

valueOf 方法的实现(JDK8的实现)

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

IntegerCache静态代码块中的一段,默认Integer cache 的下限是-128,上限默认127,可以配置,所以到这里就清楚了,我们上面当赋值100给Integer时,刚好在这个range内,所以从cache中取对应的Integer并返回,所以二次返回的是同一个对象,所以==比较是相等的,当赋值200给Integer时,不在cache 的范围内,所以会new Integer并返回,当然==比较的结果是不相等的。

面试题:== 和equals()区别

final 和 static

大数计算

java.math 包中的两个很有用的类,可以处理包含任意长度数字序列的数值,也是 Number 的子类

基本类型和String类转换

基本类型转换成String类型

String转换成基本类型

上一篇 下一篇

猜你喜欢

热点阅读