面试某公司时所做的笔试题,这里分享一下
1、以下那不属于java基本数据类型
A、int、short、byte、long
B、float,double
C、boolean
D、String
2、下列哪个类不是Collection
A、List
B、Set
C、Map
D、Vector
3、若覆盖某个类的hashCode方法,则必须同时覆盖它的哪个方法
A、contains
B、clone
C、toString
D、equals
4、以下关于java垃圾回收描述错误的是
A、垃圾回收可以有效的防止内存泄漏,有效的使用可以使用的内存
B、回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收等
C、可以手动执行System.gc(),通知GC运行,GC会立马执行垃圾回收
D、程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收
5、请问下列方法的返回结果是什么
public int print() {
int i = 0;
try{
++i;
}finally {
++i;
}
return ++i;
}
A、1
B、2
C、3
D、0
6、请分析下列代码的正确输出
public static void test(StringBuffer x,StringBuffer y) {
x.append(y);
y=x;
}
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
test(a,b);
System.out.println(a+","+b);
}
A、A,B
B、A,A
C、AB,B
D、AB,AB
7、下面isEmptyString 函数正确的是
A、public boolean isEmptyString (String str){
return str==null||str.length()==0;
}
B、public boolean isEmptyString (String str){
return str.length()==0||str==null;
}
C、public boolean isEmptyString (String str){
return str==""||str.length()==0;
}
D、public boolean isEmptyString (String str){
return str.equals("")||str.length()==0;
}
8、对于以下代码片段,有行号的代码执行顺序是
class SuperTest{
private String name = "is name" ;//1
public SuperTest() {
System.out.println("is SuperTest()");//2
}
}
public class Test extends SuperTest{
private static String name = "is test name";//3
public Test () {
System.out.println("is Test()"); //4
}
public static void main(String[] args) {
new Test();//5
}
}
A、3,5,1,2,4
B、5,3,4,1,2
C、3,5,2,4,1
D、5,3,4,2,1
9、基于下列声明表达式结果为true的是
Integer s = new Integer(9);
Integer t = new Integer(9);
Long u = new Long (9);
A、s==t
B、s.equals(u)
C、s.equals(t)
D、s.equals(9)
10、如果使用了for( ; ; ),则
A、发送编译错误
B、根本不进入循环
C、这是一个无限循环
D、发生运行错误
11、以下关于Overload 和 Override 的描述错误的是
A、重写Overriding 是父类与子类之间的一种表现
B、重载Overloading 是一个类中多态性的一种表现
C、某个方法被重写指:在子类中的定义某个与某父类有相同的名称和参数
D、在一个类中定义了一个多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载
E、重载的方法不可以改变返回值的类型
12、以下说法错误的是
A、ArrayList 和Vector 都是使用数组方式存储数据
B、Vector是线程安全的
C、LinkedList 相比ArrayList插入速度慢
D、LinkedList 使用双向链表实现存储
13、EJB 事务属性设置为Required 时 表示
A、如果当前已经存在一个运行事务,EJB将加入该事务;如果没有运行的事务存在,则EJB容器将新建一个事务
B、如果此时有一个运行的事务,该事务将被挂起,一个新的事务将在你的EJB调用过程中存在,当该过程结束后,老的事务将恢复
C、如果当前存在一个运行事务,那么该bean将运行在这个事务当中,如果不存在则该bean将运行在一个非事务的环境中
D、必须存在一个运行的事务,否则将抛出javax.EJB.EJBTransactionRequiredExcption异常
14、链表不具有的特点
A、可随机访问任一元素
B、插入删除不需要移动元素
C、不必事先估计存储空间
D、所需空间与线性长度成正比
15、对于Java容器类ArrayList,下列描述正确的是
A、ArrayList 内部为链表结构
B、ArrayList 的数据访问接口没有考虑线程同步
C、ArrayList 具有容量自动扩展能力,所以不需要设置ArrayList 的初始容量
D、ArrayList 访问元素接口get(i)和原始数组[i] 访问具有同样的执行效率
16、使用UML建模时,若需要描述跨越多个用例的单个对象的行为,使用____最为合适
A、协作图(Collaboration Diagram)
B、序列图(Sequence Diagram)
C、活动图(Activity Diagram)
D、状态图(Statechart Diagram)
17、耦合关系从强到弱的顺序依次为
A、组合、泛化、依赖、聚合
B、泛化、组合、聚合、依赖
C、依赖、泛化、组合、聚合
D、聚合、组合、泛化、依赖
18、以下关于web技术中作用域描述错误的是
A、page代表与一个页面相关的对象和属性,page作用域的信息在通过forward调用时可以被下一个页面访问
B、request 代表与web客户机发出的一个请求相关的对象和属性,一个请求可能跨越多个页面
C、session代表一个用户访问系统到关闭浏览器这段时间内相关的帝乡和属性,一个web会话可以也经常会跨越多个客户端请求
D、application代表与整个web应用程序相关的对象和属性,是跨越整个web应用程序,包括多个页面,请求和会话的一个全局作用域
1、请用java写一个单例模式类
2、请简述一下JVM虚拟机启动时加载类的顺序
1、以下哪些不属于约束
A、主键
B、外键
C、索引
D、唯一索引
E、NOT NULL
2、以下应用程序的实现原则,哪条是错误的
A、数据库的连接,游标是重要的共享资源,需要谨慎的节约使用,尽量晚地获取、尽量早地释放是通常情况下需要遵循的原则
B、事物尽可能的短,尽量巧妙设计应用使得锁定的资源越少越好
C、SQL 语句是越动态就越好,越是动态的SQL,则数据库中通常会存在SQL语句的缓存和执行计划的存在
D、不要什么事情都交给数据库做,缓存是必要的
3、以下两个表X和Y,X中有F1 和F2 为字段,Y有F1和F4 字段
F1 | F2 |
---|---|
A | A |
B | B |
F1 | F4 |
---|---|
A | A |
C | C |
D | D |
要求写一条SQL 返回结果如下,正确的是
F1 | F2 | F4 |
---|---|---|
A | A | A |
A、select X.F1, X.F2, Y.F4 from x inner join Y on X.F1 = Y.F1
B、select X.F1, X.F2, Y.F4 from x left outer join Y on X.F1 = Y.F1
C、select X.F1, X.F2, Y.F4 from x , Y where X.F1 <> Y.F1
D、select X.F1, X.F2, Y.F4 from x right outer join X.F1 = Y.F1
4、一张表结构描述如下,执行选项中语句,哪句语句是正确的
CREATE TABLE titles(
title_id INT NOT NULL,
title VARCHAR(80) NOT NULL,
TYPE CHAR (12) NOT NULL,
pub_id CHAR(4),
price INT,
advance INT,
royalty INT,
ytd_sales INT,
notes VARCHAR(200),
pubdate DATETIME NOT null
)
A、SELECT TYPE , AVG(price) FROM titles where advance >5000 GROUP BY TYPE HAVING pub_id= 1389
B、SELECT TYPE , AVG(price) FROM titles where advance >5000 GROUP BY TYPE HAVING price >0
C、SELECT TYPE , AVG(price) FROM titles where advance >5000 GROUP BY TYPE HAVING AVG(price) >10
D、SELECT TYPE ,pub_id, AVG(price) FROM titles where advance >5000 GROUP BY TYPE HAVING pub_id=1389
5、有如下的更新SQL,执行结果描述正确的是
UPDATE t_user2
SET Fname =(SELECT Fname FROM t_user1 WHERE t_user2.Fid = t_user1.Fid)
WHERE Fname IS NULL
A、这个SQL会正确执行
B、这个SQL将执行失败,因为更新的SQL不能有子查询
C、只有当t_user1.Fid 和t_user2.Fid 都被定义为主键时这个SQL才会执行成功
D、如果子查询中基于t_user1.Fid 字段没有返回重复的行时这个SQL将执行成功
6、关于union 运算符的描述错误的是
A、union 能够联合多个结果集并组织成单个结果集
B、union 联合的所有集合的列数必须相同
C、union联合的所有集合的列的顺序可以不同
D、union 联合的所有集合对应的列的数据类型必须兼容
7、关锁locks ,描述正确的是
A、当一个事务在表上放置了一个共享锁,其他事务能阅读表里的数据
B、当一个事务在表上放置了一个共享锁,其他务能更新表里的数据
C、当一个事务在表上放置了一个排它锁,其他事务能阅读表里的数据
D、当一个事务在表上放置了一个排它锁,其他务能更新表里的数据
8、如下哪种情况下,oracle 不会使用full table scan
A 、缺乏索引,特别是在列上使用了函数,如果利用索引,则需要使用函数索引
B、当访问的数据占整个表中的大部分数据时
C、如果一个表的high water mark 数据块数少于初始化参数DB_FILE_MULTIBLOCK_READ_COUNT
D、本次查询可以用到该张表的一个索引,但是该表具有多个索引包含用于过滤的字段
9、以下那句是对索引的错误描述
A、选择性差的索引只会降低DML 语句的执行速度
B、选择性强的索引只有被Access Path 使用到才是有用的索引
C、在适当的时候将最常用的列放在复合索引的最前面
D、过多的索引只会阻碍性能的提升,而不是加速性能
E、索引和表的数据都存储在同一个Segment中
10 、以下关于数据库连接池的说法中哪个是错误的
A、服务器启动时会初始创建一定数量的连接池,并一直维持不少于此数目的池连接
B、客户端程序需要连接时,池驱动程序会返回一个使用的池连接并使用计数加1
C、如果 当前没有空闲连接池,驱动程序就会在新建一定数量的连接,新建连接的数量可以由配置参数决定
D、当使用的池连接调用完成后,池驱动程序此连接标记为空闲,其他调用就可以使用这个连接
1、对于以下的表设计,你能支持哪些不合理的地方
字段名 | 类型 | 字段说明 |
---|---|---|
F1 | INT | 记录内码 |
F2 | VARCHAR(40) | 员工名称 |
F3 | DATETIME | 发薪日期 |
F4 | FLOAT | 薪水金额 |
F5 | INT | 是否已发放(1=已发放 0= 未发放) |