Java语言基础-数据类型

229 阅读5分钟

数据类型

数据类型的分类

  • 基本数据类型

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

  • 引用数据类型

    数组、类、接口、枚举、标注

常用的进制

  • 在日常生活中采用十进制进行数据的描述,逢十进一,十进制权重是:10^0、10^1、10^2、...
  • 在计算机的底层采用0和1组成的二进制序列进行数据的描述,逢二进一,二进制的权重是:2^0、2^1、2^2、...
  • 二进制中的最高位(最左边)用于代表符号位0表示非负数1表示负数
  • 八进制和十六进制都是二进制的简写。

进制之间的转换

  • 正十进制转换为二进制的方式

    • 除2取余法,使用十进制整数不断的除以2取出余数,直到商为0时将余数逆序排序。
    • 拆分法,将十进制整数拆分为若干个二进制权重的和,有该权重的下面写1,否则写0.
  • 正二进制转换为十进制的方式

    • 加权法,使用二进制中的每个数字乘以当前位的权重再累加起来。
  • 负十进制转换为二进制的方式

    • 先将十进制的绝对值转换为二进制,然后进行按位取反再加1
  • 负数的需要补码:按位取反,再加1

  • 负二进制转换为十进制的方式

    • 减1按位取反,合并为十进制整数后添加负号

单个字节表示的整数范围

  • 在计算机中单个字节表示八位二进制位,其中最高位(最左边)代表符号位,使用0代表非负数,使用1代表负数,具体表示的整数范围如下:
  • 非负数表示范围:0000 0000 ~ 0111 1111 => 0 ~ 127 => 0 ~ 2^7-1
  • 负数表示范围:1000 0000 ~ 1111 1111 => -128 ~ -1 => -2^7 ~ -2^0
  • 单个字节表示的整数范围是:-2^7 ~ 2^7-1,也就是**-128 ~ 127**。

整数类型

  • Java语言中描述整数数据的类型有:byteshortintlong,一般使用int类型。
  • 其中byte类型在内存空间中占1个字节,表示范围是:-2^7 ~ 2^7-1。
  • 其中short类型在内存空间中占2个字节,表示范围是:-2^15 ~ 2^15-1。
  • 其中int类型在内存空间中占4个字节,表示范围是:-2^31 ~ 2^31。
  • 其中long类型在内存空间中占8个字节,表示范围是:-2^63 ~ 2^63-1。
  • 在Java程序中直接写出的整数数据叫做直接量/字面量/常量,默认为int类型。若希望表示更大的直接量,则在直接量的后面加上l或者L,推荐L。

浮点类型

  • Java语言中用于描述小数数据的类型floatdouble,推荐double类型
  • 其中float类型在内存空间占4个字节,叫做单精度浮点数,可以表示7位有效数字,范围:-3.403E38~3.403E38.
  • 其中double类型在内存空间占8个字节,叫做双精度浮点数,可以表示15位有效数字,范围:-1.798E308~1.798E308。
  • Java程序中直接写出的小数数据叫做直接量,默认为double类型,若希望表达float类型的直接量,则需要在直接量的后面加上f或者F

布尔类型

  • Java语言中用于描述真假信息类型有:boolean,数值只有true和false
  • 布尔类型在内存空间中所占大小没有明确的规定,可以认为是1个字节。

字符类型

  • Java语言中用于描述单个字符的数据类型:char类型。如:'a'、'中'等。
  • 其中char类型在内存空间中占2个字节并且没有符号位,表示的范围是:0 ~ 65535,由于现实生活中很少有数据能够被单个字符描述,因此以后的开发中更多的使用由多个字符串起来组成的字符串,使用String类型加以描述,如:"hello"、"RG"等。
  • 计算机底层只识别0和1组成的二进制序列,对于字符'a'这样的图案来说不满足该规则,因此该数据无法直接在计算机中存储,但现实生活中存在这样的图案数据需要计算机存储,为了使得该数据能够存储起来就可以给该数据指定一个编号,然后将编号存储起来即可,该编号就叫做ASCII
  • 要求掌握ASCII有:'0'-48'A'-65'a'-97空格-32换行-10
  • Java字符类型采用Unicode字符集编码。Unicode是世界通用定长字符集,所有的字符都是16位。
  • 要求掌握的转义字符有:"-"、'-'、\-\、\t-制表符\n-换行符

03ASCII码表.png

基本数据类型之间的转换

  • Java语言中基本数据类型之间的转换方式:自动类型转换强制类型转换

  • 其中自动类型转换主要指从小类型到大类型之间的转换。

  • 其中强制类型转换主要指从大类型到小类型之间的转换,语法格式如下:

    目标类型 变量名 = (目标类型)源类型变量名;

  • 强转有风险,操作需谨慎!