算术运算符 b=a++; a先赋值给b,再自增。 b=++a; a先自增,再赋值给b。 总之,不管加号在前 还是后,a都自增。 字符串数据与任何数据使用+都是相连接,最终都会变成字符串。 转义字符 通过\ 来转变后面字母或者符号的含义。 \n:换行。 \b:退格。相当于Backspace \r:按下回车键。Windows系统,回车符是由\r\n两个字符来表示 \t:制表符。相当于tab键。 赋值运算符 short s=3; s=s+5; 编译失败,因为s会被提升为int类型,运算后结果还是int类型。无法赋值给short类型。 s+=5; 编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。 比较运算符 instanceof 检查是否是类的对象。 逻辑运算符 &和&&的特点: &:两边都参与运行。 &&:当左边为false时,右边不运行。 |和||的特点: |:两边都参与运行。 ||:当左边为true时,右边不运行。 位运算符 6个运算符:<<左移 >>右移 >>>无符号右移 &与运算 |或运算 ^异或运算 ~反码
<<左移 空位补0,被移除的高位丢弃,空缺位补0。
相当于乘以2的倍数;移n位,就是乘以2的n次幂。
>>右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。
相当于除以2的倍数;移n位,就是除以2的n次幂。
>>>无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补。
&与运算 二进制位进行&运算,只有1&1时结果是1,否则是0;
|或运算 二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;
^异或运算 任何相同二进制位进行 ^ 运算,结果是0; 1^1=0 , 0^0=0
不相同二进制位 ^ 运算结果是1。 1^0=1 , 0^1=1
~反码 二进制取反,1变0,0变1 &的规律:有假则假; |的规律:有真则真; ^的规律:同假异假(真--1,假--0) 异或的应用 一个数异或同一个数两次,结果还是原数。(如a^b^b=a) 该方法可用于加密或换位! 三元运算符 格式:(条件表达式)?表达式1:表达式2; true返回表达式1;false返回表达式2。 好处:简化if else代码; 弊端:因是运算符,故运算完必须要有一个结果。 if与switch的区别 判断的具体数值不多,且符合byteshort int char四种类型,建议使用switch语句(效率稍高)。 对于区间或结果为boolean类型使用if语句(使用范围广) while与do while的区别 while语句先判断条件,只有条件满足才执行循环体。 do while语句先执行循环体,再判断条件,条件满足,再继续执行循环体。 简单的说,do while:无论条件是否满足,循环体至少执行一次。 for与while的区别 对于变量来讲,如果该变量仅仅用于控制变量的循环次数,只作为循环增量存在,用for(优化内存); 变量有自己的作用域。 for(int y=0;y<3;y++) { } 以上写成这种 int y=0; for( ;y<3; ) { y++; } 也对,但是这种直接写while 即可。 无线循环的最简单表现形式 for( ; ; ){ } 对于for不写条件表达式默认为true while(true){ } for循环嵌套 外循环控制行数,内循环控制每一行的列数 两个for都++时的一般规律 尖朝上,可改变条件,让条件随着外循环变化; 尖朝下,可以改变初始化值,让初始化随着外循环变化。 break与continue的特点 break语句:应用于选择结构和循环结构 continue语句:应用于循环结构 这两个语句单独存在时,下面都不可以有语句,因为执行不到。 此标号的出现可以让这两个语句作用于指定范围。 |