Math类:
1.Math中方法的调用方式:
Math类中无构造方法,但内部的方法都是静态的,所以可以通过类名进行调用.
2.Math的常用方法:
绝对值计算:Math.abs(a)
用于获取参数a
的绝对值。
平方根计算:Math.sqrt(a)
用于获取参数a
的平方根。需要注意的是,如果参数为负数,则返回NaN(非数字)。
立方根计算:Math.cbrt(a)
用于获取参数a
的立方根。
最大值计算:Math.max(a,b)
用于获取两个参数中的最大值。
最小值计算:Math.min(a,b)
用于获取两个参数中的最小值。
幂运算计算:Math.pow(a,b)
用于计算第一个参数a
的第二个参数b
次方的值。
向上取整:Math.ceil(a)
用于获取大于或等于参数a
的最小整数。
向下取整:Math.floor(a)
用于获取小于或等于参数a
的最大整数。
四舍五入:Math.round(a)
用于将参数a
四舍五入为最接近的整数。
随机数生成:Math.random()
用于生成一个伪均匀分布在 [0,1)之间的 double 值。
代码演示
public class MathExample {
public static void main(String[] args) {
// 绝对值计算
double absValue = Math.abs(-5);
System.out.println("Absolute value of -5: " + absValue);
// 平方根计算
double sqrtValue = Math.sqrt(25);
System.out.println("Square root of 25: " + sqrtValue);
// 立方根计算
double cbrtValue = Math.cbrt(27);
System.out.println("Cube root of 27: " + cbrtValue);
// 最大值计算
double maxValue = Math.max(10, 20);
System.out.println("Maximum value between 10 and 20: " + maxValue);
// 最小值计算
double minValue = Math.min(30, 40);
System.out.println("Minimum value between 30 and 40: " + minValue);
// 幂运算计算
double powerValue = Math.pow(2, 3);
System.out.println("2 raised to the power of 3: " + powerValue);
// 向上取整
double ceilValue = Math.ceil(4.2);
System.out.println("Ceiling value of 4.2: " + ceilValue);
// 向下取整
double floorValue = Math.floor(5.8);
System.out.println("Floor value of 5.8: " + floorValue);
// 四舍五入
long roundValue = Math.round(6.5);
System.out.println("Rounded value of 6.5: " + roundValue);
// 随机数生成
double randomValue = Math.random();
System.out.println("Random value between 0 and 1: " + randomValue);
}
}
System类
System类的常用方法包括数组复制、获取当前系统时间等。在Java中,System类提供了多种用于与底层操作系统交互的静态方法和字段,使得开发者能够执行诸如获取系统属性、执行外部命令以及管理输入输出等操作。以下是具体介绍:
arraycopy():这个方法用于数组复制,可以从一个源数组中复制一部分元素到目标数组的指定位置。
currentTimeMillis():此方法返回当前时间与1970年1月1日00:00:00 UTC之间的差值,以毫秒为单位。
exit():此方法用于终止当前正在运行的Java虚拟机,可以传入一个状态码来表示程序是正常退出还是异常退出。
gc():此方法用于请求JVM进行垃圾回收,以清理不再使用的对象所占用的内存空间。
getProperty():此方法用于获取系统属性,可以通过属性名作为参数传入来获取对应的属性值。
getProperties():此方法用于获取系统中所有属性的集合,通常这些属性包含了系统的环境变量和一些系统级别的设置
代码展示
//arraycopy():
int[] sourceArray = {1, 2, 3, 4, 5};
int[] destinationArray = new int[5];
System.arraycopy(sourceArray, 0, destinationArray, 0, 5);
// 输出复制后的数组
for (int i = 0; i < destinationArray.length; i++) {
System.out.print(destinationArray[i] + " ");
}
//
//currentTimeMillis():
long currentTime = System.currentTimeMillis();
System.out.println("当前时间戳:" + currentTime);
//
//exit();
System.exit(0); // 正常退出程序,状态码为0
//
//gc():
System.gc(); // 请求JVM进行垃圾回收
//
//getProperty():
String javaVersion = System.getProperty("java.version");
System.out.println("Java版本:" + javaVersion);
//
//getProperties():
Properties properties = System.getProperties();
properties.list(System.out); // 输出所有系统属性
Object类
Object类是Java所有类的根类,它定义了一系列基本方法,这些方法被所有的Java对象继承。以下是具体介绍:
toString():这个方法返回对象的字符串表示形式。通常用于提供关于对象的文本描述。在Object类中,toString()方法的默认实现返回一个由对象所属类的全限定名、'@'字符和对象哈希码的无符号十六进制表示组成的字符串。
equals():该方法用于比较两个对象是否相等。在Object类中,equals()方法的默认实现是比较两个对象的引用是否相同,即它们是否指向内存中的同一个位置。如果需要基于对象的内容而非引用进行比较,子类应该重写此方法。
hashCode():此方法返回对象的哈希码值,这是一个整数。在Java中,哈希码常用于散列数据结构,如Hashtable、HashMap等。虽然不同的对象可以具有相同的哈希码,但同一个对象的哈希码值在多次调用时必须保持一致。
getClass():此方法返回对象的运行时类的Class实例。这个Class实例可以用来获取类的元数据,如类名、包名、注解等。
代码展示
//toString():
public class Book implements Cloneable {
private String title;
private String author;
public Book(String title, String author) {
this.title = title;
this.author = author;
}
@Override
protected Book clone() throws CloneNotSupportedException {
return (Book) super.clone();
}
public static void main(String[] args) {
Book book1 = new Book("The Great Gatsby", "F. Scott Fitzgerald");
try {
Book book2 = book1.clone();
System.out.println(book2); // 输出: Book{title='The Great Gatsby', author='F. Scott Fitzgerald'}
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
//
//equals():
public class Student {
private String name;
private int id;
public Student(String name, int id) {
this.name = name;
this.id = id;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Student student = (Student) obj;
return id == student.id && Objects.equals(name, student.name);
}
public static void main(String[] args) {
Student s1 = new Student("Bob", 1001);
Student s2 = new Student("Bob", 1001);
Student s3 = new Student("Alice", 1002);
System.out.println(s1.equals(s2)); // 输出: true
System.out.println(s1.equals(s3)); // 输出: false
}
}
//
//hashCode():
public class Product {
private String name;
private double price;
public Product(String name, double price) {
this.name = name;
this.price = price;
}
@Override
public int hashCode() {
return Objects.hash(name, price);
}
public static void main(String[] args) {
Product p1 = new Product("Apple", 1.99);
Product p2 = new Product("Banana", 0.99);
Product p3 = new Product("Apple", 1.99);
System.out.println(p1.hashCode()); // 输出: 321236876(示例值)
System.out.println(p2.hashCode()); // 输出: 321236877(示例值)
System.out.println(p3.hashCode()); // 输出: 321236876(示例值)
}
}
//
//getClass():
public class Animal {
private String species;
private int age;
public Animal(String species, int age) {
this.species = species;
this.age = age;
}
public static void main(String[] args) {
Animal cat = new Animal("Cat", 3);
Class<?> animalClass = cat.getClass();
System.out.println(animalClass.getName()); // 输出: Animal
}
}
BigDecimal类
BigDecimal类是Java提供的一个用于精确计算的类,特别是在金融计算中经常使用,以避免浮点数计算中的精度损失问题。下面是关于该类的一些详细分析:
构造方法:BigDecimal提供了多种构造方法,包括以int、long、double、String等类型为参数的构造方法,以及静态的valueOf方法。其中,基于String的构造方法和valueOf(double)方法是推荐使用的,因为它们可以确保结果的准确性。
常用方法:BigDecimal类提供了add、subtract、multiply和divide等方法来进行加、减、乘、除运算。这些方法避免了直接使用算术运算符可能带来的精度问题,并允许指定舍入模式和精度。
比较大小:比较两个BigDecimal对象的大小应使用compareTo方法,而不是equals方法,因为equals方法还会比较两个对象的scale是否相等。
// 使用String构造方法
BigDecimal num1 = new BigDecimal("123.456");
// 使用valueOf方法
BigDecimal num2 = BigDecimal.valueOf(123.456);
Date类
Java中的Date类是java.util包中的一个类,它表示特定的瞬间,精确到毫秒。以下是一些常用的Date类方法:
Date()
: 构造一个 Date对象并初始化此对象为系统当前的日期和时间。
Date(long date)
: 分配 Date对象并初始化此对象,以表示自从"历元"(即1970年1月1日00:00:00 GMT)以来的指定毫秒数。
boolean after(Date when)
: 测试此日期是否在指定日期之后。
boolean before(Date when)
: 测试此日期是否在指定日期之前。
Object clone()
: 返回此对象的副本。
int compareTo(Date anotherDate)
: 比较两个日期的顺序。
boolean equals(Object obj)
: 比较两个日期的相等性。
long getTime()
: 返回自1970年1月1日0点0分0秒(GMT)以来此 Date对象表示的毫秒数。
void setTime(long time)
: 设置此 Date对象,以表示自从"历元"(即1970年1月1日00:00:00 GMT)以来的指定毫秒数。
String toString()
: 把 Date对象转换为字符串表示形式。