Java面试通关宝典—Java Web错题集一

5 篇文章 0 订阅
4 篇文章 1 订阅

1、以下锁机机制中,不能保证线程安全的是()

A.Lock

B.ReentrantLock

C.Volatile

D.Synchronized

【正确答案】C

【答案解析】当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。

2、Itertor有哪些方法?()

A.next

B.equals

C.remove

D.hasNext

【正确答案】A,C,D

【答案解析】equals是Object类的方法

3、(多选题)数据库中有两张表,员工表emp(id int,ename varchar(10),sal int,deptid int)和部门表dept(id int,dname varchar(10)),员工表和部门表的id是主键自增的,现在想要查询每个员工姓名及所对应的部门名称,下列正确的是()

A.select emp.ename,dept.dname from emp,dept where emp.id=dept.deptid;

B.select e.ename,d.dname from emp e join dept d on e.id=d.deptid;

C.select emp.ename,dept.dname from emp,dept where emp.deptid=dept.id;

D.select e.ename,d.dname from emp e join dept d on e.deptid=d.id;

【正确答案】C,D

【答案解析]C等值连接,D内连接

4、根据下面的代码, String s = null; 会抛出NullPointerException异常的有( )

A.if( (s!=null) & (s.length()>0) )

B.if( (s!=null) & & (s.length()>0) )

C.if( (s==null) | (s.length()==0) )

D.if( (s==null) || (s.length()==0) )

【正确答案】A,C

【答案解析】s为null,执行s.length()就会抛异常,C不是短路或,第二个条件仍会执行。

4、(单选题)关于ResultSetMetaData API描述错误的是( )

A.getColumnCount() 返回所查询表中的列数

B.getColumnTypeName(int index) 获取指定列的数据库特定的类型名称

C.getColumnType(int index) 获取指定列的SQL类型

D.isNullable(int column) 指示指定列中的值是否可以为 null

【正确答案】A

【答案解析】A 返回resutset对象中的列数。

5.(多选题)下列操作数据库时遇到的异常情况说法正确的是( )

A.java.sql.SQLException:结果集已耗尽(结果集用尽或未调用next)

B.java.sql.SQLException: No suitable driver(URL拼写错误)

C.java.sql.SQLException: Unknown column 'sid' in 'field list' (SQL语句表名错误)

D.java.sql.SQLException: Data too long for column 'id' at row 1(列名定义过长)

【正确答案】A,B

【答案解析】C:数据库列名不存在,D:列值过长

6.以下代码的输出的正确结果是

1

2

3

4

5

6

public class Test {

public static void main(String args[]) {

String s = "祝你考出好成绩!";

System.out.println(s.length());

}

}

A 24       B 16          C  15              D 8

答案:D,问的是字符串的长度

7,一个学生只能就读于一个班级,而一个班级可以同时容纳多个学生,学生与班级的关系是( )

A.一对一

B.一对多

C.多对一

D.多对多

【正确答案】C

【答案解析】一个对应多个为一对多,一一对应为一对一,多个对应多个为多对多

8.请问,对语句行 test.hello(). 描述正确的有()

1

2

3

4

5

6

7

8

9

10

11

12

13

package NowCoder;

class Test {

    public static void hello() {

        System.out.println("hello");

    }

}

public class MyApplication {

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Test test=null;

        test.hello();

    }

}

正确答案: A   ,hello是静态方法,所以不new也可以调用

9、现有如下代码段:

1

2

3

   x = 2;

   while(x<n/2

          x = 2*x;

假设n>=0,则其时间复杂度应为(   )

正确答案: A  

A O(log2(n)) B O(nlog2(n))  C O(n)  D O(n^2)

10下面有个hibernate延迟加载,说法错误的是?

正确答案: C

A Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)
B Hibernate3 提供了属性的延迟加载功能
C get支持延迟加载,load不支持延迟加
D hibernate使用Java反射机制,而不是字节码增强程序来实现透明性

答案解析:get方法支持立即加载,load方法支持延迟加载

11 以下哪一项正则能正确的匹配网址: http://www.bilibili.com/video/av21061574 ()

正确答案: B 

A /^(https?:\/\/)?([a-zA-Z\d]+).bilibili.com\/?video\/av(\D{1,8})\/?$/
B /^(http:\/\/)?(\w+)\.bilibili\.com\/?video\/av(\d{1,8})\/?$/
C /^(https?:\/\/)?(\w+)\.bilibili\.com\/?\w*$/
D /^(http:\/\/)?([a-zA-Z\d]+).bilibili.com\/?video\/av\w*\/+$/

12.执行以下程序,最终输出可能是:

A、010 2123012 3434
B、01201 340124 2334
C、0012314 01223344**
D、12345 12345 12345

正确答案: C 

答案解析:空格之前一定输出有0-4,所以选C

13.下面有关JAVA swing的描述,说法错误的是?

Swing是一个基于Java的跨平台MVC框架。使用单线程模式。
Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的
Swing优化了AWT,运行速度比AWT快
Swing是一个基于组件的框架,所有的组件都是从javax.swing.JComponent类继承来的

正确答案: C  

解析:Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT 的Java程序,其运行速度比较慢。

14.Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:(    )

A.Java反射主要涉及的类如Class, Method, Filed,等,他们都在java.lang.reflet包下
B.通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法
C.通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员
D.Java反射机制提供了字节码修改的技术,可以动态的修剪一个类
E.Java的反射机制会给内存带来额外的开销。例如对永生堆的要求比不通过反射要求的更多
F.Java反射机制一般会带来效率问题,效率问题主要发生在查找类的方法和字段对象,因此通过缓存需要反射类的字段和方法就能达到与之间调用类的方法和访问类的字段一样的效率

正确答案: A D F 

解析:A选项Class类位于lang包下面,D选项反射的本质就是从字节码中查找,动态获取类的整容结构,包括属性,构造器,动态调用对象的方法,而不是修剪类,F选项我觉得应该是,使用了反射的效率都会降低,就算加了缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值