Java中常用函数的详细解释和示例
1. toString()
函数toString()用于将对象的字符串表示形式返回。它通常用来打印或记录对象。
示例:
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public static void main(String[] args) {
Student student = new Student("Amy", 20);
System.out.println(student.toString());
}
}
输出结果为: Student{name='Amy', age=20}
2. equals()
函数equals()用于比较对象的内容是否相等。它通常用于比较基本类型的字段或可比较的对象。
示例:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}
public static void main(String[] args) {
Person person1 = new Person("Amy", 20);
Person person2 = new Person("Amy", 20);
System.out.println(person1.equals(person2));
}
}
输出结果为: true
3. hashCode()
函数hashCode()返回对象的哈希码,用于将对象快速存储和查找。
示例:
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
public static void main(String[] args) {
Student student = new Student("Amy", 20);
System.out.println(student.hashCode());
}
}
输出结果为: 697682542
4. getClass()
函数getClass()返回对象的类。
示例:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public static void main(String[] args) {
Person person = new Person("Amy", 20);
System.out.println(person.getClass().getName());
}
}
输出结果为: Person
5. wait()
函数wait()使当前线程等待,直到其他线程调用notify()或notifyAll()方法。
示例:
public class WaitNotifyExample {
public static void main(String[] args) {
Object lock = new Object();
new Thread(() -> {
System.out.println("Thread 1 waiting...");
synchronized (lock) {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("Thread 1 notified.");
}).start();
new Thread(() -> {
System.out.println("Thread 2 starting...");
synchronized (lock) {
lock.notify();
}
}).start();
}
}
输出结果为: Thread 1 waiting...
Thread 2 starting...
Thread 1 notified.
6. notify()
函数notify()唤醒正在等待的线程。
示例:
public class WaitNotifyExample {
public static void main(String[] args) {
Object lock = new Object();
new Thread(() -> {
System.out.println("Thread 1 waiting...");
synchronized (lock) {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("Thread 1 notified.");
}).start();
new Thread(() -> {
System.out.println("Thread 2 starting...");
synchronized (lock) {
lock.notify();
}
}).start();
}
}
输出结果为: Thread 1 waiting...
Thread 2 starting...
Thread 1 notified.
7. Arrays.toString()
函数Arrays.toString()将数组转换为字符串,用于打印或记录数组。
示例:
public class ArrayExample {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(array));
}
}
输出结果为: [1, 2, 3, 4, 5]
8. System.arraycopy()
函数System.arraycopy()将源数组的一部分复制到目标数组的指定位置。
示例:
public class ArrayExample {
public static void main(String[] args) {
int[] source = {1, 2, 3, 4, 5};
int[] target = {6, 7, 8, 9, 10};
System.arraycopy(source, 1, target, 2, 3);
System.out.println(Arrays.toString(target));
}
}
输出结果为: [6, 7, 2, 3, 4]
9. String.valueOf()
函数String.valueOf()将不同类型的值转换为字符串。
示例:
public class StringExample {
public static void main(String[] args) {
int a = 100;
double b = 3.14;
boolean c = true;
String result = String.valueOf(a) + " " + String.valueOf(b) + " " + String.valueOf(c);
System.out.println(result);
}
}
输出结果为: 100 3.14 true
10. Integer.parseInt()
函数Integer.parseInt()将字符串转换为整数。
示例:
public class StringExample {
public static void main(String[] args) {
String number = "12345";
int result = Integer.parseInt(number);
System.out.println(result);
}
}
输出结果为: 12345
