《百川同达Java程序员应聘摸底考试题》由会员分享,可在线阅读,更多相关《百川同达Java程序员应聘摸底考试题(14页珍藏版)》请在金锄头文库上搜索。
1、百川同达 Java 程序员应聘摸底考试题一、选择题。(2*11 分)1. class ExSuper String name;String nick_name;public ExSuper(String s,String t)name = s;nick_name = t;public String toString()return name;public class Example extends ExSuperpublic Example(String s,String t)super(s,t);public String toString()return name + a.k.a + ni
2、ck_name;public static void main(String args)ExSuper a = new ExSuper(First,1st);ExSuper b = new Example(Second,2nd);System.out.println(a is + a.toString();System.out.println(b is + b.toString();A. 编译时会出现异常。B. 运行结果为:a is Firstb is secondC. 运行结果为:a is Firstb is Secong a.k.a 2ndD. 运行结果为:a is First a.k.a
3、 1ndb is Second a.k.a 2nd2. abstract class MineBaseabstract void amethod();static int i;public class Mine extends MineBasepublic static void main(String argv)int ar = new int5;for (int i = 0; i 标签中 scope 的范围由小到大是A page session request application B. application page request sessionC. application ses
4、sion request page D. page request session application6. 要让用户共享一个 JavaBean 的对象则该对象的范围应改设置为:A. session B. page C. application D. request7. 关于自定义标签的使用不正确的是:A 必须在 JSP 页面中使用 B. 必须经过 web.xml 影射C. 必须存在 tld 文件 D. 自定义标签的类必须是 public 的8. 关于外键约束不正确的是:A外键约束与唯一约束不能同时存在与一个字段B子表外键列的值必须在主表参照列表值的范围内,或者为空C主表外键值被子表参照时,
5、主表记录不允许被删除D外键参照的是主表的主键或者唯一键9. 下面的类,正确的描述是_public class Example public static void main(String args)static int x = new int15;System.out.println(x5); A. 编译错误 B.编译正确,执行错误 C. 输出 0 D. 输出是 null10. 关于 Oracle 中存储过程与函数错误的是:A函数必须定义返回类型 B. 存储过程不能定义返回类型C函数可以使用 out 类型参数 D. 存储过程可以用 in out 类型参数11. 关于 Servlet 错误的是:
6、A . 在 MVC 模式中 Servlet 一般用作控制器 B. Tomcat5.0 中 Servlet 必须通过 web.xml 影射访问C. Servlet 中可以直接使用内置对象 out 调用 out.println() 进行输出,而不声明D. Servlet 中可以跳转到另一个 Servlet。二、 简答题(40 分,答案写在其他白纸上)1. Vector 与 ArrayList 有什么区别,在 java.util 包中有哪两个类有类似区别?(3 分)ArrayList 类ArrayList 实现了可变大小的数组。它允许所有元素,包括 null。ArrayList 没有同步。size,
7、isEmpty,get ,set 方法运行时间为常数。但是 add 方法开销为分摊的常数,添加n 个元素需要 O(n)的时间。其他的方法运行时间为线性。每个 ArrayList 实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用 ensureCapacity 方法来增加 ArrayList 的容量以提高插入效率。和 LinkedList 一样,ArrayList 也是非同步的(unsynchronized)。Vector 类Vector 非常类似 ArrayList,但是 Ve
8、ctor 是同步的。由 Vector 创建的 Iterator,虽然和 ArrayList 创建的 Iterator 是同一接口,但是,因为 Vector 是同步的,当一个 Iterator被创建而且正在被使用,另一个线程改变了 Vector 的状态(例如,添加或删除了一些元素),这时调用 Iterator 的方法时将抛出 ConcurrentModificationException,因此必须捕获该异常。Hashtable HashMap 类似2. response.sendRedirect()与 都能跳转,它们有什么区别? (3 分) 重定向 跳转3. 与 都能包含有什么区别? (3 分)
9、伪指令会导致 Web 浏览器高速缓存所有页面。总是会检查所含文件中的变化。4. 存在学生表,课程表,分数表三个表:Create table student(studentid number(10) prinary key,name varchar2(30),depart varchar2(20);Create table lesson(lessonid number(10) primary key, lessonname varchar2(20);Create table score(studentid number(10) foreign key references student(stu
10、dentid),Lessonid number(10) foreign key references student(studentid)Score number(3);写一个 SQL 语句求出考试科目名称为“java 语言”的科目中分数为前 10 名的学生 id,姓名,专业。select top 3 stu.studentid,stu.name,l.lessonname from score s inner join lesson l on s.Lessonid=l.lessonid inner join student stu on s.studentid=stu.studentid wh
11、ere l.lessonname=java order by s.Score desc;5、Struts 框架应用了哪些设计模式?MVC 工厂 单例 是三个最明显的设计模式6、请阐述 Spring IOC 思想(4 分)一、什么是 IOCIoC 就是 Inversion of Control,控制反转。在 Java 开发中,IoC 意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。下面我们以几个例子来说明什么是 IoC假设我们要设计一个 Girl 和一个 Boy 类,其中 Girl 有 kiss 方法,即 Girl 想要Kiss 一个 Boy。那么,我们的问题是,Gi
12、rl 如何能够认识这个 Boy?在我们中国,常见的与 GG 的认识方式有以下几种青梅竹马; 亲友介绍; 父母包办那么哪一种才是最好呢?青梅竹马:Girl 从小就知道自己的 Boy。public class Girl void kiss()Boy boy = new Boy();然而从开始就创建的 Boy 缺点就是无法在更换。并且要负责 Boy 的整个生命周期。如果我们的 Girl 想要换一个怎么办?(笔者严重不支持 Girl 经常更换 Boy)亲友介绍:由中间人负责提供 Boy 来见面public class Girl void kiss()Boy boy = BoyFactory.creat
13、eBoy(); 亲友介绍,固然是好。如果不满意,尽管另外换一个好了。但是,亲友 BoyFactory经常是以 Singleton 的形式出现,不然就是,存在于 Globals,无处不在,无处不能。实在是太繁琐了一点,不够灵活。我为什么一定要这个亲友掺和进来呢?为什么一定要付给她介绍费呢?万一最好的朋友爱上了我的男朋友呢?父母包办:一切交给父母,自己不用费吹灰之力,只需要等着 Kiss 就好了。public class Girl void kiss(Boy boy)/ kiss boy boy.kiss();Well,这是对 Girl 最好的方法,只要想办法贿赂了 Girl 的父母,并把 Boy
14、 交给他。那么我们就可以轻松的和 Girl 来 Kiss 了。看来几千年传统的父母之命还真是有用哦。至少 Boy 和 Girl 不用自己瞎忙乎了。这就是 IOC,将对象的创建和获取提取到外部。由外部容器提供需要的组件。 我们知道好莱坞原则:“Do not call us, we will call you.” 意思就是,You, girlie, do not call the boy. We will feed you a boy。我们还应该知道依赖倒转原则即 Dependence Inversion Princinple,DIP 。Eric Gamma 说,要面向抽象编程。面向接口编程是面向
15、对象的核心。组件应该分为两部分,即Service, 所提供功能的声明Implementation, Service 的实现好处是:多实现可以任意切换,防止 “everything depends on everything” 问题即具体依赖于具体。所以,我们的 Boy 应该是实现 Kissable 接口。这样一旦 Girl 不想 kiss 可恶的Boy 的话,还可以 kiss 可爱的 kitten 和慈祥的 grandmother。二、IOC 的 typeIoC 的 Type 指的是 Girl 得到 Boy 的几种不同方式。我们逐一来说明。IOC type 0:不用 IOCpublic class Girl implements Servicable private Kissable kissable;public Girl() kissable = new Boy();public void kissYourKissable() kissable.kiss();Girl 自己建立自己的 Boy,很难更换,很难共享给别人,只能单独使用,并负责完全的生命周期。IOC type 1,先看代码:public class Girl imp