数据类型:
Byte——8位(字符——2个8位) short——16位 Int——32位 long——64位
Float——4个8位 double——8个8位
Char——两个字节,相当于一个汉字
什么时候需要定义变量?
当数据不确定但又要对数据进行存储的时候,就定义一个变量来完成存储动作。
类型的转换:
提升的准则:向高位提升
自动类型提升、强制类型转换
运算符:
算术运算符:+、-、*、/、%(取模)、++、-- 例:1%(-5)=1 -1%5=-1 -1%(-5)=-1
Int a = 3;int b = 5;
System.out.println(a+b);——————————运行结果是:8
System.out.println(a+”,”+b);————————运行结果是:3,5
备注:字符串数据和任何数据使用+都是相连接,最终都会变成字符串。
转义字符:通过 \ 来转换后面字母或者符号的含义
ln:结尾处换行 \n:换行 \b:退格,相当于Backspace \r:按下回车键 \t:制表符,相当于tab键
在Linux里面换行是有一个\n,在Windows里面换行是有两个字符表示,一个是\r \n,在dos里面可以直接识别\n
赋值运算符:
+=、-=、*=、/=、%=
Short s = 4;
S = s +5; :其实是做了两步,第一步是s+5,第二步是赋值,需要进行类型转换
S+=5; :和上面的表达形式不同,只做了一步赋值运算,会自动转换数据类型
备注:赋值运算如果是在范围内会自动转换数据类型
比较运算符:< > <= >= == != 结果只有两个:true 或者 false
逻辑运算符:用于连接布尔类型的表达式
&:与 |:或 ^:异或 !:非 &&:短路 ||:短路
&:只要两边的boolean表达式结果,有一个为false,那么结果就为false,只有两边都为true时,结果为true。
|:只要两边的boolean表达式结果,有一个为true,那么结果就为true,只有两边结果都为false时,结果为false
^:两边相同,结果是false,两边不同结果是true
&和&&的特点:
&无论左边是true还是false,右边都进行运算;而&&如果左边是false,则右边不进行运算,结果为false,左边是true是,右边还是需要运算
|和||的特点:
|无论左边是true还是false,右边都进行运算;而||如果左边是true,则右边不进行运算,结果为true,如果左边是false,则右边进行运算
位运算符:
<<:其实就是乘以2的移动的位数次幂
>>:其实就是除以2的移动的位数次幂,最高位是什么,则移动过后空出来的位数补什么
右移
最快的运算方式是位运算,所以在乘以或除以2的整数次幂的时候为了提高效率,尽量选择位运算
>>>:无论最高位是0还是1,右移后,空出来的位数都拿0补
>>:最高位补什么由原有数据的最高位值而定:
如果最高位是0,右移后,用0补空位
如果最高位是1,右移后,用1补空位
负数表现形式:取反+1
如:6:0000-0000 0000-0000 0000-0000 0000-0110 6的二进制表达形式
1111-1111 1111-1111 1111-11111111-1001 取反
0000-0000 0000-0000 0000-00000000-0001 -1
1111-1111 1111-1111 1111-11111111-1000 计算结果
0000-0000 0000-0000 0000-00000000-0111 取反,结果为7