基本数据类型
基本数据类型分为 4 大类,8 种数据类型
整数类型:byte short int long
浮点类型:float double
字符类型:char
布尔类型:boolean
在讲整数类型之前,先来说一下「字节」(byte),简写 B。
一个字节由 8 个「比特位」组成,格式「1111 1111」。是计算机最小的存储单元。
1024B = 1KB
1024KB = 1MB
1024MB = 1GB
GB 后面还有 TB、PB,为什么会是 1024 的换算单位呢?
因为计算器二进制的关系,1 2 4 8 16 32 64 128 256 512 1024。
但是我们日常用的存储工具像 U盘,移动硬盘,都是1000换算的。
- 整数类型
整数类型的区别是他们的宽度和范围不同。
Java 默认的整数类型是 int。
声明 long 类型的变量,变量值后面需要带上 L,小写的 l 也是可以,但建议大写(可读)。long num = 3333L; - 浮点类型
浮点类型主要是可以存储小数数值,分为单精度 float,和双精度 double。
Java 默认的浮点类型是 double,比 float 的数值范围大,精度也大。
声明 double 类型的变量,其变量值后面需要带上 D,小写的 d 也可以,但建议大写。double num = 3.14D;
声明 float 类型的变量,其变量值后面需要带上 F,小写的 f 也可以,但建议大写。float num = 3.14F; - 数字表示方式,两种
进制数字表示:
通常都是用十进制表示。那如果要用二进制、八进制、十二进制要怎么表示?下面表示的都是十进制的 28。
二进制:以 0b 或 0B 为前缀,int a = 0B11100;
八进制:以 0 为前缀,int a = 034;
十六进制:以 0x 或 0X 为前缀,int a = 0X1C;
指数表示:
进行数学计算时往往会用到指数表示的数值。
如果采用十进制表示指数,需要使用大写或小写的 e 表示幂,e2 表示 10²。
double a = 3.36e2; 3.36e2 = 3.36 10²
double b = 1.56e-2; 1.56e-2 = 1.56 10﹣² - 字符类型
字符类型表示单个字符,Java 中声明字符类型需要用单引号把值字符括起来。
char c = ‘A’;
字符类型采用双字节的 Unicode 编码(占用两个字节),所以又可以用十六进制编码形势表示,表现形式 \u
char a = ‘A’; 相当于 char b = ‘\041’;
字符类型也属于数值类型,可以与 int 等数值进行数学计算或转换。因为字符类型在计算机中保存的是 Unicode 编码,双字节的 Unicode 的存储范围是 \000-\uFFFF,char 的取值范围是 0-2的十六次方减一 - 转义符
- 布尔类型
布尔类型不是数值类型,不能跟数值类型之间进行计算和转化。
布尔类型只有两个值,true 和 false。 - 数值类型相互转换
自动类型转换:小范围的数值类型可以自动转换成大范围的数值类型。从左往右
char 可以自动转换 int 及往后的,但不能与 byte 和 short 之间转换。
在不同数值类型中进行计算时,全部转换成最大范围的数值类型再进行计算。
强制类型转换:通常用于大范围的数值类型转换到小范围的数值类型。
浮点类型进行强制性转换,会丢失精度。
整形类型进行强制性转换,要注意取值范围的限制,假如你 int a = (byte)128;
引用数据类型
类、接口、数组类型 变量名 = new 类型();