Java-数据类型

数据类型

  • 数据类型
    • 基本数据类型
      • 整形
      • 浮点
      • 字符型
      • 布尔类
      • 字节
    • 引用数据类型
    • 类型转换
      • 显式转换
      • 隐式转换
      • 注意事项
    • 整型提升

作为学习Java的入门知识,在刚开始面试的几场,表现不太好的时候,就有几个面试官会问这个问题,估计此时此刻我在他们的心目中也就是这个问题的层次了吧…当然,当时由于紧张,有几个还没说出来0.0

数据类型

基本数据类型

我们总共有八大基本数据类型,按照下面的逻辑来记忆基本就不会遗漏了
Java-数据类型_第1张图片

整形

byte short int long

浮点

float double

字符型

char

布尔类

boolean

1.不论是在16位系统还是32位系统,每个数据类型所占用的字节大小都是固定的
2.整形和浮点型都是带有符号的,写成二进制的格式的话,第一位就是符号位
3.整型默认为int型,浮点型默认为double

字节

字节是计算机中表示空间大小的基本单位.
一字节==八比特
我们平时的计算机为 8GB 内存, 意思是 8G 个字节.
其中 1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB.
所以 8GB 相当于 80 多亿个字节
这里的估算是有小技巧的,我们只需要认为三个零就往前进一位即可.

引用数据类型

在Java的世界里,没有办法像C语言那样拿到地址这么底层的东西,但是我们使用引用这个类似地址的概念加以使用.
八大基本数据类型对应的包装来,后面要学习的字符串,数组,枚举…这些都要应用到引用!

类型转换

有些时候我们需要实现数据类型之间的切换,Java中就给出了一套规则

显式转换

        int a = 10;
        double b = 20;
        a = (int) b;

显式类型转换也可以叫做强制类型转换,我们加上了一个(类型)来实现了大赋值给小这样的一个危险操作.
Java-数据类型_第2张图片
Java是一个强安全的语言,当我们不做处理地想把八个字节的浮点类型赋值给4个字节的int类型时,就会有这样的报错提示.

隐式转换

隐式转换就是不加以()进行强制类型转换:

        int a = 10;
        double b = 20;
        b = (double) a;

像我们之后学习到包装类的装包拆箱的时候,要知道这不过就是换了个皮肤,本质还是类型转换.

        Integer A = 10;
        a = A;

注意事项

  1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型,
    因为大杯的水往小杯里面灌,总会有溢出来的,这就会造成数据的缺失!

  2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失
    要知道在Java里面1.1*1.1可不是简简单单的1.21哦:
    在这里插入图片描述
    我们在C语言里面学过,其实我们是没有办法精确表示一个小数的,只能够无限逼近,在Java中也是这个道理!

  3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查
    如果我们要赋的这个值超过了我们给的数据类型,连编译都不会给你通过:
    Java-数据类型_第3张图片

  4. 强制类型转换不一定能成功,不相干的类型不能互相转换:
    就比如布尔类型就不能和别的类型进行任何运算.

整型提升

  1. 不同类型的数据混合运算, 范围小的会提升成范围大的.
    当然了,如果我们给的是byte = 1;这样的语句是没有关系的,因为还没有超过byte的最大值!
  2. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.

你可能感兴趣的:(java,开发语言)