目录
Java基本类型
Java运算符
1、Java基本类型
1.1、boolean布尔
- 只有true和false两种值,默认是false
1.2、byte字节
- 1byte = 8bits
- 范围-128到127,默认值为0,范围超出则翻转(即128=-128)
- byte在大型数组中可以显著节省空间,主要代替小数,因为byte变量占用的空间只有int类型的四分之一
- byte在二进制文件中使用较多
1.3、short/int/long短整数/整数/长整数
- 1short = 2byte = 16bits
- short范围在-2^15到2^15-1之间,默认值0,范围超出报越界error
- 1int = 2short = 4byte = 32bits
- int范围在-2^31到2^31-1之间,默认值0,范围超出报越界error
- 1long = 2int = 4short = 8byte = 64bits
- long范围在-2^63到2^63-1之间,默认值0,范围超出报越界error
- 注意long型数在末尾会有一个L,标志它是long类型
定义一个long型变量,赋于一个int类型的值,则会隐性的转化为long类型(即打印出来的数末尾会有个L)
1.4、float/double浮点数
- float单精度浮点数,占32bits,4byte
- float的范围为1.4*10^-45到3.4*10^38(无论正负),默认值为0.0f
- float赋值必须在末尾带f
- double双精度浮点数,占64位,8byte
- double的范围为4.9*10^-324到1.7*10^308(无论正负),默认值为0.0d
- double赋值可以省略末尾的d
- float和double都不能表示很精确的数字
1.23f == 1.229999999f//true
4.56 == 4.559999999999999999d//true
1.5、char字符
- char是一个单一的16位的Unicode字符,以\u开头,和4个16位数字组合而成
- 最小值是\u0000,即为0
- 最大值是\uffff,即为65535
- char可以存储任何字符
2、Java运算符
2.1、算数运算符
- 双目:加+、减-、乘*、除/、余%
- 单目:自增++、自减--
2.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
2.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
2.4、位运算符
- 只针对整型byte、short、int、long进行运算
- 按位与&:同位对比,只有两位都为1时,结果才为1
- 按位或|:同位对比,两位中其中1位为1时,结果就为1
- 按位异或~:同位对比,两位不同时,结果为1;两位相同时,结果为0
- 按位取反^:将每一位都取反,得到结果(单目运算)
- 左移<<:a << 2表示,将a转为二进制,将所有二进位全部左移2位
- 右移>>:a >> 2表示,将a转为二进制,将所有二进位全部右移2位
2.5、关系运算符
大于>、小于<、等于==、大于等于>=、小于等于<=、不等于!=
2.6、运算符优先级
- 括号的优先级最高
- 单目运算优先级大于多目运算
- 算数运算符*/大于+-
- 算数运算符优先级 > 关系运算符 > 逻辑运算符