关于一些java的类型转换

类型的转换

  1. 一般来说,在做位运算符时,大类型会自动把小类型转换为大类型
例子: String msg=""+1;//这里是字符串类型和整数型相加
             msg="1";//结果为一个字符串类型的1
  ** 这里面通过一个空串与int类型相加因为字符串类型在这里是大类型所以结果把int强制转换为字符串类型**
   
  1. 自动类型转换:在相同类型使用位运算符做运算时,大盒子等于小类型的值
例子: 
  box='a';// 字符型结果为97;
  double  num=box;//结果为变量名的类型格式 97.0
  **在参与运算时,大类型参与运算会报错,这是因为小类型强制转换为大类型的数据会造成一些数据丢失**
  1. 在扩展运算符中,数据在运算时会自动强制转换为变量名相同的类型值,后运算
扩展运算符: ==  += *= /=

  1. 轮转:当运算的结果超出了类型值,结果值会在数据范围表中轮转
例子:  byte num=127;
			num+=1;//结果为-128
			演示:num=num+1;
			理解:这是因为在扩展运算符中,jdk内置了一些代码的优化功能,在扩展运算中,内部会自动转换为相同类型的数据类型后运算

5.大类型参与运算,尽可能提前

例子:double total =1.0*money*12000000;
这是因为代码在运算时都是从左到右,拿到上一步的结果做下一步的运算,如果上一步的结果超出了类型的范围值,整个运算结果都为错

强制类型的转换

  1. 理解:小类型的盒子 =(小类型)大值 ,注:boolean类型除外
  例子: boolean   good=true;
  		int box=(int)good;//会报错,错误提示:不兼容的类型
  		**Java中boolean类型为1,没有c语言的真即是1 ** 
  1. 类型转换的作用范围:当涉及到类型转换,在运算时,结果会被强制转换为符合当前的数据类型
例子: (int)0.08888*100;//结果为0
			(int)(0.08888*100)//结果为8
			**()的作用:在这里表提升作用域的优先级作用,在一些方法内也可表方法的调用或者对象的创建**

关系运算符

种类:< > <= >= != == instanceof 返回的值都为boolean类型
instanceof:这里表一个变量是否在对象内,返回的值为boolean类型的值
注: boolean 类型的变量不能用与关系型运算符中也就是> < >= <=中

例子:  int a=5,b=2;
			a>=b;//返回值为true
重点:"aaa" instanceof String ; //这里是判断aaa是否在String类中,注String 赋值 都是在对String 对象赋值 ,变量名是类似于对象存储的是地址
逻辑运算符

&& || ! :只操作boolean类型
短路:前面的表达式能够确定整个表达式的结果

例子: 5<2&& 5/0>1 
      这里面不会报错是因为前面表达式已经为false,发生了短路,后面的表达式就不运行

短路与:且&& 当前一个表达式 的值为F,整个表达式的结果已经确定为F,后面表达式为了提升性能而不执行。在表达式中只要有一个判断结果为flase,整个表达式都为false

例子:T&&T ->T   T&&F ->F  F&&T->F  F&&F->F

短路或:或|| 当前一个表达式的值为T,整个表达式的结果已经确定为T,后面表达式为了提升性能而不执行

例子:F||T->F  T||F->T    F||T ->F   F||F->F

! F->T !T->F :非真即假
重点:两边的类型都必须为boolean类型,其他类型的都会报错
位运算符&:不会发生短路,表达式会全部执行

三目运算符

表达式:boolean?值为true 取1:false取值2

例子: int a=5,b=3;
		int c = a>b?a:b;// 结果为a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值