Java核心卷 卷一 自我笔记 3.2Java的基本程序设计结构---数值转换和其他运算符

数值转换

在Java中,我们经常需要将一种数值类型转换为另一种数值类型。
例如:

int n=123456789;
float f=n;

当将这个整数数值转换为float时,将会得到同样大小的结果,但却失去了一定的精度。
当使用上面两个数值进行二元操作时(例如n+f,n是整数,f是浮点数),先将这两个操作数转换为同一种类型,然后再计算。

  • 如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。
  • 否则,如果其中一个操作数是float类型,另一个操作数将会转换为float类型。
  • 否则,如果其中一个操作数是long类型,另一个操作数将会转换为long类型。
  • 否则,两个操作数都将会转换为int类型。

从上看来,在必要的时候,int类型的值自动地转换为double。但是,有时也需要将double转换为int。所以,我们就会用到强制类型转换。
例如:

double x=9.997;
int nx=(int)x;

这样变量nx的值就变成9了。
如果,想对数据进行四舍五入处理,我们需要用Math.round方法:

double x=9.997;
int nx=(int)Math.round(x);

需要注意的是,将一个数值从一种类型强制转换为另一种类型时,而又超出了目标类型的表示范围,结果就会截断成一个完全不同的值。例如,(byte)300的实际值为44。

在赋值的时候,我们可以使用二元运算符。
例如:
x+=4;
等价于:
x=x+4;
这样做的好处是,如果运算符得到的是一个值,其类型与左侧操作数的类型不同,就会发生强制类型转换。

其他运算符

  1. 自增与自减运算符
int m=7int m=7int a=x* ++m;//now a is 16,m is 8;
int a=x* n++//now a is 14,m is 8;

上面介绍的是运算符放在操作数后面的“后缀”形式和“前缀”形式,它们都会使变量值加1或减1。但,用在表达式中时,二者就有区别了。前缀形式会先完成加1,而“后缀”形式会使用变量原来的值。
建议不要在表达式中使用++,因为这样的代码很容易让人困惑,而且会带来烦人的bug。

  1. 关系和boolean运算符
运算符含义
==检测相等性
!=检测不相等
&&逻辑‘’与‘’
&
&&逻辑‘’或‘’
l
表达式1 ?表达式2:表达式3当表达式1的值为true时,执行表达式2,否则,执行表达式2

&&和ll运算符是按照“短路”方式来求值的:如果第一个操作数已经能够确定表达式的值,那么,第二个操作数就不必计算了。

  1. 枚举类型
    有时候,变量的取值只在一个有限的集合内。枚举类型包括有限个命名的值。例如:
enum Size{SMALL,MEDIUM,LARGE,QWE};
Size s=Size.MEDIUM;

Size类型的变量只能存储这个类型声明中给定的某个枚举值,或者null值,null表示这个变量没有设置任何值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值