Java SE学习笔记(三)

1. 负数在Java内存中存储机制

a) 在内存中存储负数是使用补码的方式存储

b) 补码 原码的绝对值取反码+1

c) int i = 129;

byte b = (byte)i; 

System.out.println(b);//结果为-127

 

2. 算数运算符

a) 加号(+) : 加法表示正数字符串链接

b) 减号(-) : 减法表示负数

c) 乘号(*) : 乘法

d) 除法(/) : 除法

e) 取模(%) : 取模运算/求余数

f) 自增(++) : 让操作数+1

g) 自减(--)  : 让操作数-1

 

3. 自增的原理 

a) int i = 0;   i = i ++; 

其中的i = i++; 相当于

int temp = i;

i++;

i = temp;


4. (byte, char, short)在使用+=等运算符的时候编译器不会将其类型转换到int类型

 

5. 逻辑运算符:

a) 逻辑与(&, &&) : 当逻辑与两边的表达式都为true时才为true, 其他情况都为false, 双目逻辑与在使用的时候要注意当前面的表达为false的时候后面的表达式将不会去判断所以当前面的表达式为false的时候双目逻辑与效率会提高

b) 逻辑或(|, ||) : 当逻辑或两边的表达式有一个或都为true的时候为true, 其他情况为false, 双目逻辑或在前面的表达式为true的时候不会执行后面的表达式

c) 异或(^) : 当两边的表达式一个为true一个为false的时候返回true, 其他情况都为false

d) 逻辑非(!) : true的时候返回false, false同理

 

 

6. 位运算符 

a) 运算与(&) : 将两个操作数转换成二进制数然后按位运算, 1-1=1, 1-0=1,0-1=0, 0-0=0

b) 运算或(|) : 将操作数转换成二进制数然后按位运算, 1-1=1, 1-0=1, 0-1=1, 0-0=0

c) 运算非(^) : 将操作数转换成二进制数,然后按位运算, 1-1=0, 1-0=1, 0-1=1, 0-0=0

d) 取反(~) : 将操作数转换成二进制数,然后按位计算,. 0=1, 1=0

 

 

7. 交换算法:

a) 第一种(使用第三方变量交换) : 

temp = a;

a = b;

b = a;

b) 第二种(使用加法) : 

a = a +b;

b = a - b;

a = a - b;

c) 第三种(使用异或) : 

a = a ^ b;

b = a ^ b;

a = a ^ b;

 

 

8. 移位运算符 : 

a) 左移(<<) : 将操作数的二进制数向左移一位空出来的用0补位

b) 右移(>>) : 将操作数的二进制数向右移一位空出来的用0补位

c) 无符号右移(>>>) : 无符号右移无论操作数为正数还是负数右移左边的空位永远用0补位

 

 

9. 三元运算符(三目运算符) : 

a) 格式: 表达式?1:2

b) 表示如果表达为true的话, 会将值1返回如果为false的话会返回值2

c) 在使用三元表达式的时候需要注意返回的结果必须要使用如果不使用的话, Java编译器会报错

 

 

10. 比较运算符 : 

a) 等于(==) : 判断(==)两边的操作数是否相同

b) 大于(>) : 判断(>)左边的操作数是否大于右边的操作数

c) 小于(<) : 判断(<)左边的操作数是否小于右边的操作数

d) 大于等于(>=) : 判断(>=)左边的操作数是否大于或者等于右边的操作数

e) 小于等于(<=) : 判断(<=)左边的操作数是否小于或者等于右边的操作数

f) 不等于(!=) : 判断(!=)左边的操作数是不是和和右边的相等

 

 

11. 赋值运算符 : 

a) 等于(=) : 把等号右边的值赋给左边的变量

b) 加等于(+=) : 用等号左边的值加上右边的值赋给左边的变量int i = 1; i += 2;结果i的值等于3

c) 减等于(-=) : 用等号左边的值减去右边的值把结果赋给左边的变量

d) 乘等于(*=) : 把左右两边的值相乘后赋给左边的变量

e) 除等于(/=) : 用等号左边的值除以右边的值把结果赋给左边的变量

f) 模等于(%=) : 用等号左边的和右边的值取模然后把结果赋给左边的变量

 

 

12. 运算符优先级 : 

 

 

13. 流程控制语句 : 
正常代码的执行都是从上往下的, 每个分号都表示一个语句的结尾

 

 

14. if判断语句有三种情况

a) 第一种, 表示如果if里面的表达式成立则执行括号里面的代码

if(表达式){

//待执行的代码;

}

b) 第二种表示如果if里面的表达式成立则执行if中的代码否则执行else中的代码:

if(表达式){

//待执行的代码;

}else{

//待执行代码;

}

c) 第三种如果if里面的表达式如果成立则执行里面的代码否则就继续判断知道最后一个if里面的表达式都不成立的话则执行else里面的代码

if(表达式){

//待执行的代码;

}if(表达式){

//待执行的代码;

}if(表达式){

//待执行的代码;

}else{

//待执行的代码;

}

 

 

15. 选择语句(switch) :

a) switch的格式:

 switch(表达式){

case 值 

//待执行的代码;

break;

case 值 

//待执行的代码;

break;

case 值 

//待执行的代码;

break;

case 值 

//待执行的代码;

break;

default :

//待执行的代码;

break;

}

b) 使用switch需要注意 

i. case 后面的值一定得是常量不能是变量

ii. 在JDK1.7之前的版本, switch中的表达式一定得是 byte, char, short, int 四种类型

iii. 在JDK1.7的新特性中支持String类型

iv. 如果switch找到匹配项之后会执行里面的代码并继续向下执行直到遇到break;或者结束括号一般都是建议在case结束后加上break. 因为不加上break;的流程是不符合我们的逻辑的.

 

 

16. while循环语句 

a) while格式 

while(表达式){

//待执行的代码;

}

b) 一般while语句中的表达式都是用变量来控制循环的次数

int i = 0;

while(10 < i++){

System.out.print(i);

}


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值