本文深入探讨了Java中的数字类型及相关的运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符,并介绍了Math和Random类的应用。
文章目录
- 一、运算符
- 1、算术运算符
- 2、关系运算符
- 3、逻辑运算符
- 4、位运算符
- 二、数学工具类
一、运算符
Java语言中提供了多种运算符以支持不同的数据处理需求,主要包括算术运算符、关系运算符、逻辑运算符和位运算符。
1、算术运算符
Java中的算术运算符包括加(+)、减(-)、乘(*)、除(/)和取模(%)。其中,取模运算用于计算两数相除后的余数。此外,Java还支持自增(++)和自减(--)运算符,用于快速增加或减少变量的值。
注意事项:
1. 加法运算符在字符串拼接时会将数字转换为字符串。
2. 整数除法结果为整数,而浮点数除法则返回浮点数。
3. 取模运算对浮点数无效,结果的符号与被除数相同。
4. 任何数除以0将导致错误,但浮点数除以0会产生无穷大(Infinity),对0取模则返回非数字(NaN)。
2、关系运算符
关系运算符用于比较两个值,包括等于(==)、不等于(!=)、小于(<)、大于(>)、小于等于(<=)和大于等于(>=)。这些运算符的结果总是布尔值true或false。
注意事项:
1. 字符之间的比较基于它们的ASCII值。
2. 浮点数与整数比较时,若值相等,则返回true。
3、逻辑运算符
逻辑运算符用于组合多个条件表达式,包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。其中,&&和||具有短路特性,即在第一个操作数已能决定最终结果时,不会评估第二个操作数。
注意事项:
1. &&是短路与运算符,若第一个条件为false,则不评估第二个条件。
2. ||是短路或运算符,若第一个条件为true,则不评估第二个条件。
3. &和|是非短路版本,无论第一个条件如何都会评估第二个条件。
4. ^表示异或,当两个条件一个为true另一个为false时结果为true。
4、位运算符
位运算符直接操作数字的二进制位,包括按位与(&)、按位或(|)、按位非(~)、按位异或(^)、左移(<<)、右移(>>)和无符号右移(>>>)。
注意事项:
1. &按位与,仅当两位都为1时结果为1。
2. |按位或,仅当两位都为0时结果为0。
3. ~按位非,对每一位取反。
4. ^按位异或,相同为0,不同为1。
5. >>右移,正数高位补0,负数高位补1。
6. <<左移,高位溢出部分舍弃,低位补0。
7. >>>无符号右移,无论正负数,高位均补0。
二、数学工具类
1、Math类
Math类提供了一系列静态方法,用于执行常见的数学运算,如求平方根、指数、对数、三角函数等。以下是部分常用方法:
方法名 | 方法说明 | 方法名 | 方法说明 |
---|
Math.sqrt(x) | 计算x的平方根 | Math.rint(x) | 四舍五入到最近的整数(浮点型) |
Math.ceil(x) | 向上取整 | Math.floor(x) | 向下取整 |
Math.pow(base, exp) | 计算base的exp次方 | Math.round(x) | 四舍五入到最近的整数(整型) |
Math.random() | 生成0到1之间的随机浮点数 | Math.abs(x) | 返回x的绝对值 |
Math.max(a, b) | 返回a和b中的较大值 | Math.min(a, b) | 返回a和b中的较小值 |
Math.signum(x) | 返回x的符号值(-1, 0, 1) | | |
Math类还提供了三角函数方法:
Math.sin(3.14); // 约等于0.00159...
Math.cos(3.14); // 约等于-0.9999...
Math.tan(3.14); // 约等于-0.0015...
Math.asin(1.0); // 约等于1.57079...
Math.acos(1.0); // 约等于0.0
Math类定义了一些常用的数学常量:
double pi = Math.PI; // π,约等于3.14159...
double e = Math.E; // 自然对数的底数e,约等于2.7182818...
Math.sin(Math.PI / 6); // 计算sin(π/6),结果为0.5
2、Random类
Random类用于生成伪随机数,支持多种数据类型的随机数生成。以下是一些常用方法:
方法名 | 方法说明 | 方法名 | 方法说明 |
---|
nextInt() | 生成一个int类型的随机数 | nextInt(n) | 生成一个0到n-1之间的int类型随机数 |
nextLong() | 生成一个long类型的随机数 | nextFloat() | 生成一个0.0到1.0之间的float类型随机数 |
nextDouble() | 生成一个0.0到1.0之间的double类型随机数 | | |