计算机二级JAVA模拟试题及答案(精选3套)
无论是身处学校还是步入社会,我们最不陌生的就是试题了,试题可以帮助参考者清楚地认识自己的知识掌握程度。什么样的试题才能有效帮助到我们呢?下面是小编帮大家整理的计算机二级JAVA模拟试题及答案,希望能够帮助到大家。

计算机二级JAVA模拟试题及答案 1
一、选择题
1.数据的存储结构是指( )。
A.存储在外存中的数据
B.数据所占的存储空间量
c.数据在计算机中的顺序存储方式
D.数据的逻辑结构在计算机中的表示
2.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )。
A.冒泡排序n/Z
B.冒泡排序为n
C.快速排序为n
D.快速排序为n(n一1)/z
3.栈和队列的共同点是( )。
A.都是先进先出
B.都是先进后出
C.只允许在端点处插入和删除元素
D.没有共同特点
4.有下列二叉树,对此二叉树中序遍历的结果为( )。
A.ABCEDF
B.ABCDEF
C.ECBDFA
D.ECFDBA
5.对建立良好的程序设计风格,下列描述中正确的是( )。
A.程序应该简单、清晰、可读性好
B.符号名的命名只需要符合语法
C.充分考虑程序的执行效率
D.程序的注释可有可无
6.下列叙述中正确的是( )。
A.在面向对象的程序设计中,各个对象之间具有密切的关系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述3种说法都不对
7.为了提高软件模块的独立性,模块之间最好是( )。
A.控制耦合
B.公共耦合
C.内容耦合
D.高内聚低耦合
8.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( )。
A.数据与程序独立存放
B.不同的数据被存放在不同的文件中 ..
C.不同的数据只能被对应的应用程序所使用
D.以上三种说法都不对
9.下列描述中正确的是( )。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发过程中的技术问题
10.对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为( )。
A.并运算
B.交运算
C.差运算
D.积运算
11.下列关于数据存储方式的叙述中,不正确的是( )。
A.数据的主要存储方式有顺序存储结构和链式存储结构
B.顺序存储结构存储空间利用率低,链式存储结构空间利用率高
C.顺序存储结构的结点只有自身域,链式存储结构除了自身域还包括指针域
D.顺序存储结构可通过计算直接确定数据结构中某个结点的存储地址
12.二维数组A[0,…,8][0,…,9],其每个元素占2字节。从首地址400开始,按行优先顺序存储,则元素A[8][5]的存储地址为( )。
A.570
B.506
C.410
D.482
13.下列有关操作系统的叙述中,不正确的是( )。
A.操作系统管理计算机系统中的.各种资源
B.操作系统为用户提供良好的界面
C.操作系统与用户程序必须交替运行
D.操作系统位于各种软件的最底层
14.系统出现死锁的原因是( )。
A.计算机系统发生了重大故障
B.有多个封锁的进程同时存在
C.若干进程因竞争资源而无休止地等待其他进程释放已占有的资源
D.资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数
15.若干进程之间相互合作,共同完成一项任务,进程的这种协同工作关系称为( )。
A.异步
B.同步
C.并发
D.互斥
16.下面属于面向对象语言的是( )。
A.Java语言
B.机器语言
C.C语言
D.汇编语言
17.下列选项默认的布局管理器不是BorderLayout的是( )。
A.Window B.Panel
C.Frame D.Dialog
18.用来实现Java虚拟机的语言是( )。
A.Java
B.C
C.C++
D.汇编
19.下列关于Java安全性的说法错误的是( )。
A.有严格的访问权限检查
B.对程序执行前要检查
C.不允许使用指针
D.可防止对内存的非法入侵
20.下列有关Java语言的叙述中,正确的是( )。
A.可以有2个以上package语句
B.可以有2个以上import语句
C.可以有2个以上public类
D.只能有l个类定义
21.下列对类的声明,正确的是( )。
A.abstract final classHh{…}
B.abstract private move(){…}
C.protected private number;
D.public abstract classCar{…}
22.Java中用于提供Java语言、Java虚拟机的核心的类和接口的包是( )。
A.java.io包
B.java.applet包
C.java.lang包
D.java.net包
23.下列关于JDK目录结构的说法,错误的是( )。
A.bin目录下有许多工具
B.demo目录下有各种演示例子
C.include目录下都是库文件
D.jre目录是Java程序运行环境的根目录
24.下列说法正确的是( )。
A.类FileInputStream和FileOutputStream用来进行文
件I/O处理,由它们所提供的方法可以打开本地主机上的
文件,并进行顺序的读/写
B.通过类File的实例或者一个表示文件名称的字符串
可以生成文件输入/输出流,在流对象生成的同时,文件被
打开,但还不能进行文件读/写
C.对于InputStream和OutputStream来说,它们的实
例都是是非顺序访问流,即只能进行顺序的读/写
D.当从标准输入流读取数据时,从键盘输入的数据直
接输入到程序中
25.能将程序补充完整的选项是( )。
class Person
{
private int a;
public int change(int m){return m;)
}
public class Teacher extends Person
{
public int b;
public static void main(String arg[])
{
Person p=new Person();
Teacher t=new Teacher();
int i;
}
}
A.i=m
B.i=b
C.i=P.a
D.i=P.change(50)
26.下列程序实现对ZIP文件file.zip的检索,在横线处
填入正确的语句( )。
package test;
importjava.io.*;
import java.util.*;
import java.util.zip.*;
public class Exam
{
public static void main(String[]args){
try{
FileInputStream fis=new FileInputStream("test/file.
zip");
ZipInputStream zis=new ZiplnputStream(fis);
ZipEntry an;
while(( )!=null){
en.getName();
zis.closeEntry();
}
zis.close():
}
catch(Exception e){
e.printStackTrace();
}
}
}
A.en=zis.getNextEntry()
B.en= =zis.getNextEntry()
C.en=zis.getEntry()
D.zis.getNextEntry()
27.将一个容器panel1放到容器framel中的方法是( )。
A.framel.(panel1)
B.framel.add(panel1)
C.framel.addJPanel(panel1)
D.framel.JPanel(panel1)
28.下列程序的输出结果是( )。
class Test{
public static void main(String args[]){
int n=7:
n<<=3;
n=n&n+1|n+2^n+3;
n>>=2:
System.out.println(n);
}
)
A.0
B.-l
C.14
D.64
29.文件操作中,用于移动文件指针到指定的位置的是( )。
A.seek(long pos)
B.lengh()
C.find()
D.skipBytes(int n)
30.当检索一个压缩文件时,首先要建立压缩文件输入流对象,该对象( )。
A.以选中的压缩文件为参数
B.以FileInputStream对象为参数
C.以InputStreamReader对象为参数
D.以BufferedReader对象为参数
31.下列不是InputStream子类的是( )。
A.文件输入流FilelnputStream
B.对象输入流ObjectlnputStream
C.字符输入流CharInputStream
D.压缩文件输入流ZiplnputStream
32.下列方法中可以用来创建一个新线程的是( )。
A.实现java.lang.Runnable接口并重写start()方法
B.实现java.lang.Runnable接口并重写run()方法
C.继承java.lang.Thread类并重写run()方法
D.实现java.lang.Thread类并实现start()方法
33.下列关于JavaApplication与Applet的说法中,正确的是( )。
A.都包含main()方法
B.都通过“appletviewer”命令执行
C.都通过“javac”命令编译
D.都嵌入在HTML文件中执行
34.当启动Applet程序时,首先调用的方法是( )。
A.stop()
B.init()
C.start()
D.destroy()
35.下列关于线程优先级的说法中,正确的是( )。
A.线程的优先级是不能改变的
B.线程的优先级是在创建线程时设置的
C.在创建线程后的任何时候都可以设置
D.B和C
36.下列代码中,将引起编译错误的行是( )。
1)public class Exercise{
2)public static void main(String args[]){
3)floatf=0.0;
4)f+=1.0:
5))
6))
A.第2行
B.第3行
C.第4行
D.第6行
37.为了向一个Applet传递参数,可以在HTML文件的APPLET标志中使用param选项。在Applet程序中获取参数时,应使用的方法是( )。
A.getParameter()
B.getDocumentBase()
C.getCodeBase()
D.getlmage()
38.线程在生命周期中要经历5种状态。如果线程当前是新建状态,则它可到达的下一个状态是( )。
A.运行状态
B.阻塞状态
C.可运行状态
D.终止状态
39.下列关于Java多线程并发控制机制的叙述中,错误的是( )。
A.Java中对共享数据操作的并发控制是采用加锁技术
B.线程之间的交互,提倡采用suspend()/resume()方法
C.共享数据的访问权限都必须定义为private
D.Java中没有提供检测与避免死锁的专门机制,但程序员可以采用某些策略防止死锁的发生
40.下列操作中,不属于Applet安全限制的是( )。
A.加载本地库
B.读写本地文件系统
C.运行本地可执行程序
D.与同一个页面中的Applet通信
二、基本操作题
本题提示输入年份,然后判断该年份是否为闰年。
importjava.io.*;
public class javal{
public static void main(String[]args){
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
in=new BufferedReader(ir);
int year=1900;
System.out.print("请输入年份:");
try{
String s=in.readLine();
;
} (Exception e){
}
if( )
System.OUt.println(year+"是闰年");
else
System.out.println(year+"不是闰年");
}
}
三、简单应用题
本题使用下拉菜单来控制字体,窗口中有一个标签和一个下拉菜单,当选中下拉菜单中的任一项字体时,标签上字符串的字体就随之改变。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ComboBoxFrame extends JFrame {
public ComboBoxFrame(){
setTitle("java2");
setSize(300,200);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
style=new JComboBox():
style.setEditable(true);
style.addhem("Serif");
style.addItem("SansSerif");
style.addhem("Monospaced");
style.addhem("Dialog");
style.addhem("Dialoglnput");
style.addActionListener(this);
JPanel p=new JPanel();
P.add(style);
getContentPane().add(p,"South");
panel=new ComboBoxTestPanel();
getContentPane().add(panel,"Center");
}
public void actionPerformed(ActionEvent evt){
JComboBox source=(JComboBox) ;
String item=(String)source.getSelectedhem():
panel.setStyle(item);
}
private ComboBoxTestPanel panel;
private JComboBox style;
}
class ComboBoxTestPanel extends JPanel{
public ComboBoxTestPanel(){
setStyle("Serif");
}
public void setStyle(String s){
setFont(new Font(S,Font.PLAIN,12));
repaint();
}
public void paintComponent(Graphics g){
super.paintComponent(g);
9.drawString("Welcome to China!",0,50);
}
}
public class java2{
public static void main(String[]args){
JFrame frame=new ComboBoxFrame();
frame.show();
}
}
计算机二级JAVA模拟试题及答案 2
1. 下面哪些是Thread类的方法()
A start() B run() C exit() D getPriority()
答案:ABD
解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。
2. 下面关于java.lang.Exception类的说法正确的是()
A 继承自Throwable B Serialable CD 不记得,反正不正确
答案:A
解析:Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承 Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException继承RuntimeException。
扩展:错误和异常的区别(Error vs Exception)
1) java.lang.Error: Throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。
java.lang.Exception: Throwable的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。
2) Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions).
checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。检查了的异常发生在编译阶段,必须要使用try…catch(或者throws)否则编译不通过。
unchecked exceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。发生在运行期,具有不确定性,主要是由于程序的逻辑问题所引起的。比如ArrayIndexOutOfBoundException, ClassCastException等。从语言本身的角度讲,程序不该去catch这类异常,虽然能够从诸如RuntimeException这样的异常中catch并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是bug,应该被修复,出现此类错误时程序就应该立即停止执行。 因此,面对Errors和unchecked exceptions应该让程序自动终止执行,程序员不该做诸如try/catch这样的事情,而是应该查明原因,修改代码逻辑。
RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。
处理RuntimeException的原则是:如果出现 RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。其他(IOException等等)checked异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
3. 下面程序的运行结果是()
String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);
答案:false
解析:因为str2中的llo是新申请的内存块,而==判断的是对象的地址而非值,所以不一样。如果是String str2 = str1,那么就是true了。
4. 下列说法正确的有()
A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行。
D.一个class只能定义一个constructor
答案:C
解析:这里可能会有误区,其实普通的类方法是可以和类名同名的,和构造方法唯一的区分就是,构造方法没有返回值。
5. 具体选项不记得,但用到的知识如下:
String []a = new String[10];
则:a[0]~a[9] = null
a.length = 10
如果是int []a = new int[10];
则:a[0]~a[9] = 0
a.length = 10
6. 下面程序的运行结果:()
public static void main(String args[]) {
Thread t = new Thread() {
public void run() {
pong();
}
};
t.run();
System.out.print("ping");
}
static void pong() {
System.out.print("pong");
}
#FormatImgID_0#
A pingpong B pongping C pingpong和pongping都有可能 D 都不输出
答案:B
解析:这里考的是Thread类中start()和run()方法的区别了。start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程,进而调用run()方法来执行任务,而单独的调用run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用start()而不是run()。
7. 下列属于关系型数据库的是()
A. Oracle B MySql C IMS D MongoDB
答案:AB
解答:IMS(Information Management System )数据库是IBM公司开发的两种数据库类型之一;
一种是关系数据库,典型代表产品:DB2;
另一种则是层次数据库,代表产品:IMS层次数据库。
非关系型数据库有MongoDB、memcachedb、Redis等。
8. GC线程是否为守护线程?()
答案:是
解析:线程分为守护线程和非守护线程(即用户线程)。
只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。
守护线程最典型的应用就是 GC (垃圾回收器)
9. volatile关键字是否能保证线程安全?()
答案:不能
解析:volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对
volatile的写操作,无法保证线程安全。例如假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1堆count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6;导致两个线程及时用volatile关键字修改之后,还是会存在并发的情况。
10. 下列说法正确的是()
A LinkedList继承自List
B AbstractSet继承自Set
C HashSet继承自AbstractSet
D WeakMap继承自HashMap
答案:AC
解析:下面是一张下载的.Java中的集合类型的继承关系图,一目了然。
#FormatImgID_1#
11. 存在使i + 1 < i的数吗()
答案:存在
解析:如果i为int型,那么当i为int能表示的最大整数时,i+1就溢出变成负数了,此时不就
扩展:存在使i > j || i <= j不成立的数吗()
答案:存在
解析:比如Double.NaN或Float.NaN,感谢@BuilderQiu网友指出。
12. 0.6332的数据类型是()
A float B double C Float D Double
答案:B
解析:默认为double型,如果为float型需要加上f显示说明,即0.6332f
13. 下面哪个流类属于面向字符的输入流( )
A BufferedWriter B FileInputStream C ObjectInputStream D InputStreamReader
答案:D
解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。
面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。
面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。
总结:以InputStream(输入)/OutputStream(输出)为后缀的是字节流;
以Reader(输入)/Writer(输出)为后缀的是字符流。
14. Java接口的修饰符可以为()
A private B protected C final D abstract
答案:CD
解析:接口很重要,为了说明情况,这里稍微啰嗦点:
(1)接口用于描述系统对外提供的所有服务,因此接口中的成员常量和方法都必须是公开(public)类型的,确保外部使用者能访问它们;
(2)接口仅仅描述系统能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;
(3)接口不涉及和任何具体实例相关的细节,因此接口没有构造方法,不能被实例化,没有实例变量,只有静态(static)变量;
(4)接口的中的变量是所有实现类共有的,既然共有,肯定是不变的东西,因为变化的东西也不能够算共有。所以变量是不可变(final)类型,也就是常量了。
(5) 接口中不可以定义变量?如果接口可以定义变量,但是接口中的方法又都是抽象的,在接口中无法通过行为来修改属性。有的人会说了,没有关系,可以通过 实现接口的对象的行为来修改接口中的属性。这当然没有问题,但是考虑这样的情况。如果接口 A 中有一个public 访问权限的静态变量 a。按照 Java 的语义,我们可以不通过实现接口的对象来访问变量 a,通过 A.a = xxx; 就可以改变接口中的变量 a 的值了。正如抽象类中是可以这样做的,那么实现接口 A 的所有对象也都会自动拥有这一改变后的 a 的值了,也就是说一个地方改变了 a,所有这些对象中 a 的值也都跟着变了。这和抽象类有什么区别呢,怎么体现接口更高的抽象级别呢,怎么体现接口提供的统一的协议呢,那还要接口这种抽象来做什么呢?所以接口中 不能出现变量,如果有变量,就和接口提供的统一的抽象这种思想是抵触的。所以接口中的属性必然是常量,只能读不能改,这样才能为实现接口的对象提供一个统 一的属性。
通俗的讲,你认为是要变化的东西,就放在你自己的实现中,不能放在接口中去,接口只是对一类事物的属性和行为更高层次的抽象。对修改关闭,对扩展(不同的实现 implements)开放,接口是对开闭原则的一种体现。
所以:
接口的方法默认是public abstract;
接口中不可以定义变量即只能定义常量(加上final修饰就会变成常量)。所以接口的属性默认是public static final 常量,且必须赋初值。
注意:final和abstract不能同时出现。
15. 不通过构造函数也能创建对象吗()
A 是 B 否
答案:A
解析:Java创建对象的几种方式(重要):
(1) 用new语句创建对象,这是最常见的创建对象的方法。
(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
(3) 调用对象的clone()方法。
(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
(1)和(2)都会明确的显式的调用构造函数 ;(3)是在内存上对已有对象的影印,所以不会调用构造函数 ;(4)是从文件中还原类的对象,也不会调用构造函数。
坐完笔试后,很多人都希望能提前预知面试题目,最好的方法就是整理一些经典的面试题,java面试的专业性比较强,如果你的基础不够扎实,那么最好找些经典的java面试题及答案分析,提前参透一下吧!
java面试题1、说说HashMap和Hashtable的差别
答案分析:
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap类没有分类或排序。他允许一个null键和多个null值。
Hashtable类似于HashMap,不过不允许null键和null值。他也比HashMap慢,因为他是同步的。
java面试题2、Anonymous Inner Class (匿名内部类)是否能extends(继承)其他类,是否implements(实现)interface(接口)?
答案分析:
匿名的内部类是没有名字的内部类。不能extends(继承)其他类,但一个内部类能作为一个接口,由另一个内部类实现。
java面试题3、STRING与STRINGBUFFER的区别是什么?
答案分析:
STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。
java面试题4、什么时候用assert
答案分析:
断言是个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。如果表达式计算为false,那么系统会报告一个AssertionError,他用于调试目的。
java面试题5、Set里的元素是不能重复的,那么用什么方法来区分重复和否呢?是用==还是equals()?他们有何差别?
答案分析:
Set里的元素是不能重复的,那么用iterator()方法来区分重复和否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
java面试题6、List, Set, Map是否继承自Collection接口?
答案分析:
List,Set是
Map不是
计算机二级JAVA模拟试题及答案 3
一.选择题(30分)
1.下列哪些情况可以终止当前线程的运行?
a. 抛出一个异常时。
b. 当该线程调用sleep()方法时。
c. 当创建一个新线程时。(与当前进程无关)
d. 当一个优先级高的线程进入就绪状态时。
2. 下面哪些为构造函数的特性定义
a. 在类中声明构造函数时,名称应该与类名相同
b. 具有重载特性,可以建立多个相同的名称
c. 使用类建立新对象时,会自动执行构造函数,因此在构造函
数内设定变量的初值或进行内存分配
d. 以上都是
3. 关于异常处理机制的叙述哪些正确
a. catch部分捕捉到异常情况时,才会执行finally部分(无论是否有毛病,都执行)
b. 当try区段的程序发生异常时,才会执行catch区段的程序
c. 不论程序是否发生错误及捕捉到异常情况,都会执行finally部分
d. 以上都是
4. 下列关于接口的叙述中哪些是正确的
a. 接口中的数据必须设定初值(就是接口中的常量)
b. 接口中的方法都是抽象方法
c. 接口可以声明引用
d. 以上都正确
5.Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是对的?
A. 重写是父类与子类之间多态性的一种表现。
B. 重写是一个类中多态性的一种表现。
C. 重载是一个类中多态性的一种表现。
D. 重载是父类与子类之间多态性的一种表现。
6.在Struts应用的视图中包含哪些组件?
A. JSP
B. Servlet
C. ActionServlet
D. Action
E. 代表业务逻辑或业务数据的JavaBean
F. EJB
G. 客户化标签
7. struts框架中,关于FormBean,下列哪些说法是正确的:
A FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给Action
B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证
C 用户每次提交表单,都会产生一个新的FormBean实例
D 动态FormBean不能进行验证操作
8哪些方法可以进行servlet的调试?()
A、使用打印语句; 在桌面计算机上运行服务器
B、使用Apache Log4J
C、使用IDE集成的调试器
D、直接查看HTML源码 ????
E、返回错误页面给客户
9、下面关于servlet的功用说法正确的有哪些?()
A、读取客户程序发送来的显式数据
B、读取客户程序发送来的隐式数据
C、生成相应的结果
D、发送显式的数据给客户程序
E、发送隐式的数据给客户程序
10、下面关于session的用法哪些是错误的?(
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、URL的输出在请求时入到JSP页面中
B、不能含有影响整个页面的JSP内容
C、被包含文件改变后不需更改使用它的页面
D、被包含文件更改后,需要手动地更新使用它的页面(不需要手动更新)
12、关于bean的说法正确的有哪些?()
A、具备一个零参数(空)的构造函数(不是必须的)
B、不应该有公开的实例变量(字段)
C、所有的属性都必须通过getXxx和setXxx方法来访问
D、布尔型的属性使用isXxx,而非getXxx
13、下面关于MVC说法错误的有哪些?()
A、必须使用复杂的框架
B、使用内建的RequestDispatcher能够很好地实现MVC
C、当其中一个组件发生变化的时候,MVC影响整个系统的设计
D、我们可以用MVC来处理单个请求
14、下面的标签中哪些是JSTL标签?()
15、struts框架,错误的是,下面那些说法正确?
A Struts中无法完成上传功能
B Struts框架基于MVC模式
C Struts框架容易引起流程复杂、结构不清晰等问题(清晰)
D Struts可以有效地降低项目的类文件数目
二、填空题( 5分)
1、调用函数MOD(123,10)返回值为___。
2、select round (123.67,1) from dual;这语句输出值为______。
3、创建一个临时替代变量使用的字符是_____。
4、若v_comm = 2800, X := NVL (V_comm,0) ,则X的值为____。
5、调用函数INSTR(‘Here you are’,’er’)返回值为___。
三、判断题(10分)
1、WHERE子句限制行记录,也可以指定限制分组结果的条件。 ()
2、具有UNIQUE约束的列不能包含多个空值。 ()
3、DATE型数据中包含着时间值。 ()
4、具有外键约束的列可以包含空值。 ()
5、如果在类型为4)的列中输入“hello”,则只能存储hell。 ()
6、含有Group by子句的查询,其结果是排好序的。 ()
7、定义游标时,其中的select语句不能使用order by子句。(子查询
不能用) ()
9、触发器一定会被激发。 、过程可以有返回值。 ()
10、instead
of触发器只是基于视图的。
四、写出相应的SQL语句(括号内为列名)(10分)
1、查询从事各工作(JOB)的员工人数。
2、查询与员工SMITH在同一部门(DEPTNO)的员工的姓名(ENAME),工资(SAL)和部门。
3、查询所有员工的姓名(ENAME),工资(SAL)和工资等级(GRADE)。
4、查询获得工资(SAL)最高的3个员工信息。
5、查询所有员工的姓名(ENAME)及其主管姓名(ENAME)。
五、简答题(15分)
1. 在PL/SQL程序中,进行用户自定义异常处理的3个步骤是
什么?
2. 面向对象的特征有哪些方面?并简要介绍
3. List、Map、Set三个接口,存取元素时,各有什么特点?
List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。
4 .struts1.0和struts2.0的区别?如何控制两种框架中的单例模式?
5. 描述一下如何在struts1.0实现国际化,以两国语言(中文,英文)为例:
6.struts中怎么配置form-bean、action
7. Hibernate自带的分页机制是什么?如果不使用Hibernate自带的分页,则采用什么方式分页?
8. hibernate中一对多配置文件返回的是什么?
9.什么样的数据适合存放到第二级缓存中?
10你一般用spring做什么?
11项目中如何体现Spring中的切面编程,具体说明。
12 触发触发器的数据操作有哪些?
13 解释视图的含义以及使用视图的好处。
14 简述ORACLE中5种约束及其作用。
15 ORACLE中过程和函数的异同点。
六、编程题(30分)
1、创建一个PL/SQL块,根据用户输入的编号,在emp表中查询出该编号的员工姓名、部门号及其主管编号,要有异常处理。
2、创建一个PL/SQL块,根据用户输入的工作,从emp表中逐条输出从事这一工作的每位员工的编号、姓名和受雇如期,每条信息格式如下:(用游标实现)
编号 姓名 受雇日期
7751 JOHN 95-12-31
3、编写一个函数,用于判断EMP表中某一工作(JOB)是否存在,若EMP表存在此工作名称,则返回TRUE,否则返回FALSE。
4、编写一触发器,在EMP表执行插入或修改前被激发,此触发器将对员工的工资(SAL)超过5000进行报错,不能插入或修改,不超
过5000的才将员工编号、工作及当时的日期(SYSDATE)插入UP_EMP表
(注:此表已建好,表结构为UP_EMP(EMPNO NUMBER(4),SAL NUMBER(7,2),UDETE DATE))
5下面程序的输出结果是多少?
importjava.util.Date;
public class Test extends Date{
public static void main(String[] args) {
new Test().test();}
public void test(){
System.out.println(super.getClass().getName());}}
6下面的程序代码输出的`结果是多少? public class smallT
{}
public static void main(String args[]) { } public int get() { } try { } finally { } return 2 ; return 1 ; smallT t = new smallT(); int b = t.get(); System.out.println(b);
7子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
8去掉一个Vector集合中重复的元素
9有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数
10. xxx公司的sql面试
Table EMPLOYEES Structure:
EMPLOYEE_ID NUMBER Primary Key,
FIRST_NAME VARCHAR2(25),
LAST_NAME VARCHAR2(25),
Salary number(8,2),
HiredDate DATE,
Departmentid number(2)
Table Departments Structure:
Departmentid number(2) Primary Key,
DepartmentName VARCHAR2(25).
(1)基于上述EMPLOYEES表写出查询:写出雇用日期在今年的,或者工资在[1000,2000]之间的,或者员工姓名(last_name)以’Obama’打头的所有员工,列出这些员工的全部个人信息。
(2) 基于上述EMPLOYEES表写出查询:查出部门平均工资大于1800
元的部门的所有员工,列出这些员工的全部个人信息。()
(3) 基于上述EMPLOYEES表写出查询:查出个人工资高于其所在部门平均工资的员工,列出这些员工的全部个人信息及该员工工资高出部门平均工资百分比。
参考答案
1答案:ABD
2答案: D
3答案:BC
4答案:AB
5答案AC
6答案:A,G
7答案:A
8A B C D E
9A B C D E
10A B D
11A B C
12B D
13A C
14A B C
15A B C
16答案:C
二 填空
3 123.7 & 2800 2
三判断
× ×√√√√×√×√
四写出相应的SQL语句
1Select job,count(*) from emp group by job;
2Select ename,sal,deptno from emp where deptno=(select deptno from emp where ename=’SMITH’);
3Select ename,sal,grade from emp,salgrade where sal between losal and hisal;
4Select * from (select * from emp order by sal desc) where rownum<=3;
5Select e1.ename empname,e2.ename mgrname from emp e1,emp e2 where e1.mgr=e2.empno;
五简答
可以通过声明和发布来截获自定义异常。
一、在声明部分为声明自定义异常名。
二、在执行部分使用 RAISE 语句显式地发布异常。
三、在相应的异常处理例程中引用已声明的异常。
2(1).抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
(2).继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性, 新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
(3).封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
(4). 多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。
3List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值
4a、Action类:
struts1.2要求Action类继承一个基类。struts2.0 Action要求继承ActionSupport基类 b、线程模式
struts1.2 Action是单例模式的并且必须是线程安全的,因为仅有一个Action的实例来处理所有的请求。
单例策略限制了Struts1.2 Action能做的事情,并且开发时特别小心。Action资源必须是线程安全的或同步的。
struts2.0 Action为每一个请求产生一个实例,因此没有线程安全问题。
c、Servlet依赖
struts1.2 Action依赖于Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execut方法。
struts2.0 Action不依赖于容器,允许Action脱离容器单独测试。如果需要,Struts2 Action仍
然可以访问初始的Request和Response。
但是,其他的元素减少或者消除了直接访问HttpServletRequest和HttpServletResponse的必要性。
d、可测性
测试struts1.2 Action的一个主要问题是execute方法暴露了Servlet API(这使得测试要依赖于容器)。一个第三方扩展:struts TestCase
提供了一套struts1.2的模拟对象来进行测试。
Struts2.0 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。
【计算机二级JAVA模拟试题及答案】相关文章:
计算机二级JAVA考试模拟试题及答案04-24
计算机考试二级java模拟试题(含答案)03-11
计算机二级java试题及答案01-27
计算机二级JAVA考试模拟试题05-28
计算机二级考试JAVA模拟试题02-05
计算机二级Java单选模拟试题03-10
计算机二级JAVA全真模拟试题03-07