当前位置: 首页 > 图灵资讯 > 技术篇> 汇总10道Java基础类库面试题及答案

汇总10道Java基础类库面试题及答案

来源:图灵教育
时间:2023-04-06 14:49:45

  作为一名java语言的学习者,我们能感觉到java语言的优点,平台无关性、面向对象性、多线程性等,此外,还有许多已实现的类库供我们直接使用。这些类库都是为了jar包的形式也可以成为java API,所以今天整理总结了一下10道java基础类库面试题及答案,包含为编程者实现各种常用的操作方法,这些库类为程序员编写java程序代码带来了很多便利。

  1.java有多少类型的流?JDK为每种类型的流量提供了一些抽象的类别来继承,请告诉我们它们是什么类别?

  答:字节流,字符流。字节流继承于InputStream OutputStream,字符流继承Reader Writer。在java.io包还有很多其他的流,低层流和调层流,主要是为了提高性能和使用方便。

  2、用run()或start()启动一个线程

  答:启动一个线程就是调用start()方法,启动线程并调用run方法。

  3、线程的基本概念、线程的基本状态和状态之间的关系是什么?

  答:线程在过程中并发,没有自己的内存空间,共享过程,线程间的通信成本较低。Java中的线程有四种状态:运行、就绪、悬挂和结束。

  4、java多线程实现方法有几种,都是什么?同步有几种实现方法,都是什么? stop()为什么不推荐suspend()方法?

  答:实现多线程有两种方法,即继承实现Runnable接口的Thread类。

  实现同步有两个方面,即synchronized,wait与notify。

  反对使用stop(),因为它不安全。如果对象处于不连贯状态,则可以在这种状态下检查和修改其他线程。真正的问题很难在结果中找到。suspend()死锁容易发生在方法上。当调用suspend()时,目标线程会停止,但在此之前仍然持有锁定。此时,除非被锁定的资源被访问,否则任何其他线程都无法访问"挂起"线程恢复运行。对于任何线程,如果他们想要恢复目标线程并试图使用任何锁定资源,就会导致死锁。因此,不应使用suspend(),而应在自己的thread类别中放置一个标志,指出线程应该移动或悬挂。如果标志指出线程应悬挂,则使用wait()命令其进入等待状态。如果标志指出线程应恢复,则使用notify()重新启动线程。

  5、同步和异步有异同,在什么情况下分别使用?举个例子。

  答:同步:上一段代码没有完成,下一段必须等到上一段代码完成后才能执行。比如买票排队

  异步:上一段代码没有完成,下一段不需要等到上一段代码完成。比如手机发短信。

  6、线程同步的方法是什么?

  答:Hashtable中的put,get,remove,Vector的相关方法。

  7、目录下的所有文件如何列出?

  答:代码如下:Import java.io.File; File f=new File("C:\\"); File[] f1=f.listFiles(); for(int i=0;i

  8、sleep() 和 wait() 有什么区别?

  答:Sleep是指休眠给定的时间,当时间到达时,线程会再次醒来。

  Wait处于等待状态,不清楚需要多长时间,另一个线程会唤醒它。

  9、当一个线程进入对象的synchronized方法时,其他线程可以进入对象的其他方法吗?

  答:如果只有其他方法是同步法,则不能进入。如果没有,可以进入。

  10、Java集合框架是什么?说一些集合框架的优点?

  答:每种编程语言都有集合,最初的Java版本包括几种集合类:Vector、Stack、Hashtable和Array。Java11随着集合的广泛应用.提出了包含所有集合接口、实现和算法的集合框架。Java长期以来一直使用泛型和并发集合类,以确保线程安全。它还包括Java并发包、堵塞接口及其实现。集合框架的部分优点如下:

  (1)使用核心集合类来降低开发成本,而不是实现自己的集合类。

  (2)代码质量会随着使用经过严格测试的集合框架而提高。

  (3)代码维护成本可以通过使用JDK附带的集合类来降低。

  (4)复用性和可操作性。

  以上的10个问题是今天为大家整理总结的Java基础类库的面试题,比较基础,刚接触java的java零基础小白也适合学习10道面试题。所以无论是java程序员还是java初学者,熟练掌握和应用java基础类库非常必要。希望大家都能把以上都做好。学习java基础类库的面试题,以后顺利通过面试。