Java学习Day04
JAVA学习Day03
一、类型转换
-
数据类型由小到大的排序
byte short int(char) long float double
-
自动类型转换/隐式类型转换:
小类型转大类型
-
强制类型转换
- 大类型转换成小类型
- 语法: (要转换成的类型) 变量
- 强制类型转换需要考虑范围问题,可能会存在溢出
- double类型转换成int类型,存在精度丢失问题
-
两点规则
- 整数直接量可以赋值给byte short char,但是不能超出范围
- byte short char型数据参与运算时,系统一律将其转换成int类型
二、运算符
-
算术运算符
- , - , * , / , % -- ++
1. byte b1 = 3; 2. byte b2 = 4; 3. byte b3 = b1 + b2; 4. byte b4 = 3 + 4; 问:第三行代码和第四行代码是否会报错?为什么? byte b3 = b1 + b2;编译错误,byte类型的数据参与运算,会自动转换为int类型,所以计算的结果是int类型, byte b4 = 3 + 4; 不会报错,在JDK1.7做了一个优化,在编译过程中会直接计算3+4=7 ,然后将7赋值给b4 如果计算结果不超范文,不报错,正常赋值,如果超范围,编译会报错。
-
/ 除法
注意:
-
除数不能为0,如果除数为0,被除数为整数,程序编译没有问题,但是运行会抛出异常,异常如果没有处理,当抛出异常时,程序会停止
-
正浮点数/0: Infinity(无穷大)
负浮点数/0:-Infinity(负无穷大)
-
-
++ -- 自增,自减
-
如果变量单独使用++,-- ,++--在变量之前和在变量之后没有区别,都是在变量原基础上加/减1
-
如果++--参与到运算中,则
-
如果++ -- 在变量之后,先参与运算,再++ -- 如果++ -- 在变量之前,先++-- ,再运算
-
-
补充:
int a = 5; a += 10; System.out.println(a); short s = 5; s += 5; //自动强转,相当于s = (short) (s + 5); System.out.println(s); s = (short) (s + 5); System.out.println(s);
关系运算符
关系运算符的结果为boolean值,关系成立则返回true,关系不成立则返回false
逻辑运算符:
&& (与) ||(或) !(非) ^(异或)
三目运算符:
boolean?"'数据1":"数据2" :如果Boolean=ture ->数据1 否则为数据2
异或应用:
将a和b的值互换:
/**a^b^b则值为a,异或两个相同的值结果为本身*/
int a = 5;
int b = 6;
a = a ^ b;
b = b ^ a;//b ^ a ^ b = b
a = a ^ b;//a ^ b ^ a = a
System.out.println(a );
System.out.println(b);
位运算符
位运算符 | 符号解释 |
---|---|
& |
按位与,当两位相同时为1时才返回1 |
| |
按位或,只要有一位为1即可返回1 |
~ |
按位非,将操作数的每个位(包括符号位)全部取反 |
^ |
按位异或。当两位相同时返回0,不同时返回1 |
<< |
左移运算符 |
>> |
右移运算符 |
>>> |
无符号右移运算符 |
- 位运算符的运算过程都是基于补码运算,但是看结果,我们得换成原码,再换成十进制看结果
- 从二进制到十进制都是基于原码
- 正数的原码反码补码都一样,负数原码反码补码不一样
- byte,short,char在计算时按照int类型处理
如何区分&,|,^是逻辑运算符还是位运算符?
如果操作数是boolean类型,就是逻辑运算符,如果操作数是整数,那么就位运算符 。
额外拓展:
//程序开始的时间
long start = System.currentTimeMillis();
//程序结束的时间
long end = System.currentTimeMillis();
//计算程序运行所需要的时间
System.out.println((end-start)+"ms");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)