笔记备忘,方便以后忘了查询(如有错误,敬请指点)
★变量:
- 变量的定义、赋值(简单值、表达式)
-8个基本类型:
byte、short、int、long、float、double、char、boolean
★运算符
▲算数运算符(7个): + 、 - 、 * 、 / 、 %
复杂的数学运算,用Math类。该类提供了一些工具方法,可以完成初中、高中数学运算
|
▲赋值运算符: 将 = 右边的值,装入左边的容器(变量) 左边只能是变量 = 右边可以是任何复杂的表达式 大部分时候 = 右边往往都是复杂的表达式 |
▲比较运算符:
> >= < <= == != | | |
比较运算符,正是用于比较两个变量或两个值,如果符合预期得到true
否则得到false
▲逻辑运算符: 只能对boolean值进行运算 && 与:要求两个条件同时为true,结果才为true。 & 不短路与 | | 或:要求任意一个条件为true,结果就为true。 | 不短路或 ! 非:条件为true,就变成false;原来条件为false,就变成true ^异或:两个条件相同得到false;两个条件不同得到true (true-true)(false-false) (true-false)(false-true)
&&和&的区别: &&:如果第一个操作数已经false,将不会计算第二个数,称为短路 &:如果第一个操作数已经false,仍然会计算第二个数,称为不短路 ||和|的区别: ||:如果第一个操作数已经true,将不会计算第二个数,称为短路 |:如果第一个操作数已经true,仍然会计算第二个数,称为不短路 一般来说,编程时都是用【短路与】和【短路或】 |
▲拓展的赋值运算符:
a += b; a =(类型)( a + b) 拓展的赋值运算符的左边,只能是变量 a -= b; a =(类型)( a - b) a *= b; a =(类型)( a * b) … | |
基本上,前面介绍的双目运算符都可以与=结合,形成扩展的赋值运算符
▲三目运算符 逻辑表达式?值1 :值2 如果 逻辑表达式为true,整个表达式返回值1,否则返回值2 类型 变量 = 表达式 ? "" : ""; 嵌套后的三目运算符表达式可能返回3个、甚至更多的值的其中之一 |
▲运算符的结合性和优先级:
结合性:控制运算符的运算方向:从左到右?还是从右到左?
大部分运算符都是从左到右,=运算符是从右到左的。
优先级:谁先算、谁后算的问题
先乘除、再加减 ——推荐,记不清的时候,用括号保证优先级。
▲位运算符:
它只能对整形(byte、short、int、long、char)运算
针对二进制码进行运算的
▲正数直接算出来叫原码。
原码的最高位又叫符号位,如果是0代表正数;最高位是1代表负数。 反码:除符号位外,其他的都按位取反 补码:反码+1 ▲负数的二进制码,保存的是补码
&:按位与。上下两位都是1时,得到的结果才是1 |
|:按位或。上下两位有一个是1时,得到的结果就是1 当表示状态时,会用特定的数表示开关。 文本状态: 粗体 斜体 下划线 中划线 1 2 4 8 0001 0010 0100 1000 粗体、斜体 00000011 =1 | 2 粗体、斜体、中划线 00001011=1 l 2 | 8 left | up 在安卓中这是两个"开关"能把东西放在左上角 |
~:非,按位取反。原来是0变成1;原来1变成0;(包括符号位) 正变负,加1 负变正,减1、
|
^:按位异或。上下两位相同时是0,不同是1 |
<<:左移N位,相当于乘以2的N次方 【面试题】2乘以8,最快的算法——2<<3 |
>>:右移N位,相当于除以2的N次方 除不尽的话,实际结果总是比除的结果略小的整数 |
>>>:无符号右移 ——很少用
如果被移位的数是正数,那么该运算符与>>运算一样。
如果被移位的数是负数,被空出来的高位总是补0——这个数就会变成正数