`
aihhd2008
  • 浏览: 24524 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java 面试经典 04--Spring、Hibernate

    博客分类:
  • java
阅读更多




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)。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics