Java没有无符号数
Java数据类型分为:
基本数据类型(8种)与引用数据类型(如:string,数组等)
字符串与字符串的拼接同上
一个字符char(unicode编码)占2个字节 及16个比特位(最小单位)
强转可能会发生截断(数据范围是个圆形)
boolean类型不能与其它任何类型发生强转,且其只有true和false(与C语言有所不同)
长度小于4字节的在运算时会先进行整形提升为4字节
字面值为整数默认为int,小数默认为double
运算符
1.算数运算符
Java中可以对小数进行求余(%两边可以为小数)
运算时,若报错ArithmeticException为算术异常(如:by zero 除以0)
2.增量运算符(如 += ,-= ...)
使用增量运算符时,会自动进行强转
int a = 10;
double b = 12.5;
a += b;
//等同于a = (int)(a+d);
3.自增++,自减--运算符
int a = 10;
a = a++; //此处a仍为10,与C语言不同
4.关系运算符(如:< , > , == ...)
其计算结果只会是 true 或 false,故不能有连续关系比较
5.逻辑运算符(重点)&&或 ||且 !非
布尔表达式1 && 布尔表达式2 即若前后为数字不可
短路与/短路或:若前面一个表达式为假(||前一个为真),便不会执行第二个表达式
若为 & | 且其左右两边都为布尔表达式时,看作逻辑运算符,但不会存在两种短路
6.位运算符(最小使用单元为一个比特位)
按位与&:对应位上有0 即为 0(用途:寻找这一位是不是都是1)
按位或 | :有1为1
按位异或 ^ :不一样的进行或,一样的为0
按位取反 ~ :0 1 互换
7.移位运算符(了解)
<<左移 >>右移(与 C语言相同)
无符号右移 >>> 若原来为负数,左边不补1,而是补0 (不存在无符号左移!!!)
8.条件运算符 布尔表达式1 ? (1为真执行)表达式2 : 表达式3
只有唯一一个,也是Java唯一一个三目运算符
表达式2,3类型要相同,否则会发生隐式类型转换
且这整个表达式不能单独存在,要将其赋予(=)给某变量
运算顺序(巧用括号)
特殊情况,对于位操作相关的运算符,稍微注意加括号