目录
Java基本类型
Java数据类型转换
Java运算符
1、Java基本类型
1.1、boolean布尔
- 只有true和false两种值,在内存中占1bits(位),默认是false
1.2、byte/short/int/long整数类型
类型 |
占用空间(字节) |
占用空间(位) |
范围 |
byte | 1 | 8 | -(2^7)~(2^7)-1(-128~127)超出则翻转 |
short | 2 | 16 | -(2^15)~(2^15)-1(-32768~32767) |
int | 4 | 32 | -(2^31)~(2^31)-1(约正负21亿) |
long(前缀L或l) | 8 | 64 | -(2^63)~(2^63)-1(正负19位数) |
1.3、float/double浮点数类型
类型 | 占用空间(字节) | 范围 |
float(后缀f或F) | 4 | -3.403E38~3.403E38 |
double(后缀d或D,可省略) | 8 | -1.798E308~1.798E308 |
- java浮点类型有两种表达形式
十进制数形式:3.14、314.0、0.314
科学计数法形式:314e2、314E2、314E-2
- float和double都不能表示很精确的数字,所以不要使用浮点数进行比较
1.23f == 1.229999999f//true
4.56 == 4.559999999999999999d//true
1.4、char字符
- char是一个单一的16位的Unicode字符,以u开头,和4个16位数字组合而成
- 最小值是u0000,即为0,最大值是uffff,即为65535
- char可以存储任何字符
- Java允许使用转义字符来将其后的字符转变为其他含义
转义符 | 含义 | Unicode字符 |
换行 | u000a | |
退格(backspace) | u0008 | |
回车 | u000d | |
制表符tab | u0009 | |
” | 双引号” | u0022 |
’ | 单引号’ | u0027 |
\ | 反斜杠(注意1个反斜杠表示转义) | u005c |
2、Java数据类型转换
2.1、自动类型转换
- 自动类型转换又叫隐式类型转换,必须满足两个条件:
第一是两种数据类型彼此兼容
第二是目标类型的取值范围必须大于原类型的取值范围
2.2、强制类型转换
- 通过(type)var来讲值var转化成括号中指定的数据类型
- 强制类型转换可能造成精度降低或者值溢出
int x = 300;
byte bx = (byte)x; //值为44
强制类型转换注意:
操作较大的数时,要留意是否溢出,尤其是整数操作时
3.1、算数运算符
- 双目:加+、减-、乘*、除/、余%
- 单目:自增++、自减--
3.2、赋值运算符
赋值:a = 3
a += 3 ---> a = a + 3
a –= 3 ---> a = a – 3
a *= 3 ---> a = a * 3
a /= 3 ---> a = a / 3
a %= 3 ---> a = a % 3
3.3、逻辑运算符
短路或&&------------------a和b全为true时结果为true,当a为false时结果直接为false不计算b(节省时间)
短路且||-------------------a和b全为false时结果为false,当a为true时结果直接为true不计算b(节省时间)
逻辑非!--------------------!true == false,!fasle == true
逻辑或&-------------------a和b全为true时结果为true,无论a的计算结果如何,都要计算b
逻辑且|-------------------a和b全为false时结果为false,无论a的计算结果如何,都要计算b
3.4、位运算符
- 只针对整型byte、short、int、long进行运算
- 按位与&:同位对比,只有两位都为1时,结果才为1
- 按位或|:同位对比,两位中其中1位为1时,结果就为1
- 按位异或~:同位对比,两位不同时,结果为1;两位相同时,结果为0
- 按位取反^:将每一位都取反,得到结果(单目运算)
- 左移<<:a << 2表示,将a转为二进制,将所有二进位全部左移2位
- 右移>>:a >> 2表示,将a转为二进制,将所有二进位全部右移2位
2.5、关系运算符
大于>、小于<、等于==、大于等于>=、小于等于<=、不等于!=
3.6、运算符优先级
- 括号的优先级最高
- 单目运算优先级大于多目运算
- 算数运算符*/大于+-
- 算数运算符优先级 > 关系运算符 > 逻辑运算符