Java基础学习:八种基本数据类型及基本类型的一些运算规则

四种整数类型(byte short int long)

byte

  • 二进制表示位数:8位
  • 字节:1个字节
  • 范围:-2^7——2^7-1
  • -128-127

short

  • 二进制表示位数:16位
  • 字节:2个字节
  • 范围:-2^15——2^15-1
  • -32769-32767

int

  • 二进制表示位数:32位
  • 字节:4个字节
  • 范围:-2^31——2^31-1
  • -2147483648-2147483647

long

  • 二进制表示位数:64位
  • 字节:8个字节
  • 范围:-2^63——2^63-1

它们的默认值都为0,整数都默认为int类型,所以在定义long类型数据时后面加上L或者l

两种浮点类型(float double)

float

  • 字节:4个字节(32位)
  • 精度:单精度
  • 一位符号位,8位指数位,23位有效尾数,要想该字面值当做float类型来处理,需要在字面值后面添加F/f

double

  • 字节:8个字节(64位)
  • 精度:双精度
  • 一位符号位,11位指数,52位有效尾数,要想该字面值当做double类型来处理,需要在字面值后面添加D/d。

字符型(char)

  • 字节:2个字节
  • char 数据类型可以储存任何字符(前提是Unicode编码中有的字符)
  • 中文占两个字节
  • 0-65535

布尔类型(boolean)

  • 有且只有两种取值:true/alse(用来判断逻辑条件的)
  • 字节:《Java虚拟机规范》一书中的描述:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替。而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”。
  • 总结:boolean在数组情况下为1个字节,单个boolean为4个字节。(前提条件是在《Java虚拟机规范》)
  • Java规范中,没有明确指出boolean的大小,所以一个字节、4个字节都是有可能的。

八中基本数据类型转换规则及运算规则

  • 八种基本数据类型中,除boolean类型不能转换,其他七种类型之间都可以进行转换
  • 自动类型转换:从存储范围小的类型向存储范围大的类型转换(byte-->short(char)-->int-->long-->float-->double
  • 强制类型转换:从存储范围大的类型向存储范围小的类型(double-->float-->long-->int-->short(char)->byte)
  • 注意:强制转换有缺点:①会损失精度,产生误差,转换过程中部分内容会被丢掉。②容易超过取值范围
  • 如果整数型字面量(数字)没有超出 byte short char 的取值范围,可以直接将其赋值给byte short char类型的变量
  • byte short char 类型混合运算时,先各自转换为int类型再做运算
  • 多种数据类型混合运算,先各自转换为容量最大的那种类型再做运算
posted @ 2020-02-26 20:23  想变强的菜鸟  阅读(275)  评论(0编辑  收藏  举报