20200922 王维
学习总结
运算符
1.位运算符
&按位与 对左右两边的二进制的补码对应的每一位进行与运算,都是1,结果才是1
|按位或 对应的每一位进行或运算,有两个中有1存在,结果就是1
按位异或 相同为0,不同为1
~按位非 二进制补码所有数进行取反
<<左移 低位补0,高位移出,左移后的数不越界的情况下,一个数左移n位等同于乘以2的n次方
>>右移 左侧空位补最高位,即符号位,右移后的数不越界的情况下,一个数右移n位等同于除以2的n次方
>>>无符号右移 左侧空位补0
计算时,位运算的速度最快,最贴近计算机的运行方式
2.条件运算符
也叫三目运算符或者三元表达式
条件1 : 表达式1 ? 表达式2
条件1的结果是布尔类型,只能是true或者false
如果条件1的结果是true,则返回表达式1
如果条件1的结果是false,则返回表达式2
3.运算符的优先级
运算符 | 优先级 | 结合性 |
---|---|---|
() [] | 1 | |
! ~ ++ -- | 2 | 从右向左 |
* / % | 3 | |
= - | 4 | |
<< >> >>> | 5 | |
< <= > >= instanceof | 6 | |
== != | 7 | |
& | 8 | |
^ | 9 | |
| | 10 | |
&& | 11 | |
|| | 12 | |
?: | 13 | 从右向左 |
= += -= *= /= %= &= |= = ~= <<= >>= >>>= | 14 | 从右向左 |
注意:
优先级最低的是赋值运算符,其次是条件运算符
单目运算符包括! ~ ++ --,优先级最高
总体来说,优先级是算数运算符>关系运算符>逻辑运算符
结合性从右向左的只有赋值运算符、三目运算符和单目运算符
流程控制
1.基本结构
程序的基本结构包括顺序结构、选择结构和循环结构
2.选择结构
if控制语句
单分支
双分支
多分支
嵌套if控制语句
switch语句
break用于终止switch的执行
case如果没有break,程序将继续向下执行,知道遇到break语句或者switch结束
default语句是可选项,当条件都不匹配时,执行default
jdk1.7版本之前switch后面允许int、byte、short、char、枚举类型,不支持String类型,jdk1.7新增支持Sring,1.7及其之后都支持
3.循环结构
循环四部分:循环变量、循环条件、循环体、改变循环变量的值
while循环与do-while循环,do-while循环至少执行一次
for循环
for(表达式1:表达式2:表达式3){
循环体
}
表达式1 2 3都可以不写
表达式1只执行1次
多重循环 循环内嵌套循环
循环语句对比
for 先判断,后执行 适用在已知循环次数的情况
while 先判断,后执行 适合先判断,后执行的情况
do-while 先执行,后判断 适合先执行,后判断的情况
跳转语句
break 只允许使用在循环语句和switch语句中,作用是终止当前循环
continue 强制循环提前返回,终止本次循环
循环嵌套的时候可以给循环命名
命名之后可以通过控制语句,如 continue、break来控制循环跳出操作
continue [循环名称]
循环名称不写,默认是当前循环,
如果写上循环名称,表示操作指定循环名称循环
心得体会
今天是学习java的第二天,相较于昨天,适应了很多,感受到了java和JavaScript的很多区别,在学习JavaScript的很多习惯和习惯性的知识代入到了java中,但是在java中是错误的,特别是关于变量这方面,JavaScript对于变量很宽松,弱类型语言,很多地方存在隐式转换,但是java就不一样,强类型语言,对于变量类型的要求很严格,导致原来习惯性的变量声明很多都是错误的。
评论