Java 知识量:11 - 45 - 220
在Java中,有几种方式可以表示整数类型。主要包括:byte、short、int和long。这些类型都是有符号的,这意味着它们可以表示正数和负数。如果只需要表示正整数,那么可以考虑使用unsigned版本的一些类型,例如unsigned byte、unsigned short、unsigned int和unsigned long。这些unsigned类型只能表示非负整数。
注意:对于long类型,虽然它能够表示的范围更大,但是它在处理效率和内存占用上相比int可能会有所损失,所以在不需要超过int类型能够提供的范围的情况下,一般推荐使用int类型。
以下是创建这些类型的例子:
int myInt = 10; long myLong = 20L; // 注意'L',它表示这是一个long类型的数字 short myShort = (short) 30; // 必须用强制类型转换将int转为short byte myByte = (byte) 40; // 同样地,将int转为byte也需要强制类型转换
如果想表示的是无符号整数(即只能表示非负整数),可以使用unsigned关键字,但是需要注意Java并没有内置的unsigned整数类型,所以这通常是通过将一个signed类型和一个mask进行位运算来实现的。例如:
int unsignedValue = someSignedValue & 0xFFFFFFFF; // 将有符号的int转为无符号的int
除了上述的整数类型,Java中的整数类型还可以用十进制、二进制和十六进制表示。
十进制:这是我们日常生活中最常用的表示方式,例如 int num = 10;
二进制:在计算机科学中,二进制被广泛使用。在Java中,二进制整数以0b或0B开头,例如 int binaryNum = 0b1010;
十六进制:在某些情况下,例如处理颜色或某些特定的网络协议时,我们可能需要使用十六进制。在Java中,十六进制的整数以0x或0X开头,例如 int hexNum = 0x1A。
BigDecimal类用于表示精确的浮点数,这对于需要高精度的计算非常重要。例如,金融业务中的货币计算,或者任何需要精确到小数点后很多位的计算。
BigDecimal对象可以表示任意大小的数值,无论是正数还是负数,并且可以精确地表示小数。与float和double类型不同,BigDecimal可以精确地表示分数,不会出现精度丢失的问题。
下面是一个创建和使用BigDecimal对象的简单示例:
import java.math.BigDecimal; public class BigDecimalExample { public static void main(String[] args) { // 创建BigDecimal对象 BigDecimal number1 = new BigDecimal("123.456789"); BigDecimal number2 = new BigDecimal("234.567890"); // 进行数学运算 BigDecimal sum = number1.add(number2); BigDecimal difference = number1.subtract(number2); BigDecimal product = number1.multiply(number2); BigDecimal quotient = number1.divide(number2); // 输出结果 System.out.println("Sum: " + sum); System.out.println("Difference: " + difference); System.out.println("Product: " + product); System.out.println("Quotient: " + quotient); } }
需要注意的是,由于BigDecimal是对象类型,不是基本数据类型,所以创建和操作BigDecimal对象需要更多的内存和处理时间。然而,对于需要精确计算的场景,使用BigDecimal通常是必要的。
Java的数学函数标准库主要包括java.lang.Math类和java.util.Random类。
java.lang.Math类提供了一组静态方法,用于执行基本的数学运算,如三角函数、指数、对数、平方根、取整等。以下是Math类中的一些常用方法:
abs(x):返回x的绝对值
sqrt(x):返回x的平方根
pow(x, y):返回x的y次方
round(x):返回最接近x的整数
ceil(x):返回大于或等于x的最小整数
floor(x):返回小于或等于x的最大整数
sin(x):返回x的正弦值
cos(x):返回x的余弦值
tan(x):返回x的正切值
asin(x):返回x的反正弦值
acos(x):返回x的反余弦值
atan(x):返回x的反正切值
atan2(y, x):返回从原点到点(x, y)的角度
exp(x):返回e的x次方
log(x):返回x的自然对数(底为e)
log10(x):返回x的以10为底的对数
java.util.Random类则提供了一个用于生成伪随机数的工具。以下是Random类中的一些常用方法:
nextInt():返回一个伪随机的整数
nextInt(n):返回一个介于0(包括)和指定值n(不包括)之间的伪随机整数
nextDouble():返回一个伪随机的双精度浮点数,介于0.0(包括)和1.0(不包括)之间
nextFloat():返回一个伪随机的浮点数,介于0.0(包括)和1.0(不包括)之间
nextBoolean():返回一个伪随机的布尔值
nextGaussian():返回一个伪随机的高斯分布的双精度浮点数,平均值为0,标准差为1
这些函数可以满足大多数基本的数学和随机数生成需求。如果需要更复杂的数学运算,可能需要使用额外的数学库,如Apache Commons Math库。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6