JAVA工程师笔试题
一、选择题
1、如下代码
public class Test {
  public int aMethod() {
    static int i = 0;
    i++;
    return i;
  }
  public static void main (String args[]) {
    Test test = new Test();
    test.aMethod();
    int j = test.aMethod();
    System.out.println(j);
  }
}
输出结果是什么?
A. 0        B. 1        C. 2        D. 编译失败
2. 如下代码
int i =1,j =10;
  do {
    if(i++> --j) {
    continue;
适配器字符串是什么  }
} while (i <5);
System.out.println("i = " +i+ "and j = "+j);
输出结果是什么?
A. i = 6 and j = 5            B. i = 5 and j = 5          C. i = 6 and j = 5      D. i = 5 and j = 6
3. 如下代码:
public class SwitchTest {
  public static void main(String[] args) {
    System.out.println("value = " + switchIt(4));
  }
  public static int switchIt(int x) {
    int j = 1;
    switch (x) {
        case 1: j++;
        case 2: j++;
        case 3: j++;
        case 4: j++;
        case 5: j++;
        default: j++;
      }
      return j + x;
  }
}
输出结果是什么?
A. value = 3    B. value = 4    C. value = 5    D. value = 6    E. value = 7    F. value = 8
4. 在接口中以下哪条定义是正确的? (多选)
A. void methoda();
B. public double methoda();
C. public final double methoda();
D. static void methoda(double d1);
E. protected void methoda(double d1);
5. 如下代码:
public void test(int x) {
    int odd = x%2;
    if (odd) {
        System.out.println("odd);
    } else {
        System.out.println("even");
    }
}
哪个描述正确?
A. 编译失败.            B. "odd" 永远被输出.            C. "even" 永远被输出   
D. "odd" 输出x的值,        E. "even" 输出x的值
6. 如下代码:
public class X {
    public X aMethod() { return this;}
}
public class Y extends X {}
哪些方法能加到Y类的定义中?
A. public void aMethod() {}            B. private void aMethod() {}   
C. public void aMethod(String s) {}    D. private Y aMethod() { return null; }   
E. public X aMethod() { return new Y(); }
7. 如下代码:
public class X {
    public static void main(String [] args) {
        try {
            badMethod();
            System.out.print("A");
        }catch (Exception ex) {
            System.out.print("C");
        }finally {
            System.out.print("B");
        }
        System.out.print("D");
    }
    public static void badMethod() {
        throw new Error();
    }
}
结果是什么?
A. ABCD        B. 编译失败.        C. 显示C,退出程序.
D. 显示B,退出程序.                E. 显示BCD,退出程序.
8. 如下代码:
public class Foo {
    public static void main(String[] args) {
        try {
            return;
        } finally {
            System.out.println( "Finally" );
        }
    }
}
输出结果是什么?
A. Finally        B.编译失败        C. 代码正常运行但没有任何输出.        D. 运行时抛出异常
9. 如下代码:
class Base {
    Base() { System.out.print("Base"); }
}
public class Alpha extends Base {
    public static void main( String[] args ) {
        new Alpha();
        new Base();
    }
}
结果是什么?
A. Base    B. BaseBase C. 编译失败. D. 代码运行但没有输出. E. 运行时抛出异常.
10、下面哪个语句是创建数组的正确语句?( ) 
A . float f[][] = new float[6][6];                      B . float []f[] = new float[6][6]; 
C . float f[][] = new float[][6];                      D . float [][]f = new float[6][6]; 
E . float [][]f = new float[6][];
二、问答题
1、StringStringBuffer的区别
2、MVC的各个部分都有那些技术来实现?如何实现?
3、什么是java序列化,如何实现java序列化?
4、什么是单例模式?写一个单例类。
5、说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法(可在面试时候详述)
三、SQL基础题
1、创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,
2、修改学生表的结构,添加一列信息,学历
3、修改学生表的结构,删除一列信息,家庭住址
4、向学生表添加如下信息:
    学号    姓名    年龄    性别        学历
    1        A        22        男        123456        小学
    2        B        21        男        119            中学
    3        C        23        男        110            高中
5、修改学生表的数据,将电话号码以11开头的学员的学历改为“大专”
6、删除学生表的数据,姓名以C开头,性别为‘男’的记录删除
四、SQL高级题
    说明:有三个表,项目表、合同表、付款表
    下面是表结构
        项目表(项目编号 int,项目名称 varchar(50))
        项目编号    项目名称
        1            项目1
        2            项目2
        3            项目3
        合同表(合同编号 int,项目编号 int,合同金额 number(7,3))
        合同编号    项目编号    合同金额
        1            1            1000
        2            1            1500
        3            2            2000
        付款表(付款编号 int,合同编号 int,付款金额 number(7,3))
        付款编号    合同编号    付款金额
        1            1            1000
        2            2            2000
        3            2            800
    一个项目可能会有签署多个合同,每个合同会分几次付款,
    1、设计一个查询,要求返回结果列出项目所有合同的金额                             
2、设计一个查询,要求返回结果列出项目所有合同已付款金额                         
    3、请您设计一个查询语句,检索的格式如下
    项目编号    项目名称    项目所有合同的金额    项目所有合同已付款金额   
    1          项目1      2500.000              1100.000
    2          项目2      2000.000              NULL
选择题
DDF(CDE)A(CE)DABC
问答题
1、StringStringBuffer的区别
JAVA平台提供了两个类:StringStringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。另外,String实现了equals方法,new String(“abc”).equals(newString(“abc”)的结果为true,StringBuffer没有实现equals方法,所以,new StringBuffer(“abc”).equals(newStringBuffer(“abc”)的结果为false
2、MVC的各个部分都有那些技术来实现?如何实现?
MVC是Model-View-Controller的简写。Model 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), View 是应用的表示面(由JSP页面产生),Controller 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
3、什么是java序列化,如何实现java序列化?
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。