JavaEE面试题库分类及答案之四

第五部分 选择题,编程题集锦
一、选择题(每题2分)
1.下列哪些情况可以终止当前线程的运行?
a. 抛出一个异常时。
b. 当该线程调用sleep()方法时。
c. 当创建一个新线程时。(与当前进程无关)
d. 当一个优先级高的线程进入就绪状态时。
答案:ABD
2. 下面哪些为构造函数的特性定义
a. 在类中声明构造函数时,名称应该与类名相同
b. 具有重载特性,可以建立多个相同的名称
c. 使用类建立新对象时,会自动执行构造函数,因此在构造函数内设定变量的初值或进行内存分配
d. 以上都是
答案: D
3. 关于异常处理机制的叙述哪些正确
a. catch部分捕捉到异常情况时,才会执行finally部分(无论是否有毛病,都执行)
b. 当try区段的程序发生异常时,才会执行catch区段的程序
c. 不论程序是否发生错误及捕捉到异常情况,都会执行finally部分
d. 以上都是
答案:BC
4. 下列关于接口的叙述中哪些是正确的
a. 接口中的数据必须设定初值(就是接口中的常量)
b. 接口中的方法都是抽象方法
c. 接口可以声明引用
d. 以上都正确
答案:AB
5. Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是对的?
A. 重写是父类与子类之间多态性的一种表现。
B. 重写是一个类中多态性的一种表现。
C. 重载是一个类中多态性的一种表现。
D. 重载是父类与子类之间多态性的一种表现。
AC

8方法可以进行servlet的调试?(A B C D E)
A、使用打印语句; 在桌面计算机上运行服务器
B、使用Apache Log4J
C、使用IDE集成的调试器
D、直接查看HTML源码 ????
E、返回错误页面给客户
9、下面关于servlet的功用说法正确的有哪些?(A B C D E)
A、读取客户程序发送来的显式数据
B、读取客户程序发送来的隐式数据
C、生成相应的结果
D、发送显式的数据给客户程序
E、发送隐式的数据给客户程序
10、下面关于session的用法哪些是错误的?(A B D)
A、HttpSession session = new HttpSession(); request.getSession();
B、String haha =(String) session.getParameter(Attribute)(“haha”);
C、session.removeAttribute(“haha”);
D、session. setAttribute(“haha”,值);
11、关于说法正确的有哪些?(A B C)
A、URL的输出在请求时被插入到JSP页面中
B、不能含有影响整个页面的JSP内容
C、被包含文件改变后不需更改使用它的页面
D、被包含文件更改后,需要手动地更新使用它的页面(不需要手动更新)
12、关于bean的说法正确的有哪些?(B D)
A、具备一个零参数(空)的构造函数(不是必须的)
B、不应该有公开的实例变量(字段)
C、所有的属性都必须通过getXxx和setXxx方法来访问
D、布尔型的属性使用isXxx,而非getXxx
13、下面关于MVC说法错误的有哪些?(A C)
A、必须使用复杂的框架
B、使用内建的RequestDispatcher能够很好地实现MVC
C、当其中一个组件发生变化的时候,MVC影响整个系统的设计
D、我们可以用MVC来处理单个请求
14、下面的标签中哪些是JSTL标签?(A B C)
A、<c:out…/>
B、<c:set…/>
C、<c:if…/>
D、<c:errors…/>
15、使用Junit测试equals()必须根据哪些属性来进行?(A B C)
A、反身性
B、对称性
C、传递性
D、一致性

二、编程题(1、2题各15分,3题20分)
1、利用异常处理机制的方法来制作一个代码程序段。输入“I am 007”时,打印“亲爱的007,您好”;输入其他字符串时,打印“对不起,请下次进入”,然后程序结束
import java.io.*;

public class KB
{
public static String scan()
{
String str=”“;
try
{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
str=buf.readLine();
}
catch(Exception e){}
return str;
}
}

public class MyExceptionTest {
public static void exceptionThrow() throws MyException1 {
throw new MyException1();
}
public static void anotherThrow() throws MyException2 {
throw new MyException2();
}
public static void main(String args[]) {
try {
String str=KB.scan();
if(str.equals(“I am 007”))
exceptionThrow();
else
anotherThrow();

    } catch (MyException1 e1) {
        e1.printStackTrace();
    } catch (MyException2 e2) {
        e2.printStackTrace();
    }
}

}

class MyException1 extends Exception {
MyException1() {
super(“亲爱的007,您好”);
}
}

class MyException2 extends Exception {
MyException2() {
super(“对不起,请下次进入”);
}
}
2、使用同步函数实现卖100张票。要求写两个类(主函数类:MainTest,线程类:ThreadTest),线程类实现Runnable接口。
public class MainTest {
public static void main(String args[])
{
Thread t=new Thread(new ThreadTest());
t.start();
}
}
class ThreadTest implements Runnable{

private int tickets = 100;
public void run() {
    while(true)
    {
        sale();
    }
}
public synchronized void sale()
{
    if(tickets>0)
    {
        try{
            Thread.sleep(10);               
        }catch(Exception e)
        {
            e.printStackTrace();
        }
        System.out.println(Thread.currentThread().getName()+" is saling ticket "+tickets--);
    }
}

}
3.Java编程,打印昨天的当前时刻
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
}
}
4.文件读写,实现一个计数器
public int getNum(){
int i = -1;
try{
String stri=”“;
BufferedReader in = new BufferedReader(new FileReader(f));
while((stri=in.readLine())!=null){
i = Integer.parseInt(stri.trim());
}
in.close();
}catch(Exception e){
e.printStackTrace();
}
return i;
}
public void setNum(){
int i = getNum();
i++;
try{
PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(f,false)));
out.write(String.valueOf(i)); //可能是编码的原因,如果直接写入int的话,将出现java编码和windows编码的混乱,因此此处写入的是String
out.close() ;
}catch(Exception e){
e.printStackTrace();
}
}
5. 指出下面程序的运行结果:
class A{
static{
System.out.print(“1”);
}
public A(){
System.out.print(“2”);
}
}
class B extends A{
static{
System.out.print(“a”);
}
public B(){
System.out.print(“b”);
}
}
public class Hello{
public static void main(String[] ars){
A ab = new B(); //执行到此处,结果: 1a2b
ab = new B(); //执行到此处,结果: 1a2bab
}
}
   注:类的static 代码段,可以看作是类首次加载(被虚拟机加载)执行的代码,而对于类的加载,首先要执行其基类的构造,再执行其本身的构造
6.写一个Singleton模式的例子
public class Singleton{
private static Singleton single = new Singleton();
private Singleton(){}
public Singleton getInstance(){
return single;
}
}
7 删除表的重复记录
   如果记录完全相同才算重复记录,那么: (sql server2000下测试通过)
select distinct * into #tmpp from tid
delete from tid
insert into tid select * from #tmpp
drop table #tmpp
  如果有id主键(数字,自增1的那种),那么:(sql server2000下测试通过)
delete from tableA where id not in
(select id = min(id) from tableA group by name)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值