目录
一:数据类型
1:基本数据类型
2:引用数据类型
3:注意事项
二:算数运算符
1:内容
2:重难点
三:赋值运算符
1:内容
2;难点
四:比较运算符
1:内容
2:注意事项
五:逻辑运算符
1:内容
2:注意事项
六:位运算符
1:内容
2:注意事项
一:数据类型
1:基本数据类型
1:整型
(1)byte 1字节 (2) short 2字节 (3) int 4字节 (4)long 8字节
2:浮点型
(1)float 4字节 (2)double 8字节
3:字符型 char 2字节
4:布尔型:boolean
2:引用数据类型
1:类
2:接口
3:数组
3:注意事项
1:整数默认是Int型(long定义时后面要加l或者L)
:byte a=1,b=2,c=3; a=b+c;(报错,不兼容)
2: 类型变量不能超出范围
int a=10000000000000;9超出范围
3:浮点数默认是double(所以定义float类型时后面要加F或者f)
4:小字节的可以转化成大字节的,大字节转换成小字节的要进行强制类型转换。
转换顺序 byte-short-char -int-long-float-double
5:byte,short,chat相互之间补转换,首先转换为int类型。
System.out.println('a'+1);
结果是98
6:强制类型转换 目标类型 变量名=(目标类型)(被转换的数据)
例如:int a =(int)(1.2)
强制类型转换可能会导致数据丢失不建议使用
7:例子
System.out.println("hello"+'a'+1);//加号是字符串的拼接字符串与字符相加还是字符串
System.out.println('a'+1+"hello");//先是转化为int类型相加然后加字符串为字符串
System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");
结果: helloa1
98hello
5+5=55
10=5+5
二:算数运算符
1:内容
2:重难点
1:+的用法
(1):用做加号。(1+1=2)
(2):正数(+3)
(3):字符连接符
例如:sout ("5+5"+5+5)=5+5=55
sout(5+5="5+5")=10=5+5
有字符串时转换字符串
2:整数相除,只能得到整数 要想得到小数,可以*1.0
3;++和--
单独使用效果相同
int a=1; System.out.println(++a);//2 System.out.println(a++);//2
参与运算使用在操作数的前后效果不同(在前时先运算再自加/减,在后面时先自加、减再运算)
int a=1; int b=++a; int c=a++ System.out.println(b);//2 System.out.println(c);//1 System.out.println(a);//3
三:赋值运算符
1:内容
= , +=, -=, *=, /=, %=
2;难点
例如:short s=1;
s=s+1;/(报错因为会出现类型int转换)
s+=1;//(不会因为+=带强制转换)
四:比较运算符
1:内容
例如:short s=1;
s=s+1;/(报错因为会出现类型int转换)
s+=1;//(不会因为+=带强制转换)
2:注意事项
比较运算符的结果都是boolean型,也就是要么是true,要么是false。
比较运算符“==”不能误写成“=”
五:逻辑运算符 1:内容
2:注意事项(1):逻辑运算符用于连接布尔型表达式,在Java中不可以写成33 & x
(2):“&”和“&&”的区别: 单&时,左边无论真假,右边都进行运算;
(3): 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
(4):“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
(5):异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
六:位运算符 1:内容
| 位运算符 | ||
| 运算符 | 运算 | 范例 |
| << | 左移 | 3 << 2 = 12 --> 3*2*2=12 |
| >> | 右移 | 3 >> 1 = 1 --> 3/2=1 |
| >>> | 无符号右移 | 3 >>> 1 = 1 --> 3/2=1 |
| & | 与运算 | 6 & 3 = 2 |
| | | 或运算 | 6 | 3 = 7 |
| ^ | 异或运算 | 6 ^ 3 = 5 |
| ~ | 反码 | ~6 = -7 |
2:注意事项
1:位运算符都是针对二进制补码进行的。
2:细节
| << | 空位补0,被移除的高位丢弃。 |
| >> | 被移位的二进制最高位是0,右移后,空缺位补0; 最高位是1,最高位补1。 |
| >>> | 被移位二进制最高位无论是0或者是1,空缺位都用0补。 |
| & | 任何二进制位和0进行&运算,结果是0; 和1进行&运算结果是原值。 |
| | | 任何二进制位和0进行 | 运算,结果是原值; 和1进行 | 运算结果是1。 |
| ^ | 任何相同二进制位进行 ^ 运算,结果是0; 不相同二进制位 ^ 运算结果是1。 |
3:例子
例如:2&3
2的二进制是 00000010(由于是整数,反码和补码一样)
3的二进制是 00000011
结果是 00000010(补码)(由于是整数,反码和补码一样)
结果是2(&只有都是1 时才为1)
2|3
2的二进制是 00000010(由于是整数,反码和补码一样)
3的二进制是 00000011
结果是 00000011
结果是3|运算方式与&一样不同的是只要有1就是1
2^3
2的二进制是 00000010(由于是整数,反码和补码一样)
3的二进制是 00000011
结果是 : 00000001
结果位1
^运算方式与&一样不同的是都是1或者0时是0其他情况为1
2>>2
2的二进制是 00000010(由于是整数,反码和补码一样)
右移后 000000(10)
00000000
结果为0
2
2的二进制是 00000010(由于是整数,反码和补码一样)
左移以后(00)000010
结果是 00001000
8
>>>与上面相似



