Java个人笔记
Java是强类型语言!
运算时保留 4个八位 也就是32位。也或许是因为运算过程中强制转换为默认类型。
变量
·类型转换(牢记 变量类型都有一个默认类型的特点!整形默认int 小数默认double 小的内存 向 大的内存转换)
例1: int x= 3;
byte b= 5;
x= x+b;
例2: byte b= 3;
b= b+200; (这个例子的运行结果之所以 可能损失精度,是因为 200是默认的 4个八位,然而,与200 相加的b 自动提升后,装不下4个八位)
例3: x= 'a'+ 1; (编码表上有对应的二进制表 所以能和 1 进行运算)
例4: byte b= 4;
byte b1= 3;
byte b2= 7;
b= b1+b2; (运行结果出错,因为b1 和b2 是两个变量,两个变量相加可能会超出其定义类型的临界值)
而 --- b= 7+3;--- 的运行结果没出错,是因为,电脑会自动判断右边的int类型是否超过左边的byte类型。如果没有超出byte类型的数值范围,电脑会自动切掉4个八位中的前三位,就成了byte类型了。
例5: int x;
int x1= 10;
int x2= 98;
x= x1+x2; (和例4相比,这个运行结果没有报错,原因是 int类型的运算,电脑默认舍弃高位,保留原位)而byte类型 没有默认保留原位。
特例: 字符可以与 数字 做运算,因为 字符占2个八位,数字占4个八位,运算过程中会有自动提升的动作。
算术运算符
·任何数 %2 不是 0 就是 1
·任何数据与字符串相连接 结果是更大的字符串(System.out.println("5+5="+5+5)---->>"5+5=5"+5---->>"5+5=55")
赋值运算符
·+= -= *= /=(会自动判断)比如说:a+=1 和 a= a+1是有区别的。
例: short s= 3;
s= s + 4;的运行结果会报错,因为变量类型不一样。
而 s+= 4不会报错,因为s+= 4 相当于 s=(short)(s+4);经历了一个自动强制转换。
比较运算符
·比较运算完的结果要么是 True,要么是 false。
逻辑运算符
·或(|) 、与(&)、非(!)、异或(^)
·比较运算完的结果要么是 True,要么是 false。
·异或的 运算规律,两边都为 true时,结果为false。
·单运算符(| & !),两边都需要判断。双运算符(|| && ),只判断一边,比如 int x=1;x> 2 & x < 5;和 int x=1; x>2 && x<5;
·逻辑运算符 被用于数字 运算。(只需要把两方的数字都转换成 而二进制即可。) 例如 6 & 3,6 | 7。
·一个数异或同一个数两次,结果还是这个数。
位运算符
·左移(<<) 右移(>>) 无符号位移(<<< 或者 >>>)
·左移几位就是该数据乘以2 的几次方。
例如:3 << 2= 12;------->> 3 * 2(2)= 12;
·右移几位就是该数据除以2 的几次方。
例如:6 >> 1= 3;-------->> 6 / 2(1)= 3;
·对于高位出现的空位,原来高位是什么数,就用这个数来补空位。
·无符号位移,无论高位是什么,空位都用0补。
浙公网安备 33010602011771号