找到关于 Java 的2637 篇文章

如何在 Java 中检查程序使用的内存?

raja
更新于 2023年11月24日 11:29:24

2K+ 次查看

对于长时间运行的 Java 代码,如果大量使用动态内存,由于堆空间内存不足,最终可能会出现内存不足错误。在下面的程序中,我们可以测试程序使用的可用 Java 堆空间。如果堆空间使用率超过 90%,则显式调用垃圾收集器。System.gc() 调用会阻塞调用线程,直到垃圾收集器完成。因此,此代码可以在单独的线程中执行。示例 public class GCTest { public void runGC() { Runtime runtime ... 阅读更多

Java 中 SerialVersionUID 关键字的重要性?

raja
更新于 2020年7月2日 09:02:37

6K+ 次查看

SerialVersionUID SerialVersionUID 必须在 Java 中声明为私有静态最终长变量。此数字由编译器根据类的状态和类属性计算得出。这是 JVM 在从文件中读取对象状态时帮助识别对象状态的数字。SerialVersionUID 可用于反序列化期间验证序列化对象的发送方和接收方是否已加载与序列化相关的兼容类。如果反序列化对象与序列化对象不同,则可能会抛出 InvalidClassException。如果 serialVersionUID ... 阅读更多

在 Java 中调用垃圾收集器 (GC) 的方法有多少种?

raja
更新于 2020年7月2日 08:57:04

1K+ 次查看

Java 中的垃圾收集由称为垃圾收集器 (GC) 的守护线程执行。我们可以请求 JVM 运行垃圾收集器,而不是等到 JVM 运行垃圾收集器。JVM 是否接受我们的请求没有保证。在 Java 中,我们可以通过两种方式手动调用垃圾收集器:使用 System 类;使用 Runtime 类;使用 System 类System 类具有一个静态方法 gc(),用于请求 JVM 调用垃圾收集器。示例 public class SystemClassTest { public static void main(String[] args){ SystemClassTest test = new SystemClassTest(); ... 阅读更多

如何在 Java 中调用 invokeLater() 方法?

raja
更新于 2020年7月2日 08:12:57

3K+ 次查看

invokeLater() 方法是 SwingUtilities 类的静态方法,可用于在 AWT 事件调度线程中异步执行任务。SwingUtilities.invokeLater() 方法的工作方式类似于 SwingUtilities.invokeAndWait(),只是它将请求放入事件队列并立即返回。invokeLater() 方法不会等待 Runnable 对象引用的目标中的代码块执行。语法 public static void invokeLater(Runnable target) 示例 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class InvokeLaterTest extends Object { private static void print(String msg) { String name = Thread.currentThread().getName(); System.out.println(name + ": " + msg); } ... 阅读更多

Java 中 Thread.sleep() 方法有什么用?

raja
更新于 2023年11月27日 09:23:59

5K+ 次查看

sleep() 方法是 Thread 类的静态方法,它使线程休眠/停止工作一段时间。如果线程被其他线程中断,则 sleep() 方法会抛出 InterruptedException,这意味着 Thread.sleep() 方法必须包含在 try 和 catch 块中,或者必须使用 throws 子句指定。每当我们调用 Thread.sleep() 方法时,它都可以与线程调度器交互,将当前线程置于等待状态一段时间。等待时间结束后,线程从等待状态变为可运行状态。语法 public ... 阅读更多

Java 中 join() 方法的重要性?

raja
更新于 2023年11月27日 09:31:03

3K+ 次查看

join() 是 Thread 类的最终方法,可用于将线程执行的开始连接到另一个线程执行的结束,以便在另一个线程结束之前,一个线程不会开始运行。如果在线程实例上调用 join() 方法,则当前正在运行的线程将阻塞,直到线程实例执行完毕。语法 public final void join() throws InterruptedException 示例 public class JoinTest extends Thread { public void run() { for(int i=1; i

在 Java 中覆盖 finalize() 方法的目的是什么?

raja
更新于 2020年7月2日 07:25:16

1K+ 次查看

finalize() 方法是 Object 类的预定义方法,它是受保护的。可以覆盖 finalize() 方法的目的,以便为对象包含清理代码或在垃圾收集对象之前处置系统资源。如果我们覆盖 finalize() 方法,那么我们有责任显式调用 finalize() 方法。JVM 或任何给定对象只能调用一次 finalize() 方法。语法 protected void finalize() throws Throwable 示例 public class FinalizeMethodTest { protected void finalize() throws Throwable { try { System.out.println("Calling finalize() method ... 阅读更多

如何在 Java 中为 JButton 实现翻转效果?

raja
更新于 2020年7月2日 07:04:18

1K+ 次查看

JButton 是 AbstractButton 的子类,可用于向 GUI 应用程序添加与平台无关的按钮。当按下或单击按钮时,JButton 可以生成 ActionListener 接口,它还可以生成 MouseListener 和 KeyListener 接口。我们可以通过覆盖 MouseListener 接口的 mouseEntered() 方法来实现鼠标移到 JButton 上时的翻转效果。语法 void mouseEntered(MouseEvent e) 示例 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class RollOverButtonTest extends JFrame { private JButton button; public RollOverButtonTest() { setTitle("RollOverButton Test"); button = new JButton("Rollover Button"); button.addMouseListener(new MouseAdapter() { ... 阅读更多

如何在 Java 中避免死锁?

raja
更新于 2023年11月24日 10:33:17

5K+ 次查看

在 Java 中,死锁是指两个或多个线程永远阻塞的编程情况。死锁条件将至少包含两个线程和两个或多个资源。如何避免死锁避免嵌套锁 - 死锁主要发生在我们将锁赋予多个线程时。如果我们已经为一个线程赋予了锁,则避免为多个线程赋予锁。避免不必要的锁 - 我们只能为那些需要的成员设置锁。不必要地设置锁可能会导致死锁。使用 Thread.join() - 当一个线程等待另一个线程完成时,会出现死锁条件。如果 ... 阅读更多

Java 中 yield() 方法的重要性?

raja
更新于 2023年11月24日 10:37:40

12K+ 次查看

yield() 方法是 Thread 类的静态方法,它可以停止当前正在执行的线程,并给相同优先级的其他等待线程一个执行的机会。如果没有任何等待线程,或者所有等待线程的优先级都较低,则当前线程将继续执行。yield() 方法的优点是能够让其他等待线程有机会执行,从而在当前线程占用较多时间的情况下,将处理器资源分配给其他线程。语法:public static void yield() 示例:class MyThread extends Thread { public void run() { ... 阅读更多

广告