Java基础复习-03类型转换与运算符

类型转换

为什么要进行类型转换?

原因:开发中会存在不同类型的变量或者数据赋值给其他类型的变量,也存在不同类型的数据一起运算,其结果类型要确定下来。

分类:
  • 自动类型转换

  • 强制类型转换

原理:小范围类型的变量可以直接赋值给大范围类型的变量

形式:

char ch = 'a';
int code  = ch;

数据类型的范围如下图所示,从左到右依次变大

表达式的自动类型转换

含义:在表达式中,小范围类型的变量会自动提升成大范围运算。

结论:表达式的最终结果数据类型是由表达式在红的最高数据类型决定的,最高数据类型是什么,其结果数据的类型就是什么。

注意: byte short char 在表达式中,是直接提升成int运算的

强制类型转换

含义:大范围类型的变量或者数据不能直接赋值给小范围类型的变量,否则报错!必须进行强制类型转换才可以。

格式: 数据类型 变量 = (数据类型)其他类型的变量/数据

注意:强制类型转换可能出现数据丢失,

浮点型类型的变量或者数据强制转换成整型,保留整数部分返回的,小数部分直接不要了

double a = 99.5;
int  i = (int)a;    //  i == 99

面试笔试题: byte b1 = 21; byte b2 = 22;

byte b3 = b1 + b2 ; // 错误形式

int b3 = b1 + b2 ; // 自动转换

byte b3 = (byte) (b1 + b2);// 强制类型转换

运算符

基本算数运算符

常见的: + - * / %

注意:/ 两个整数相除的结果一定是整数,10/3==3 1.0 * 10 / 3 == 3.333....

+符号做连接符

场景:+符号与字符串一起运算时,充当连接符,连接后的结果还是一个字符串。

识别技巧:能算则算,不能算大家连在一起

自增自减运算符

格式:++ :对变量进行+1操作

-- :对变量进行-1操作

注意事项

  • 只能操作变量,不能操作字面量

a++; // 没毛病的

2++; // 没有这种形式,报错!

  • ++ -- 单独使用,放在变量前后,没有区别;

a++; ++a;

  • ++ -- 如果不是单独使用,放在变量前后有明显区别

在变量前面:先+1,-1再使用变量

在变量后面:先使用变量,再对变量+1,-1

赋值运算符

格式:=, += -= *= /= %=

例如:a +=b等价于: a = (a的类型)(a + b);

用处:

适合做数据的累加操作

int a = 5;
int b = 6;
a+=b;// 此时a=(a+b)=11

自带强制类型转换

byte b1 = 2;
byte b2 = 3;
b1+=b2;// byte b3 = (byte)(b1 + b2);  ===>  b1 += b2;结果为byte类型的5
关系运算符

格式:== != > >= < <=

作用:判断是否满足条件的,返回true 和 false

例如:int age = 19;

System.out.println(age >= 18);// 结果为true

逻辑运算符

格式:& && | || ! ^

&(逻辑与) : 且的意思,必须前后都是true,结果才是true

&&(短路与) : 且的意思,必须前后都是true,结果才是true

区别:&&如果发现前面是false 后面不执行,直接返回结果,性能较好一点,用的更多一点。

|(逻辑或) : 或的意思,只要前后有一个是true,结果就一定是true

||(短路或) : 或的意思,只要前后有一个是true,结果就一定是true

区别:||如果发现前面是true 后面不执行,直接返回结果,性能较好一点,用的更多一点。

!取反-- !false = true !true = false

^ 异或操作:前后一样返回false ,前后不一样返回true

三元运算符

做分支选择的,关键是格式

格式:条件表达式?值1:值2;

        int a = 4;
        int b = 5;
        System.out.println(a>b?b:a);// 因为a<b所以a>b为false则输出a所以结果:4

运算符优先级

运算符存在谁先谁后执行的情况

  • ()优先级最高

  • */ 高于 +-

  • && 优先级高于||

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值