Java 面试经典 04--Spring、Hibernate

spring:依赖注入,事务管理,JDBC数据访问,spring中使用hibernate试题
选择
使用下面的Connection的哪个方法可以建立一个PreparedStatement接口( )
A、 createPrepareStatement()
B、 prepareStatement()
C、 createPreparedStatement()
D、 preparedStatement()
考点: 考察JDBC的api (B)

在Jdbc中可以调用数据库的存储过程的接口是( )
A、 Statement
B、 PreparedStatement
C、 CallableStatement
D、 PrepareStatement 考点:考察JDBC的api (C)

下面的描述正确的是( )
A、 PreparedStatement继承自Statement
B、 Statement继承自PreparedStatement
C、 ResultSet继承自Statement
D、 CallableStatement继承自PreparedStatement
考点:考察JDBC的api (A)

下面的描述错误的是( )
A 、Statement的executeQuery()方法会返回一个结果集
B、 Statement的executeUpdate()方法会返回是否更新成功的boolean值
C、使用ResultSet中的getString()可以获得一个对应于数据库中char类型的值
D、 ResultSet中的next()方法会使结果集中的下一行成为当前行
考点:返回更新记录的id (B)

如果数据库中某个字段为numberic型,可以通过结果集中的哪个方法获取( )
A、 getNumberic()
B、 getDouble()
C、 setNumberic()
D、 setDouble()
考点:numberic是一种固定精度的浮点数 (B)

在Jdbc中使用事务,想要回滚事务事务的方法是( )
A、 Connection的commit()
B、 Connection的setAutoCommit()
C、 Connection的rollback()
D、 Connection的close()
考点:考察jdbc中的事务管理 (C)
关于Class.forName()的作用,下列描述不正确的是:
A、Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的驱动器类。
B、Class.forName(xxx.xx.xx);会查找并加载指定的类,并创建驱动器实例。
C、Class.forName(xxx.xx.xx);会创建驱动器类实例,并注册在DriverManager上。
D、当Class.forName找不到驱动器类时,会抛出DriverClassNotFoundException。
考点:考察jdbc中驱动器类的加载 (D)

在java.sql包中,关于Statement和PreparedStatement的区别,描述正确的是:
A、Statement负责查询,PreparedStatement负责更新和删除。
B、Statement在删除数据时效率更高,PreparedStatement是预编译的,对于批量处理可以大大提高效率。
C、Statement每次执行一个SQL命令时,都会对它进行解析和编译,
PreparedStatement执行同一个SQL命令N次,都只对它解析和编译一次。
D、当同一条SQL命令需要执行多次时用Statement,当需执行一次时用
PreparedStatement,可以提高效率。
考点:考察jdbc中Statement和PreparedStatement的特点 (C)

下列连接各种数据库的驱动器名和对应的URL的写法不正确的是:
A、“com.mysql.jdbc.Driver”,“jdbc:mysql://localhost:3306/DatabaseName”
B、“oracle.jdbc.driver.OracleDriver”,“jdbc:oracle:thin:@localhost:1521:DatabaseName”
C、“com.microsoft.jdbc.sqlserver.SQLServerDriver”,
“jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=DatabaseName”
D、“sun.jdbc.odbc.JdbcOdbcDriver”,“odbc:jdbc:DatabaseName”
考点:考察jdbc中连接多个数据库的Dirver和URL (D)
关于Spring的说法错误的是:
A、Spring是一个轻量级JAVA EE的框架集合。
B、Spring包含一个“依赖注入”模式的实现。
C、使用Spring可以实现声明事务。
D、和EJb容器一样,是一个“全有全无”的解决方案。
考点:考察对spring的了解 (D)

关于AOP描述错误的是:
A、AOP将散落在系统中的“方面”代码集中实现。
B、AOP有助于提高系统可维护性。
C、AOP已经表现出将要替代面向对象的趋势。
D、AOP是一种设计模式,Spring提供了一种实现。
考点:考察AOP的概念 (C)

某业务方法taskApply(User user, List tasks)需要对其进行事务控制,下面的声明方式不能起到效果的是() A、将查询方法声明为只读事务,其他方法声明为REQUIRED B、声明do开头的方法为REQUIRED,并修改方法名为doTaskApply C、<tx:method name="*Apply" propagation="REQUIRED" /> D、事务的propagation属性声明为SUPPORTS
考点:考察Spring的事务控制 (D)

关于Spring配置数据连接池的描述,错误的是?
A、spring可以用org.apache.commons.dbcp.BasicDataSource类配置数据源。
B、在org.apache.commons.dbcp.BasicDataSource类中有driver,url,username,password属性。
C、在用dbcp时,需要拷贝commons-dbcp的jar包到类路径下。
D、配置spring数据源时,必须引入Hibernate的SessionFactory。
考点:考察Spring的数据连接池的配置 (D)

下列关于Spring的配置文件说法不正确的是:
A、Spring默认是读取/WEB-INF/applicationContext.xml配置文件。
B、Spring的配置文件可以配置在类路径下,并可以重命名,但是需要在web.xml中指 定。
C、把applicationContext.xml文件放到src下,Spring也可以读到。
D、可以通过在web.xml中的<context-param><param-name>和<param-value>进行指定 spring的配置文件。
考点:考察Spring配置文件 (C)

下列关于Spring与Hibernate的集成,说法错误的是:
A、Spring与Hibernate的集成后,Hibernate的SessionFactory可以让Spring进行管理。
B、Hibernate中的配置文件也可以移到Spring的配置文件中配置。
C、使用Spring的事务管理,会认Hibernate事务处理变得简单。
D、Hibernate的映射文件的路路径(如com/ufinity/project/model/User.hbm.xml),不能在Spring中定义。
考点:考察Spring与Hibernate的集成 (D)

关于Spring的事务的说明错误的是:
A、PROPAGATION_REQUIRED–支持当前事务,如果当前没有事务,就新建一个事务。
B、PROPAGATION_SUPPORTS–支持当前事务,如果当前没有事务,就以非事务方式执行。
C、PROPAGATION_MANDATORY–支持当前事务,如果当前没有事务,就抛出异常。
D、PROPAGATION_NOT_SUPPORTED以非事务方式执行操作,如果当前存在事务,则抛出异常。
考点:考察事务的传播特性(D)

关于Spring的装配模式(default-autowire)描述不正确的是:
A、Spring中,至少有两种装配模式,按“类型”和“名字”。
B、Spring中默认是按名字进行装配。
C、可以用default-autowire="byType"配置按类型装配。
D、一旦在一个Spring的配置文件中配置了default-autowire="byType",其它的配置文件也是按此种装配方式。
考点:考察Spring的装配方式(D)

下面关于Spring中的bean的作用域,描述错误的是:
A、Spring中的bean的作用域可以通过scope属性进行配置。
B、Spring中的bean的作用域默认是"prototype"。
C、当一个bean的scope设为"singleton"时,可以被多个线程同时访问。
D、一个bean的scope只对它自己起作用,与其它bean无关。
考点:考察Spring中的bean的作用域(B)

填空题
用Jdbc编程时,在程序结束之前,要对数据库连接进行____,最好在____语句块中。
考点:考察jdbc的连接的关闭 (关闭,finally)
Spring与Hibernate的集成后,在Hibernate“dao”层的实现类中,一般要继承______________类,便于获取SessionFactory,Session,HibernateTemplate。
考点:考察Spring对Hibernate的支持 (HibernateDaoSupport)
在Spring中,要想对一个类的属性"String name"进行注入值,该类必须提供_________方法。
考点:考察Spring基础 (setName 或 setName(String name))


Tomcat安装配置使用试题
一、选择
对apache-tomcat-6.0.24.zip解压后,描述不正确的是:
A、tomcat下包括lib、temp、webapps、bin、conf、work、logs目录。
B、conf目录是存放tomcat配置文件的。
C、bin目录是存放tomcat和发布的web应用编译后的classes文件。
D、webapps目录存放的是发布的web应用,如果是以war形式包发布,tomcat在启动 时会自动解压。
考点:考察tomcat的目录结构 (C)

要修改tomcat的HTTP/1.1通信端口号,修改哪个文件的哪个标签的属性:
A、在conf目录下的web.xml文件中的Connector标签的port属性且protocol="HTTP/1.1"。
B、在conf目录下的context.xml文件中的Connector标签的port属性且protocol="HTTP/1.1"。
C、在WEB-INF目录下的server.xml文件中的Connector标签的port属性且protocol="HTTP/1.1"。
D、在conf目录下的server.xml文件中的Connector标签的port属性且protocol="HTTP/1.1"。
考点:考察tomcat的通信端口的配置 (D)

对apache-tomcat-6.0.24.zip解压2份,分别命名为tomcat1,tomcat2,要想同时启动tomcat1,tomcat2应做怎样的修改:(jdk已安装并配置好):
A、不需要修改,直接就可以同时启动。
B、只需要修改其中一个tomcat的HTTP/1.1的端口号,使不被占用。
C、修改其中一个tomcat的HTTP/1.1和AJP/1.3的端口号,使不被占用。
D、修改其中一个tomcat的HTTP/1.1和tomcat关闭的端口号,使不被占用。
考点:考察tomcat的通信端口的配置 (D)

在启动tomcat时出现以下问题,可能的原因是:
严重: Catalina.start
LifecycleException: Protocol handler initialization failed: java.net.BindExcept
ion: Address already in use: JVM_Bind <null>:8888
at org.apache.catalina.connector.Connector.initialize(Connector.java:1009)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:677)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795)
at org.apache.catalina.startup.Catalina.load(Catalina.java:540)
at org.apache.catalina.startup.Catalina.load(Catalina.java:560)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
A、jdk没有配置好。
B、另外一个tomcat已启动,占用了HTTP/1.1的8888端口。
C、网线没插好或计算机中毒了。
D、另外一个tomcat已启动,占用了关闭tomcat的8888端口。
考点:考察对tomcat的错误处理(端口号被占用的情况) (B)

在启动tomcat时,发现HTTP/1.1通信端口已被占用,你会怎样做?(选最佳考点)
A、不停的修改tomcat的HTTP/1.1通信端口,直到不被占用为止。
B、关闭其他的应用程序,使tomcat的HTTP/1.1通信端口不被占用。
C、重新部署应用程序。
D、查找系统里那些端口号正在使用,把tomcat的HTTP/1.1通信端口改为空闲的应用程序端口。
考点:考察对tomcat的错误处理的方法(思路)(端口号被占用的情况) (D)

对配置tomcat处理请求的连接数的描述不正确的是:
A、是在%Tomcat_home%/conf/web.xml文件的Connector标签中配置的。
B、其中minprocessors为最小连接数;maxprocessors为最大连接数;
C、合理的配置tomcat的请求的连接数,可以使tomcat处理更多的请求。
D、其中acceptcount为允许最大连接数;connectiontimeout为网络连接超时时间毫秒数。
考点:考察对tomcat连接数的配置 (A)

对设置session失效的时间的描述不正确的是:
A、是在%Tomcat_home%/conf/web.xml文件的session-config标签中配置的。
B、tomcat中session的实效时间默认是30分钟。
C、session的实效时间的配置单位是毫秒,而不是分钟。
D、对于购物网站来讲,把session的实效时间设置少一点,可以降低服务器的负载,
因为大多数人只是逛逛,购物的人不多。
考点:考察session失效时间的配置 (C)

对于设置tomcat的默认访问页面的方法,不正确的是:
A、可以在%Tomcat_home%\conf\web.xml文件中设置。
B、是通过<welcome-file-list><welcome-file>标签设置的。
C、可以一次配置多个默认访问页面。
D、当在一个具体的应用中的WEB-INF/web.xml中配置了默认访问页面,在%Tomcat_home%\conf\web.xml文件中配置的就失效了。
考点:考察配置tomcat的默认访问页面 (D)

二、填空题
1、对apache-tomcat-6.0.24.zip解压后,HTTP/1.1的通信端口号是:_____,AJP/1.3的通信端口号是:________,tomcat监听关闭的端口号是:________.
考点:考察是否知道tomcat常用端口 (8080 8009 8005)
2、tomcat的数据源是在%tomcat_home%\conf\_________文件的________标签里配置.
考点:考察tomcat的数据源的配置位置
(server.xml Host 或 context.xml Context)


常用类库,常用集合,注释类,多线程,反射试题
一、选择
下面哪个是Runnable接口中的抽象方法。

start B. stop C. yield D. run
考点:考察线程类的API(D)

下列说法正确的是。
A. Set里的元素是可重复的,且是无顺序的。
B. List里的元素是不可重复的,且是有顺序的。
C. Set,List都继承自Collections,而Map不是。
D.Collection中有一个toArray方法,可以把Collection转换成数组.
考点:考察常用集合的特点(D)

运行下面程序输出结果是:
public static void main(String[] a) throws Exception
{
Class clazz = ArrayList.class;
Method method = clazz.getMethod("isEmpty", new Class[] {});
Object result = method.invoke(clazz.newInstance(), new Object[] {});
System.out.println(result);
}
A.运行时出错。
B.null。
C.true。
D.false。
考点:考察反射中方法调用(C)

运行下面程序段输出的结果是:
StringBuffer sb = new StringBuffer("abc");
sb.append("defg");
sb.insert(3, "---");
sb.reverse();
sb.setLength(8);
System.out.println(sb);

abc---defg
gfed---cba
gfed---c
c---defg
考点:考察StringBuffer的使用(C)

下面哪一项不是Calendar中的常量:
A.DATE
B.MONTH_OF_YEAR
C.DAY_OF_MONTH
D.HOUR_OF_DAY
考点:考察Calendar的使用(B)


下面哪一项是线程安全的:
A.Vector
B.Stack
C.HashMap
D.HashSet
考点:考察常用集合(A)


运行下面程序段输出的结果是:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@interface TestA {
public String description() default "no description";
}
public class TestAnnotation
{
@TestA(description = "hello")
public void method()
{
}
public static void main(String[] args)
{
Method[] methods = TestAnnotation.class.getDeclaredMethods();
for (Method method : methods)
{
boolean hasAnnotation = method.isAnnotationPresent(TestA.class);
if (hasAnnotation)
{
TestA annotation = method.getAnnotation(TestA.class);
System.out.println(annotation.description());
}
}
}
}
A.hello
B.no description
C.""
D.NULL
考点:考察注释类(注解) (A)


二、填空题
用________关键字修饰方法,可以使此方法同步。
考点:考察线程同步(synchronized)

写出java.util包下常用的集合(Connection)的接口和类(各5个)
考点:考察常用集合
接口:Set,Map,List,Connection,Iterator,Queue
类:ArrayList,LinkList,HashSet,HashMap,TreeMap,Vector,Stack
三、上机题(多线程)
1、用JAVA写一个多线程程序,如写四个线程,其中二个线程对一个变量value加1,另外二个线程对变量value减1,并输出结果。
考点:考察线程的应用能力

public class AddMinusThread
{
private static int value;
public static void main(String[] args)
{
AddMinusThread addMinusThread = new AddMinusThread();
for (int i = 0; i < 2; i++)
{
Thread addThread = new Thread(addMinusThread.new AddThread());
Thread minusThread = new Thread(addMinusThread.new MinusThread());

addThread.start();
minusThread.start();
}
}

class AddThread implements Runnable
{
@Override
public void run()
{
for (int i = 0; i < 5; i++)
{
inc();
sleep(1000);
}
}
}

class MinusThread implements Runnable
{
@Override
public void run()
{
for (int i = 0; i < 5; i++)
{
dec();
sleep(2000);
}
}
}

private synchronized void inc()
{
++value;
System.out.println(Thread.currentThread().getName() + "-inc:" + value);
}

private synchronized void dec()
{
--value;
System.out.println(Thread.currentThread().getName() + "-dec:" + value);
}

private void sleep(int millisecond)
{
try
{
Thread.sleep(millisecond);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}


Linux常用命令试题
一、选择题
1、 如果想以长格式显示文件,该使用什么命令?
a. ls b. ls –a
c. ls –l d. ls –e
考点:考察查看文件详情(C)

2、 下面哪个命令可以实现文件名的更改?
a. cp b. rm
c. mv d. ln
考点:考察文件操作(C)

3、文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是 ( )。
A chmod a+x g+w exer1 B chmod 765 exer1
C chmod o+x exer1 D chmod g+w exer1
考点:考察文件权限(A)

4、 下面哪个命令是用来查看文件/etc/fstab的具体内容?
a. cat /etc/fsab b. file /etc/fstab
c. vi /etc/fstab d. which /etc/fstab
考点:考察文件操作(A)

5、_____键能中止当前运行的命令。
a. Ctrl-D b. Ctrl-C
c. Ctrl-B d. Ctrl-F
考点:考察Linux使用技巧(B)

6、 下面哪些对命令rm –Rf /root/test/txt的描述是正确的?(多选)
a.它的目的是移动一个文件 b.它会提示用户
c.它的目的是删除一个文件 d.参数R表示删除或移动递归目录
考点:考察rm命令及参数的使用(CD)
7、在Linux下面查看网卡的命令是:( )
A.enable B.disable C.netconfig D.ifconfig
考点:考察Linux网络(D)
8、 以下哪几个命令可以删除空目录/home/user1?(多项选择)
a. rmdir /home/user1 b. cp -p /home/user1 /home/user2
c. rm –R /home/user1 d. mv /home.user1
考点:考察目录删除命令(AC)
9、 以下哪几个命令可以把文件/root/test.txt的权限从-rw-rw-r--更改为-rw-r--r--(多项选择)
a. chmod g-w /root/test.txt
b. chmod o-rw,g-r /root/test.txt
c. chmod o-rw /root/test.txt
d. chmod 644 /root/test.txt
考点:考察文件权限(AD)
10、如何从当前系统中卸载一个已装载的文件系统( )
A. umount B. dismount C. mount –u D. 从 /etc/fstab 中删除这个文件系统项
考点:考察Linux中的文件卸载(A)

二、上机题
在系统/tmp/目录下创建文件夹,名为“newDir”。
在“newDir”目录中,创建一文件,名为“newFile.txt”。
编辑“newFile.txt”文件,添加内容:“Hello Ufinity!”,然后保存,退出。
进入到/tmp/目录中,压缩“newDir”目录为“newDir.tar.gz”。
移动“newDir.tar.gz”文件到“newDir”目录中。
(最后的目录结构为:)
考点:考察基本命令的使用,如创建、移动目录、文件,vi的使用,压缩命令。
上机题考点:
1. mkdir /tmp/newDir
2.touch /tmp/newDir/newFile.txt
3. vi /tmp/newDir/newFile.txt
输入:Hello Ufinity!
4.cd /tmp
tar -cvfz newDir.tar.gz newDir
5. mv newDir.tar.gz newDir


1、关于URL,URI,URN描述错误的是:
A、
B、
C、
D、
考点:考察 ()。


2010年8月12日星期四

Java题
关于URL,URI,URN描述错误的是:
A、URI(Uniform Resource Identifier)如:http://www.ufinity.com.cn,URI有绝对和相对之分。
B、URL(Uniform Resource Locator)如:http://localhost:8080/tomcat/index.jsp,主要用在Internet上。
C、URN(Uniform Resource Name),URL的一种更新形式,不依赖于位置,并且有可能减少失效连接的个数。
D、URI,URN是URL的子集。
考点:考察对java中地址的了解 (D)。

2.执行下面的代码,将打印:
public static void main(String[] args) throws Exception
{
URI uri = new URI("http://localhost:8080/test/index.jsp?a=1");
System.out.println("Host = " + uri.getHost());
System.out.println("Path = " + uri.getPath());
System.out.println("Port = " + uri.getPort());
System.out.println("Query = " + uri.getQuery());
System.out.println("Scheme = " + uri.getScheme());
}
A、
Host = localhost
Path = /test/index.jsp
Port = 8080
Query = a=1
Scheme = http
B、
Host = localhost:8080
Path = /test/index.jsp
Port = 8080
Query = a=1
Scheme = http
C、
Host = localhost
Path = /test/index.jsp?a=1
Port = 8080
Query = a=1
Scheme = http
D、
Host = localhost
Path = /test/index.jsp
Port = 8080
Query = a=1
Scheme = http://
考点:考察java.net.URI中的方法 (A)。


3.执行下面的代码,将打印:
public static void main(String[] args) throws IOException
{
URL url = new URL("http://news.baidu.com/ns?from=news");
System.out.println("Authority = " + url.getAuthority());
System.out.println("Default port = " + url.getDefaultPort());
System.out.println("Port = " + url.getPort());
System.out.println("File = " + url.getFile());
System.out.println("Host = " + url.getHost());
System.out.println("Path = " + url.getPath());
System.out.println("Protocol = " + url.getProtocol());
System.out.println("Query = " + url.getQuery());
}
A、
Authority = news.baidu.com
Default port = 80
File = /ns?from=news
Host = news.baidu.com
Path = /ns
Port = -1
Protocol = http
Query = from=news
B、
Authority = news.baidu.com
Default port = null
File = /ns?from=news
Host = news.baidu.com
Path = /ns
Port = -1
Protocol = http
Query = from=news
C、
Authority = news.baidu.com
Default port = ""
File = /ns?from=news
Host = news.baidu.com
Path = /ns
Port = -1
Protocol = http
Query = from=news
D、
Authority = news.baidu.com
Default port = 80
File = /ns?from=news
Host = news.baidu.com
Path = /ns
Port = -1
Protocol = http://
Query = from=news
考点:考察java.net.URL中的方法 (A)。

Jdbc题:
4.Which of the following answer is incorrect about Jakarta dbcp Data Source attribute of configuration?
A、initialSize:The initial number of connections that are created when the pool is started.
B、maxActive:The maximum number of active connections that can be allocated from this pool at the same time, or negative for no limit and default value is eight.
C、maxIdle:The maximum number of connections that can remain idle in the pool and default value is eight.minIdle:The minimum number of connections that can remain idle in the pool.
D、maxWait:When there are available connections,the maximum number of milliseconds that the pool will wait for a connection to be returned before throwing an exception.
考点:考察Jakarta dbcp连接池的参数配置 (D)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值