2024年150道高频Java面试题(三十一)

61. sleep() 和 wait() 有什么区别? sleep() 和 wait() 方法在Java中被广泛用于线程控制,它们都可以让线程暂停执行一段时间,但它们之间存在一些重要的区别: 所属类: sleep() 是 Thread 类的静态方法。wait() 是 Object 类的方法。 使用范围: sleep() 可以在任何地方使用,因为它属于 Thread 类。wait() 必须在同步上下文中调用,即必须在获取了对象锁的代...

2024年150道高频Java面试题(三十二)

63. 线程的 run() 和 start() 有什么区别? 在Java中,run()方法和start()方法是线程操作中的两个核心方法,它们来自于Thread类。 run()方法: run()方法是一个线程的实际执行代码所在的方法。它是一个由Runnable接口定义的抽象方法,因此任何实现Runnable接口的类都需要覆盖这个方法。当run()方法被调用时,它会在当前线程的上下文中执行(即,如果直接调用一个线程对象的run()方...

2024年150道高频Java面试题(二十九)

57. 守护线程是什么? 守护线程(Daemon Thread)是一种特殊类型的线程,它的主要作用是为其他线程提供服务,当程序中只剩下守护线程时,虚拟机(JVM)将会退出。这意味着守护线程的运行状态不会影响程序的持续性,它的主要目的是辅助主线程或用户线程执行任务。 在Java中,可以通过调用线程的setDaemon(true)方法将一个线程设置为守护线程。需要注意的是,这个操作必须在启动线程之前完成,一旦线程开始执行,就不能将其设...

2024年150道高频Java面试题(二十七)

53. 什么是 Java 中的死锁?如何避免? Java中的死锁是指两个或两个以上的线程因为竞争资源而造成的一种僵持状态,每个线程都在等待其他线程释放锁,但是这些锁又被其他线程持有,导致没有任何线程能继续执行下去,形成一种循环等待的局面。 死锁通常发生在以下四个条件同时满足时: 互斥条件:资源不能被多个线程共同使用,只能由一个线程独占。占有且等待条件:线程至少持有一个资源,并且正在等待获取额外的资源,而该资源又被其他线程持有。非抢...

2024年150道高频Java面试题(六)

11. Java 中的异常处理机制是如何工作的? Java 中的异常处理机制是一种用于处理程序执行期间发生的不正常情况的方法,这些情况可能是由于外部错误、API使用不当或内部错误逻辑等原因引起的。Java 的异常处理通过五个关键字来工作:try、catch、finally、throw 和 throws。 try 块:它用来包围可能会抛出异常的代码。如果在 try 块中的代码抛出了异常,则会立即跳过 try 块中剩余的代码,转去查找...

2024年150道高频Java面试题(四)

7. String 类的常用方法都有哪些? Java中的String类提供了丰富的方法用于字符串操作。以下是一些常用的方法: 长度和判空 int length(): 返回字符串的长度。boolean isEmpty(): 判断字符串是否为空。 获取字符 char charAt(int index): 获取指定索引处的字符。 比较 int compareTo(String anotherString): 按字典顺序比较两个字符串。b...

2024年150道高频Java面试题(一)

1. JDK 和 JRE 有什么区别? JDK(Java Development Kit)和JRE(Java Runtime Environment)是Java技术的两个核心组成部分,它们之间的主要区别如下: 功能定位: JDK:它是提供给Java开发者的软件开发工具包,包含了Java程序开发所需的各种工具,比如编译器(javac)、调试器(jdb)和其他工具(如javadoc、jar等)。JRE:它是运行Java程序所必需的运行...

2024年150道高频Java面试题(十四)

27. Files 的常用方法都有哪些? Java NIO(New IO)中的 Files 类提供了一系列静态方法来处理文件和目录。这些方法大大简化了对文件的操作,下面列举一些常用的方法: exists(Path path, LinkOption... options): 检查文件或目录是否存在。createFile(Path path, FileAttribute<?>... attrs): 创建一个新的空文件。createDi...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.003245(s)
2024-04-29 00:32:47 1714321967