java的基本数据类型:
可以分为三大类八小类:
一、数值:
整型:byte 1字节 -128~127
short 2字节 -2的15次~2的15次-1
int 4字节 -2的31次~2的31次-1
long 8字节 -2的63次~2的63次-1
浮点型:float 4字节 -2的31次~2的31次-1
double 8字节 -2的63次~2的63次-1
二、字符型:char 2字节 -2的15次~2的15次-1
三、布尔型:Boolean 1bit 1
整型中的和浮点型中的分别有什么区别:
精度不同,取值范围不同
计算机最小的存储单位是比特bit,最小的空间单位是字节byte
bit,B,KB,MB,GB,TB,PB分别是什么单位,换算是什么
1B=8bit
1kb=1024b,1mb=1024kb...
预习:
数据类型转换
运算符
算术运算符
+ - * / %
当表达式中的数值都是整数int, 则运算结果也是整数int
当表达式中有一个数值是浮点数double, 则整个表达式所有数值全部提升为浮点数double, 运算结果为浮点数double
赋值运算符
= += -= *= /= %=
比较运算符
> >= < <= == !=
所有的比较运算符, 运算结果都是boolean类型, 要么是true, 要么是false
注意: 一个等于号 = 是赋值运算符 (可以是直接量赋给变量, 也可以是变量赋给变量)
两个等于号 == 才是是否相等的比较运算符
逻辑运算符
& && | || !
逻辑运算符是对两个boolean条件做逻辑(与、或、非)运算, 运算结果也是boolean
与(并且关系and, 两个条件都成立, 结果才成立, 有一个条件不成立, 结果就是不成立)
左右两边都为true, 运算结果为true, 有一边是false, 运算结果就是false
或(或者关系or, 两个条件都不成立, 结果才不成立, 有一个条件成立, 结果就是成立)
左右两边都为false, 运算结果为false, 有一边是true, 运算结果就是true
非(成立变为不成立, 不成立变为成立)
取反, true取反后得到false, false取反后得到true
与和或有短路和不短路的区别
短路与: 左边不成立, 右边就不会运算了, 因为与要求两边都成立, 如果左边已经为不成立, 右边就没有运算的意义了, 因为无论右边是否成立, 也不会影响最终结果
不短路与: 左边不成立, 右边就失去了运算的意义, 但是也会运算一下
短路或: 左边成立, 右边就不会运算了, 因为或要求两边都不成立, 如果左边已经成立了, 右边就失去了运算的意义了, 因为无论右边是否成立. 也不会影响最终结果
不短路或: 左边成立, 右边就失去了运算的意义, 但是也会运算一下
位运算符 (平时写代码用不到, 1. 面试可能会问, 2. 官方源代码中可能会出现)
位 => 二进制比特位
什么是位运算符? 因为运算符会将数字转为二进制, 对二进制的比特位做运算
左移
<<
右移
>>
单目运算符 (单目的意思是表达式中只有一个操作数, 例如 a++ 表达式只有一个操作数a)
++ --
运算符++或--在变量前面和后面的区别是什么?
如果表达式中只有 ++或--运算, 则在变量前面或后面没有区别
如果表达式中除了 ++或--, 还有其他运算
则在变量前面, 先运行++或--, 再运行其他运算
在变量后面, 先运行其他运算, 再运行 ++ 或 --
三目运算符
?