• Java笔试题


    不定项选择!!
    1. Java多线程方法中,哪个不会使线程进入阻塞?

    A. wait()  B. yield() C. sleep()  D.Suspend()

    答案:B. yield()

    由于某种原因导致正在运行的线程让出CPU并暂停自己的执行,即进入堵塞状态。

    wait() 使得线程进入阻塞状态,它有两种形式,一种允许 指定以毫秒为单位的一段时间作为参数;另一种没有参数,前者当对应的 notify() 被调用或者超出指定时间时线程重新进入可执行状态,后者则必须对应的 notify() 被调用。当调用wait()后,线程会释放掉它所占有的“锁标志”,从而使线程所在对象中的其它synchronized数据可被别的线程使用。

    yield() 使得线程放弃当前分得的 CPU 时间,但是不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得 CPU 时间。 

    sleep()是线程类(Thread)的方法;它使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。

    suspend()使得线程进入阻塞状态,并且不会自动恢复,必须其对应的resume() 被调用,才能使得线程重新进入可执行状态。

    2 . 以下内容正确的是?

     A.  javac一次可编译数个Java源文件

     B.  javac.exe能确定编译结果置于哪个目录

     C. 接口可以继承接口

     D. 在编译程序时,所能指定的环境变量不包括class.path

    答案:ABCD

    javac可以编译多个文件,通过 “javac *.java"实现,前提是这些java文件都要在此编译路径下,如果不在的话,先通过cd命令进行位置切换即可。

    java.exe能指定编译结果要置于directory。

    接口可以继承接口,抽象类不可以继承接口,但可以实现接口。

    在编译程序时,所能指定的环境变量不包括class.path。

    3. 以下哪个不是Collection的子接口?

    A. SortedSet  B. Map  C. List  D. Set

    答案:AB

    SortSet继承Set接口,保存有序集合

    List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。

    Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。

    Map,请注意,Map没有继承Collection接口,是Collection的实现类Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。

    Collection 接口有两个重要的子接口 List 和 Set,它们的实现子类都是单列集合

     Map 接口的实现子类,是双列集合,存放的 K-V

     4. 哪个是外观模式的特点?

    A. 单个子系统的修改不影响其他子系统

    B. 子系统类变化,只需修改外观类

    C. 对客户端屏蔽子系统组件

    D. 实现了子系统与客户端之间的紧耦合

    答案:ABC

    外观模式(Facade),亦称“过程模式”。是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。

    优点:

    (1)实现了子系统与客户端之间的松耦合关系。增加和删除子系统类只需要修改外观类即可

    (2)客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。

    (3)降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植过程,因此编译一个子系统不会影响其他子系统,也不会影响外观对象。

    (4)子系统也不会影响外观系统。

    适用场景:

    (1)设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。

    (2)开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。

    (3)维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。

    缺点:

    (1)不能很好地限制客户端使用子类系统。
    (2)增加了新的子类系统可能需要修改外观类。

    5. 下列属于Java.sql中的接口的是?

    A. PreparedStaABCment  B. DBSession  C. ResultSet  D. Connection

     答案:CD

    ResultSet接口:用于表示从数据库返回的结果集。可以通过executeQuery()方法执行查询语句并返回ResultSet对象,然后可以使用next()方法逐行遍历结果集,使用getXXX()方法获取列的值。

    Connection接口:用于表示与数据库的连接。可以使用getConnection()方法获取Connection对象,还可以设置连接的属性和管理连接。

     Java.sql中的接口还包括:

    Statement接口:用于发送静态SQL语句给数据库。它是执行SQL语句的主要接口,通过execute()方法执行SQL语句,还可以使用executeQuery()执行查询语句,executeUpdate()方法执行更新语句。

    PreparedStatement接口继承自Statement接口,用于向预编译的SQL语句中填充参数。使用prepareStatement()方法获取PreparedStatement对象,然后使用setXXX()方法为参数赋值,最后执行SQL语句。

    CallableStatement接口:继承自PreparedStatement接口,用于调用存储过程。可以通过prepareCall()方法获取CallableStatement对象,然后设置调用存储过程的参数,最后执行存储过程。

    ResultSetMetaData接口:用于获取结果集的元数据。可以使用getMetaData()方法获取ResultSetMetaData对象,然后可以获取结果集的列数、列名和列类型等信息。

    DatabaseMetaData接口:用于获取数据库的元数据。可以使用getMetaData()方法获取DatabaseMetaData对象,然后可以获取数据库的驱动程序名称、数据库版本和支持的特性等信息。

    上述接口仅为java.sql包中的一部分,还有其他接口用于处理事务、批处理等。这些接口提供了灵活和可扩展的方式来与数据库进行交互,并且可以支持不同的数据库。

  • 相关阅读:
    2023年最新一面二面通关王炸java八股文面试题--持续更新
    webpack初体验
    「Python编程基础」第2章:小试牛刀
    微服务框架 SpringCloud微服务架构 21 RestClient 操作文档 21.5 批量导入文档
    【Azure Function App】Python Function调用Powershell脚本在Azure上执行失败的案例
    Visual Studio Code编辑器设置字号和行间距详细步骤
    商城秒杀系统总结(Java)
    Python的configparser读写配置文件
    WinDBG详解进程初始化dll是如何加载的
    QT+OSG/osgEarth编译之三十八:gdal+Qt编译(一套代码、一套框架,跨平台编译,版本:gdal-3.6.0)
  • 原文地址:https://blog.csdn.net/qq_59681858/article/details/133196069