Java核心技术卷一 -第三章:运算符

系列文章目录

Java核心技术卷一 -第一章:java“白皮书”的关键术语
Java核心技术卷一 -第三章:数据类型
Java核心技术卷一 -第三章:变量与常量


前言

本人为java初学者,文章内容仅为个人学习总结分享,其中包含了大量Java核心技术卷一里面的文章内容以及一些网站文章内容,由于参考文章过多,在此并不一一列出,如有侵权,请联系删除。

一、算术运算符:

在Java中,使用算术运算符+、-、*、/表示加、减、乘、除运算。当参与/运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。整数的求余操作(有时称为取模)用%表示。例如,15/2等于7,15%2等于1,15.0/2等于7.5。

需要注意,整数被0除将会产生一个异常,而浮点数被除将会得到无穷大或NaN结果。

二、Math类与数学函数:

在Math类中,包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函数也不同。
如何调用Math类中的数学函数:在这里插入图片描述

举例:

计算一个数值的平方根——sqrt方法:

double x=4;
double y = Math.sgrt(x);
System.out.println(y);//prints 2.0

幂运算——pow方法:

double y = Math.pow(x,a);

将y的值设置为x的a次幂(x^a)pow方法有两个double类型的参数,其返回结果也为double类型。

其它一些方法:在这里插入图片描述

注意:

在这里插入图片描述

在这里插入图片描述

三、数值类型之间的转换:

数值类型之间的合法转换表:

在这里插入图片描述

该表中有6个实线箭头,表示无信息丢失的转换;另外有3个虚线箭头,表示可能有精度损失的转换。例如,123456789是一个大整数,它所包含的位数比float类型所能够表示的位数多。当将这个整数转换为float类型时,将会得到正确的大小,但是会损失一些精度。

    int n=123456789;
    float f = n;//f is 1.23456792E8

注意:当用一个二元运算符连接两个值时(例如n+f,n是整数,f是浮点数),先要将两个操作数转换为同一种类型,然后再进行计算。
    如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型
    否则,如果其中一个操作数是float类型,另一个操作数将会转换为float类型
    否则,如果其中一个操作数是long类型,另一个操作数将会转换为long类型。
    否则,两个操作数都将被转换为int类型。

强制类型转换:

其实在必要的时候,int类型的值需要转换为double类型。有时也需要将double转换成int。在Java中,允许进行这种数值之间的类型转换,当然,有可能会丢失一些信息。这种可能损失信息的转换要通过强制类型转换(cast)来完成。强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。例如:

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

这样,变量X的值为9,因为强制类型转换通过截断小数部分将浮点值转换为整型。
如果想对浮点数进行舍入运算,以便得到最接近的整数(在很多情况下,这种操作更有用),那就需要使用Math.round方法:

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

现在,变量nx的值为l0。当调用round的时候,仍然需要使用强制类型转换(int)。其原因是round方法返回的结果为long类型,由于存在信息丢失的可能性,所以只有使用显式的强制类型转换才能够将long类型转换成int类型。

警告:

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

注意:

不要在boolean类型与任何数值类型之间进行强制类型转换,这样可以防止发生一些常见的错误。只有极少数的情况才需要将布尔类型转换为数值类型,这时可以使用条件表达式b?1:0。

四、位运算符

位运算符包括:“&”、“|”、“^”、“~”

位运算是先把两边的数据全部变成二进制补码的形式,然后进行计算。

衍生的应用:可以得到目标数值二进制表示的某一个位的值。代码
结果

五、常见运算符即优先级表示图:

在这里插入图片描述

总结

以上就是本文的内容,记录了关于java运算符的一些内容,本人也是刚开始接触java,不能保证总结内容的正确性,若是有错误的话,欢迎大家指出,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luodiab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值