A. wait() B. yield() C. sleep() D.Suspend()
答案:B. yield()
由于某种原因导致正在运行的线程让出CPU并暂停自己的执行,即进入堵塞状态。
wait() 使得线程进入阻塞状态,它有两种形式,一种允许 指定以毫秒为单位的一段时间作为参数;另一种没有参数,前者当对应的 notify() 被调用或者超出指定时间时线程重新进入可执行状态,后者则必须对应的 notify() 被调用。当调用wait()后,线程会释放掉它所占有的“锁标志”,从而使线程所在对象中的其它synchronized数据可被别的线程使用。
yield() 使得线程放弃当前分得的 CPU 时间,但是不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得 CPU 时间。
sleep()是线程类(Thread)的方法;它使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。
suspend()使得线程进入阻塞状态,并且不会自动恢复,必须其对应的resume() 被调用,才能使得线程重新进入可执行状态。
A. javac一次可编译数个Java源文件
B. javac.exe能确定编译结果置于哪个目录
C. 接口可以继承接口
D. 在编译程序时,所能指定的环境变量不包括class.path
答案:ABCD
javac可以编译多个文件,通过 “javac *.java"实现,前提是这些java文件都要在此编译路径下,如果不在的话,先通过cd命令进行位置切换即可。
java.exe能指定编译结果要置于directory。
接口可以继承接口,抽象类不可以继承接口,但可以实现接口。
在编译程序时,所能指定的环境变量不包括class.path。
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
A. 单个子系统的修改不影响其他子系统
B. 子系统类变化,只需修改外观类
C. 对客户端屏蔽子系统组件
D. 实现了子系统与客户端之间的紧耦合
答案:ABC
外观模式(Facade),亦称“过程模式”。是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。
优点:
(1)实现了子系统与客户端之间的松耦合关系。增加和删除子系统类只需要修改外观类即可
(2)客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。
(3)降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植过程,因此编译一个子系统不会影响其他子系统,也不会影响外观对象。
(4)子系统也不会影响外观系统。
适用场景:
(1)设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。
(2)开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
(3)维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。
缺点:
(1)不能很好地限制客户端使用子类系统。
(2)增加了新的子类系统可能需要修改外观类。
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包中的一部分,还有其他接口用于处理事务、批处理等。这些接口提供了灵活和可扩展的方式来与数据库进行交互,并且可以支持不同的数据库。