[Java 学习]:基本数据类型

131 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天。

先来一张数据类型的图,大致了解一下。

图片.png

基本数据类型

基本数据类型又叫内置类型,是可以在栈直接分配内存的。

注意:java 是基于 JVM 的,所以其所占字节固定与机器平台无关,所有地方统一占用内存大小由 JVM 自己实现。

数值型

整型:都是有符号的类型

  • byte: 1字节(8bit);

    实际上,JVM中是将其当做int看 的,也就是事实上是占用了32位,4字节的,所以其运算效率和int没区别,short也一样。 之所以要有byte/short类型

  • short:2字节(16bit)

  • int: 4字节(32bit)

  • long:8字节(64bit)

浮点型

  • float: 4字节(32bit),单精度
  • double:8字节(64bit),双精度

字符型

  • char: 2字节(16bit),表示一个字符,可以是汉字。

布尔型

值:true,false

引用数据类型

也称对象变量类型,复合数据类型,包含类、接口、数组(除了基本类型外,就是引用类型)。引用类型与基本类型最大的区别在于:引用类型存储的是一个指针,指向数据地址,但是不能直接修改引用类型的数据。

数据类型转换

自动类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。 转换从低级到高级

低  ------------------------------------>  高

byte,short,char—> int —> long—> float —> double

数据类型转换规则:

  1. 不能对boolean类型进行类型转换。

  2. 不能把对象类型转换成不相关类的对象。

  3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

  4. 转换过程中可能导致溢出或损失精度

  5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

强制类型转换

转换格式:

(type)value 
  • type是要强制类型转换后的数据类型

示例:

public class QiangZhiZhuanHuan{ 
    public static void main(String[] args){ 
        int i1 = 123; 
        byte b = (byte)i1;//强制类型转换为byte 
        System.out.println("int强制类型转换为byte后的值等于"+b); 
     } 
}

相关默认值

  • 整数的默认类型是 int
  • 小数默认是 double 类型