2.5.4类型转换
在java中各个数据类型之间是可以相互转换的,有两种转换方式自动类型转换
,强制类型转换
。
自动类型转换
小类型转换成大类型的时候是自动类型转换,比如byte,short,转int
不同的数据类型在进行四则运算的时候,会自动向大的类型靠拢。
char->int
byte->short->int->long->float->double
//声明一个double类型的变量,储存的是一个进行了四则运算的结果
//右侧计算的时候使用的是float值来储存数值,在计算结果后使用double来赋值
double num = 2*3+2.1F;
System.out.println(num);//计算结果有偏差,原理是小数转换数据类型的时候产生的,具体原因我也不明确
强制类型转换
大类型转换成小类型的时候所使用的转换方式。
int num = 10;
byte a = (byte)num;//强制类型转换需要在变量左边加上需要强制转换的类型。
强制类型转换存在数据精度缺失的风险,如果一定要强制类型转换,请三思而后行。
int num = 130;
byte a = (byte)num;//转换后的数值并不是原先初始的值,所以强转要先考虑清楚
其中强制类型转换涉及到数据在计算机中的储存方式,需要深究的话请百度(原码,反码。补码)。
2.6.1变量的命名规则
变量的命名遵守标识符的规则
首字母小写,接下来的每个单词的首字母大写。例如:orderedNumber
2.6.2常量
常量就是不会随着程序运行而发生改变的量,通过使用final
来修饰变量使其变为常量。
常量的值在被修饰后是不能被更改的
常量的命名规范:
每个字母大写,并且使用_
来分隔每个单词;比如:LAST_WORD
2.6.3常量的意义
常量在程序中也发挥着重要的作用,数学中的一些计算在程序中可以使用一般的常量(比如π)来进行运算。
2.7运算符
2.7.1运算符的概念
int a = 2+3;
- 上面代码中的+和=都是运算符
- 运算符左右变量的内容称之为操作数,将运算符左右两边其中只有一个操作数的运算符称为单目运算符,运算符的左右两边都有操作数的称为双目运算符
2+3
称为表达式,最后都有一个计算结果。int a = 2+3;
是一条语句,(以;
结尾的就是一条语句。)
2.7.2运算符的分类
- 算数运算符
+ - * / % ++ --
- 关系运算符
> < <= >= == !=
还有个instanceOF
- 逻辑运算符
& | ! ^ && ||
- 赋值运算符
=
- 拓展运算符
+= -= *= /= %= >>= <<= ^= !=
- 位运算符
& | ^ >> << <<<!
- 条件运算符
? :
i、赋值运算符
=
,赋值的方向是从右到左,将值付给变量名
运算的方向也是自右向左
II、算数运算符
+号
- 可以作为正号使用,正号表示数字为正数
- 可以作为双目运算符使用,加号左右需要是个具体的数字
- 可以作为连接符号使用,
+
号左右有出现一个操作数是字符串类型的变量的时候,此时的+
号起到的是连接作用,将左右两边的内容以字符串的形式转化并输出。
-号
- 可以作为负号使用,表示一个数字它是负数
- 可以作为四则运算中的减法将左右两边的数值型变量相减。
*号 / 号 %号
在这里插入图片描述
- 乘号可以将左右两边的操作数相乘,作为四则运算的操作数使用
- 除号可以将左右两边的操作数相除,作为四则运算的操作数使用
- 除取余号功能和除法不一样,除取余所保留的数是商后的余数,除后保留的是商后的整数。
++ –
-
++和–是单目运算符
-
++和–的联系
形成单独的一条语句的时候,++和–都是单目运算符,在变量的前面和后面都没什么关系
区别:
- ++是在变量的基础上自增1;–是在变量的基础上自减1.
- ++或者–在变量左边且不是单独一条语句的时候,是先将变量 自增/自减 再进行运算。
- ++或者–在变量右边且不是单独一条语句的时候,是先进行运算再将变量 自增/自减 。
iii、扩展运算符
其实本质上就是算数运算符和位运算符+赋值运算符的一个结合体。+= -= /=…
扩展运算符的优点缺点分析:
-
优点
提高了编译速度和编写速度
-
缺点
不利于阅读
-
注意事项
使用扩展运算符的时候,会自动将数据进行强制类型转换,可能出现精度丢失的问题,使用前需要考量。
初期可以使用通常的变量运算方式,后面需要渐渐改为使用扩展运算符以提高效率。
iv、关系运算符
符号> < <= >= == !=
还有个instanceOF
注意事项:
- 关系运算符最后的结果是一个boolean类型的值
- != ==既可以比较基本数据类型,也可以比较引用数据类型
- < > <= >=只能比较除布尔类型的基本数据类型
V逻辑运算符
符号:& | ! ^ && ||
逻辑运算符的操作数是布尔类型的变量值
逻辑符号 | 操作数的数量 | 读法 |
---|---|---|
& | 2 | 与 |
| | 2 | 或 |
! | 1 | 非 |
^ | 2 | 异或 |
&& | 2 | 双与 |
|| | 2 | 双或 |
非在取值的时候取的是反向值
-
异或就是两值为相同的时候,就输出false;两值为相反的时候,就输出true。
-
其实在实际进行逻辑判断的时候短路与和短路或的结果和单与单或是相同的,但是单与和单或的计算方式是每个表达式的值都要计算。
-
双与的计算方式是只要有值为false,那么跳过后面的判断语句并直接输出false。
-
双或的计算方式是只要有值为true,那么跳过后面的判断语句并直接输出true。