易宝支付JAVA开发工程师(L1)招聘试
姓名:日期:开始时间:完成时间:
第一部分:JAVA知识
一、写出下面代码的执行结果(分值10分)
public class Foo {
public static void main(String[] args) {
String strValue="ABCDEFG";
strValue.substring(3);
strValue.concat("123");
System.out.println("result=" + strValue);
String value = new String ("ABCDEFG");
System.out.println(strValue== value);
}
}
二、写出下面代码的执行结果
public class Foo{ (分值5分)
public static void main(String args[]) {
int x = 100;
int y = 200;
if (x = y)
System.out.println("Not equal");
else
System.out.println("Equal");
}
}
三、写出下面代码的执行结果(此题需写出分析过程,没有分析过程不得分,分值10分)
import java.io.IOException;
public class ExceptionTest {
public static void main(String args[]) {
try {
new ExceptionTest().methodA(5);
} catch (IOException e) {
System.out.println("caught IOException");
} catch (Exception e) {
System.out.println("caught Exception");
}finally{
System.out.println("no Exception");
}
}
void methodA(int i) throws IOException {
if (i%2 != 0)
throw new IOException("methodA IOException");
}
}
四、写出下面代码执行的结果(此题需写出分析过程,没有分析过程不得分,分值10分)
public class Test {
static boolean isTrue() {
System.out.println("isTrue");
return true;
}
static boolean isFalse() {
System.out.println("isFalse");
return false;
}
public static void main(String[] args) {
if (isTrue() || isFalse()) {
System.out.println(" || operate return true");
}
if (isFalse() & isTrue()) {
System.out.println(" & operate return true");
}
}
}
五、写出下面代码执行的结果(此题需写出分析过程,没有分析过程不得分,分值10分) public class ThreadTest{
public static void main(String argv[]) {
MyThread t = new MyThread();
t.run();
t.start();
System.out.println("A");
}
}
class MyThread extends Thread{
public void run(){
try {
Thread.currentThread().sleep(3000);
} catch (InterruptedException e) {
}
System.out.println("B");
}
}
六、执行B.main的结果是什么?(此题需写出分析过程,没有分析过程不得分,分值10分)
class A {
void fun1() {
System.out.println(fun2());
}
int fun2() {
return 123;
}
}
class B extends A {
int fun2() {
return 456;
}
public static void main(String argv[]) {
A a;
B b = new B();
b.fun1();
a = b;
a.fun1();
}
}
七、执行ListTest.main的结果是什么?(此题需写出分析过程,没有分析过程不得分,分值10
分)
class Data {
int val;
int getVal() {
return val;
}
void setVal(int val) {
this.val = val;
}
}
public class ListTest {
public static void main(String argv[]) {
Data data = new Data();
ArrayList list = new ArrayList();
for (int i=100; i<103; i++) {
data.setVal(i);
list.add(data);
}
int j = 0;
while (j < list.size()) {
Data tmp = (Data )list.get(j);
System.out.println("list(" + j + ") = " + tmp.getVal()); j++;
}
}
}
八、请指出以下代码有哪些错误(分值15分)
1.
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) { }
}
2.
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
3.
public class Something {
public int addOne(final int x) {
return ++x;
}
}
九、写出以下正则
达式(分值10分)
1-6位字母或数字:
手机号(只能以139或159开头,11位数字):
十、写一个方法,实现字符串的反转,如:输入abc,输出cba(分值10分)十一、写一个程序,计算1+22+32+…+n2(分值10分)
public int count(int n){
return n == 1 ? 1 : count(n-1) + n*n;
}
十二、写一个延迟加载的单例模式(Singleton)的例子(分值10分)
第二部分:简答题
十三、列出JSP的内置对象,并描述其用途。(10分)
十四、列出web.xml中允许定义的元素,并描述其用途。(10分)
十五、列出JDBC操作数据库的步骤(10分)
十六、描述会话(session)和cookies的异同点(10分)
十七、有一个JSP代码如下,假设WEB容器启动后有2个人分别用两台电脑轮流访问这个页面5次,那么最后一次访问这个页面的人看到的结果是什么?(需要写出分析过程,分值20分)
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%!
int i = 0;
%>
<%
int j = 0;
int s = 0;
String str = (String)session.getAttribute("count");
if(str!=null){
s = Integer.parseInt(str);
}
s++;
session.setAttribute("count", s+"");
int a = 0;
str = (String)application.getAttribute("count");
if(str!=null){
a = Integer.parseInt(str);
}
a++;
application.setAttribute("count", a+"");
i++;
j++;
out.println(i + j + s + a);
%>
第三部分:数据库知识
十八、数据库操作
-- 学生表
CREATE TABLE student(
ID CHAR(8) NOT NULL, -- 学生编号
NAME CHAR(8) NOT NULL, -- 姓名
SEX CHAR(2), -- 性别
AGE INT) -- 年龄
-- 课程名称表
CREATE TABLE COURSE(
ID CHAR(4) NOT NULL, -- 课程编号
NAME CHAR(20) NOT NULL, -- 课程名称
DESCRIPTION CHAR(50)) -- 课程描述
-- 课程和学生的关系表(多对多,一个学生可以上多个课程,一个课程允许多个
学生上)
CREATE TABLE course2student(
ID_COURSE CHAR(4) NOT NULL, -- 课程编号
ID_STUDENT CHAR(8) NOT NULL -- 学生编号
)
那么,
1)在课程表中增加一个课程(课程编号:DB-1、课程名称:DB2-SQL-1),增加一个学
生(学生编号:20080001、姓名:张三),该学生上DB-1的课程。(5分)
2)更新课程中课程编号为“DB-1”的课程名称为“DB2-SQL”、课程描述为“DB2 SQL
语法及其使用”。(5分)
3)查询课程名称以“DB2”开头的课程有哪些?需要列出课程编号、课程名称。
(5分)
4)查询课程编号为“DB-1”的有哪些学生SQL的语句是什么?列出学生编号、
姓名、性别。(5分)
5)统计所有课程的学生人数,并按人数从低到高排列。只有列出课程编号、上课
人数(5分)
第四部分:逻辑题(选做)
十九、有12个一摸一样的小钢球,其中有一个的质量与其他的11个的质量不一样,现在有一架天平(无砝码)。请用这架天平从这12个小钢球中找出与其他质量不一
样的那一个小钢球,并判别出这个小钢球是偏重还是偏轻。请证明最少要用几
次?
二十、现在小明一家过一座桥,过桥时候是黑夜,所以必须有灯。现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12
秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后3 0秒就会熄灭。问小明一家如何过桥?