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包中的一部分,还有其他接口用于处理事务、批处理等。这些接口提供了灵活和可扩展的方式来与数据库进行交互,并且可以支持不同的数据库。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值