Java_Day_2学习笔记
运算符
介绍
运算符是一种特殊的符号,表示数据间的一些操作
- 算术运算符
- 赋值运算符
- 关系运算符【比较运算符】
- 逻辑运算符
- 位运算符【二进制基础】
- 三元运算符
算术运算符
运算符 | 运算 |
---|---|
+ | 正号 |
- | 负号 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
++ | 自增(前)先运算后取值 自增(后)先取值后运算 |
- - | 自减(前)先运算后取值 自减(后)先取值后运算 |
+ | 字符串相加 |
除法(/)
Java在进行除法运算的时候,一定要关注数据的类型,相同的数据,不同的数据类型可能会得出来不同的结果。这一点其实在C++中也存在。下面是一个关于除法运算的一个案例(仅供参考):
1 | // ArithmeticOperator.java |
取模(取余,%)
其实取模的运算可以看作一个公式,即 a % b = a - a / b * b
下面是一些案例,仅供参考:
1 | // ArithmeticOperator.java |
其实在上面的案例中我们可以先不看两个数字的符号。
按绝对值,即正数来运算,最后得出来的余数与%前面的数字的符号一致。
自增(++)
自减与自增基本一致,这里笔者就只写自增啦,自减的话希望大家可以举一反三进行程序编写和测试。
1 | // ArithmeticOperator.java |
如果是变量单独运算,即不与其它变量进行混合运算时,前后无所谓。
小题两道
1 | int i = 1; |
1 | int i = 1; |
编程:定义一个变量来保存华氏温度,华氏温度转换成摄氏温度的公式为: 5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度。[123.4]
步骤:分析需求;给出思路;写代码。
关系运算符
- 结果都是布尔型,即只有true和false两种。
运算符 | 运算 |
---|---|
== | 相等于 |
!= | 不等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
instanceof | 检查是否是类的对象 |
比较运算符的==不要写成=,=是赋值运算符。
关系运算符理解各个运算符的实际意义即可。
逻辑运算符
- 短路与&&, 短路或||, 取反!
- 逻辑与&, 逻辑或|,逻辑异或^
a | b | a&&b | a||b | a&b | a|b | !a | a^b |
---|---|---|---|---|---|---|---|
true | true | true | true | true | true | false | false |
true | false | false | true | false | true | false | true |
false | true | false | true | false | true | false | true |
false | false | false | false | false | false | true | false |
对比上表理解每个运算符的运算规则。
其他的运算符可以按照上面的
对于短路与&&, 当第一个条件是false,后面的条件就不会再执行,有and的意思。
1 | public class LogicOperator{ |
短路或||和短路与&&类似,当第一个条件是true之后,后面的条件不再判断,有or的意思。
==注意:==短路与和短路或,当第一个条件就可以确定整个式子的值时,就不再看第二个式子;逻辑与和逻辑或,所有条件必须全部都要检查后才能给出整个式子的答案
赋值运算符
- 赋值运算符 =
- 从右向左运算
- 符号左边必须是变量,右边可以是变量、表达式、常量值
- 复合赋值运算符
- +=
- -=
- *=
- ^=
- %=
- 复合运算符在进行运算的时候会进行类型转换
三元运算符
条件表达式?表达式1:表达式2;
- 如果条件表达式是true,则进入表达式1
- 如果条件表达式是false,则进入表达式2
表达式返回的值必须是接收变量所能接收的类型,举例:
1 | int a = 1; |
位运算
进制
满基数就向高位进1
- 二进制(0b):0,1;基数是2
- 十进制:0-9;基数是10
- 八进制(0):0-7;基数是8
- 十六进制(0x):0-F;基数是16
1 | int n1 = 0b1010; //10 |
码制
最高位是符号位,且java中没有无符号数,即java中的数都有符号位,0表示正数,1表示负数
- 原码:按照二进制规则来写就行
- 反码:正数时与原码一致;负数时,原码符号不变,其他的按位取反
- 补码:正数时与原码一致;负数时,反码基础上加1
计算机中的运算,都是以补码形式进行运算;但是计算结果看的是原码。
运算
运算符:&、|、^、~
1 | 2&3;// 2 |
运算符:>>、<<、>>>
1 | >>算术右移,低位溢出,符号位不变,并用符号位补溢出的高位;本质是/2 |
标识符的规则和规范
规则
规则就是必须遵守的,不应该违背的。
==变量命名:==不能包含关键字(public、int、double等)和保留字(goto等),并且不能用数字开头;变量名只能由数字,字母和符号(_与$)组合来命名
规范
为了看起来更加专业和方便[没有必须要求]
- 包名:多单词组成时所有字母用小写,如aaa.bbb.ccc
- 类名、接口名:多单词组成时,所有单词首字母大写(大驼峰),如LogicOperator
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写(小驼峰),如logicOperator
- 常量名:所有字母均大写,如MAXN
键盘输入
介绍
在进行程序的开发时,我们经常需要与用户进行交互,接收用户的数据输入等。java接收这些信息就需要创建一个扫描器(对象),Scanner
步骤
- 导入该类的所在包
- 创建该类对象(声明变量)
- 调用里面的功能
举例说明:从键盘输入一些信息,让java接收
1 | import java.util.Scanner; // 把java.util下的Scanner类导入程序 |
大家也可以试试其他的输入类型,不过不同的类型接收方式也不同哈。
作业
将String转换为double类型,将char转换为String类型
1 | String s = "123.4"; |
判断正误
1 | byte b = 19; short s = b + 2; //error;2是int类型,所以右边是int,int不能给short |