JAVA习题册

语言基础

JAVA开发环境

1、(单选题)Java编程语言之父是()

A.James Gosling

B.Abigail

C.Brutus

D.以上选项都不对

【正确答案】A

【答案解析】詹姆斯·高斯林 (James Gosling,1955年5月19日-,出生于加拿大),软件专家,Java编程语言的共同创始人之一,一般公认他为“Java之父”。

2、(单选题)Java是从()语言改进重新设计

A.Ada

B.C++

C.Pasacal

D.BASIC

【正确答案】B

【答案解析】ADA: 美国军方为了整合不同语言开发的系统而发明的一种语言,最大的特点是实时性,在ADA95中已加入面向对象内容. Pascal: 为提倡结构化编程而发明的语言,结构化特色非常明显,函数体内允许任意层次的嵌套. BASIC: 为了让大学生简单容易控制电脑开发的语言,特点是简单易懂,且可以用解释和编译两种方法执行.

3、(单选题)在Java中,以下描述错误的是( )

A…class是源文件

B…java是编译前的源文件

C…class是编译后的文件

D.Java程序需编译后方可运行

【正确答案】A

【答案解析】此题目考查的是Java程序的开发过程。Java程序开发需要经过三个步骤:编写(.java)、编译(.class)、运行。编写的源程序为.java后缀的,编译后为.class的字节码文件,因此选项B、C是正确的,A是错误的。Java文件都需要进行编译,编译后的.class文件可以"一次编译、多次运行",即体现了Java的特点"Write Once,Run more"。因此D是正确的选项。

4、(单选题)在控制台运行一个 Java 程序 TestDemo . class ,使用的命令正确的是( )

A.java TestDemo. class

B.javac TestDemo. class

C.java TestDemo

D.javac TestDemo

【正确答案】C

【答案解析】java命令程序执行字节码文件时不能跟文件后缀名 因此C是正确的选项。

5、(多选题)下列哪些选项属于Java技术体系()

A.Java Me

B.Java Se

C.Java EE

D.Java Card

【正确答案】A,B,C,D

【答案解析】Java Card、Java Me、Java Se、Java EE都属于Java技术体系

6、(多选题)下列描述中,哪些符合 Java 语言的特征( )

A.支持跨平台(Windows,Linux,Unix等)

B.GC(自动垃圾回收),提高了代码安全性

C.支持类 C 的指针运算操作

D.不支持与其它语言书写的程序进行通讯

【正确答案】A,B

【答案解析】java语言支持跨平台,没有指针的概念,拥有GC垃圾自动回收机制。

7、(多选题)下列对Java语言的叙述中,正确的是()

A.Java虚拟机解释执行字节码

B.Java的类是对具有相同行为对象的一种抽象

C.Java中的垃圾回收机制是一个系统级的线程

D.JDK的库文件目录是bin

【正确答案】A,B,C

【答案解析】在JDK目录结构中,lib目录下存放的都是库文件,而bin目录下有编译器、解释器和许多工具(如服务器工具、IDL、package工具和jdb等)。

变量

1、(单选题)阅读下列代码; 其运行结果是()

public class Test{
    String s="One World One Dream";
    public static void main(String args[]){
        System.out.println(s); 
    } 
} 

A.args

B.One World One Dream

C.s

D.编译错误

【正确答案】D

【答案解析】main方法是程序执行的入口,在本程序中main方法中的语句"System.out.println(s);"无法调用在main方法外声明的变量,所以编译时出错。

2、(单选题)下列Java代码的运行结果是()。

public class Test {
    public static void main(String[] args) {
        String s = "m"; 
        System.out.println(s+100+200);
        System.out.println(100+200+s);  
    }
}

A.“m100200 300m”

B.“m100200 100200m”

C.“m300 300m”

D.“m300 100200m”

【正确答案】A

【答案解析】此题目考查的是Java中的字符串拼接运算符。 本题中,变量s为字符串类型,所以此时s+100为字符串的拼接,也就是m100,再+200依然是字符串的接拼,所以第一句的输出结果为m100200。 在第二句输出中,100+200做的是算术运算,结果为300,再+s做的是字符串的拼接,所以结果为300m。

3、(单选题)在Java语言中,被称为内存分配的运算符是()

A.()

B.[]

C.new

D.==

【正确答案】C

【答案解析】Java语言中,程序为对象动态分配内存。Java中内存分配的运算符是new。

JAVA基本类型

1、(单选题)能够给一个byte型变量赋值的范围是( )。

A.0~65535

B.(-128)~127

C.(-32, 768)~32, 767

D.(-256)~255

【正确答案】B

【答案解析】Byte的取值范围是(-128)~127。

2、(单选题)java中char类型的取值范围是()

A.0 … 32767

B.0 … 65535

C.–256 … 255

D.–32768 … 32767

【正确答案】B

【答案解析】在java中,char是一个无符号16位类型,取值范围为0到65535。

3、(单选题)java语言中int类型数据占用多少位?( )。

A.32

B.20

C.16

D.64

【正确答案】A

【答案解析】Byte类型占8位short类型占16位Int类型占32位long类型占64位

4、(单选题)存储一个24X24点阵的汉字(每个点1bit),需要多少字节( )

A.24

B.48

C.72

D.144

【正确答案】C

【答案解析】24 * 24 / 8=72。意思是:24*24的结果是二进制位,而八个二进制位等于 一个字节,所以再除以八是所得的字节数。

基本类型间转换

1、(单选题)隐式类型转换是由按优先关系从低到高的顺序,下列描述正确的顺序为( )

A.char-int-long-float-double

B.int-long-float-double-char

C.long-float-int-double-char

D.以上都不对

【正确答案】A

【答案解析】隐式类型转换规则是: byte→short(char)→int→long→float→double

运算符和表达式

1、(单选题)若a为整型变量,a=12,则表达式:a * =2+3的值为

A.12

B.24

C.36

D.60

【正确答案】D

【答案解析】此题的计算结果a=(2+3)*12,即a=60. 因此D选项是正确的选项.

2、(单选题)下列程序的运行结果正确的是

int a = 5; int b = ++a;
System.out.println(“a=+a);
System.out.println(“b=+b);

A.a=5,b=5

B.a=6,b=5

C.a=5,b=6

D.a=6,b=6

【正确答案】D

【答案解析】++和—可以出现操作数的左边也可以是右边,此题++出现在左边,让a先执行自增运算,然后将值赋值给变量b 因此D是正确的选项。

3、(单选题)编译运行以下程序后,关于输出结果的说明正确的是( )

public class Conditional{
    public static void main(String args[]){ 
        int x=4;   
        System.out.println("value is "+ ((x<4) ? 99.9 : 9)); 
    }
}

A.输出结果为:value is 99.99

B.输出结果为:value is 9

C.输出结果为:value is 9.0

D.编译错误

【正确答案】C

【答案解析】三目运算符中:第二个表达式和第三个表达式中如果都为基本数据类型,整个表达式的运算结果由容量高的决定。99.9是double类型而9是int类型, double 容量高。

4、(单选题)以下表达式那个是不合法的()

A.String x=“Hello”; int y=9; x+=y;

B.String x=“Hello”; int y=9; if(x==y) { }

C.String x=“Hello”; int y=9; x=x+y;

D.String x=null; int y=(x!=null)&&(x.length()>0) ? x.length() : 0;

【正确答案】B

【答案解析】java对"+“进行了扩展,不仅可以连接字符串,而且还能将字符串与其它类型数据进行连接,结果是字符串。 若”+“的第一个操作数是字符串,Java会自动将后面的操作数类型转换成字符串类型。 本题选项A中,x+=y即x=x+y,则计算结果x的值为字符串Hello9; 选项C与此类似,故此选项也是正确的; 选项D主要考查的是三目运算符”?:“,即把表达式(x!=null)&&(x.length()>0) ? x.length() : 0的值赋给整型变量y,运行结果y的值是0; 而选项B是因为”=="两边的类型不匹配,无法比较,所以此表达式是错误的。

循环结构

1、(单选题)选择下面代码的运行结果:( )

public class Test{ 
    public void method(){    
        for(int i = 0; i &lt; 3; i++){     
            System.out.print(i);    
        }  
        System.out.print(i);  
    } 
}

A.0122

B.0123

C.编译错误

D.没有任何输出

【正确答案】C

【答案解析】i变量的作用范围是整个for循环中。

数组

1、(单选题)对记录序列{314,298,508,123,486,145}按从小到大的顺序进行插入排 序,经过两趟排序后的结果为()

A.{314,298,508,123,145,486}

B.{298,314,508,123,486,145}

C.{298,123,314,508,486,145}

D.{123、298,314,508,486,145}

【正确答案】B

【答案解析】此题为插入排序算法,代码如下:

public static void injectionSort(int[] number) { 
 // 第一个元素作为一部分,对后面的部分进行循环 
 for (int j = 1; j < number.length; j++){
     int tmp = number[j];
     int i = j - 1; 
     while (tmp < number[i]) {
         number[i + 1] = number[i];
         i--;
         if (i == -1) break;
     } 
     number[i + 1] = tmp; 
 }
}

2、(多选题)下列说法错误的有()

A.数组是一种对象

B.数组属于一种原生类

C.int number=[]={31,23,33,43,35,63}

D.数组的大小可以任意改变

【正确答案】B,C,D

【答案解析】数组不是原生类:int double boolean float byte short long char ,初始化多大就是多大

方法

1、(单选题)关于 Java 类中带参数的方法,下列选项中说法错误的是

A.使用带参数的方法分为两步:定义带参数的方法,调用带参数的方法

B.带参数方法的返回值不能为 void

C.带参数方法的参数个数可以为一个或多个

D.带参数方法的参数可以是任意的基本类型数据或引用类型数据

【正确答案】B

【答案解析】带参数方法的返回值可以为 void 因此B是正确的选项。

面向对象

对象和类

1、(单选题)请问,以下哪些修饰符不能用于顶层类?

A.public

B.private

C.abstract

D.final

【正确答案】B

【答案解析】对于顶层类(外部类)来说,只有两种修饰符:public和默认(default)。 因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。 因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。 但是private可以修饰class的,只不过该类不能使顶层类,可以是内部类 内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(private),同包(default),父子类(protected),任何位置(public)。 当一个内部类使用了private修饰后,只能在该类的外部类内部使用

2、(多选题)下列说法错误的有( )

A.在类方法中可用 this 来调用本类的类方法

B.在类方法中调用本类的类方法时可直接调用

C.在类方法中只能调用本类中的类方法

D.在类方法中绝对不能调用实例方法

【正确答案】A,C,D

【答案解析】A在类方法中不能使用 this 关键字。C在类方法中可以调用其它类中的类方法。D在类方法中可以通过实例化对象调用实例方法。

3、(多选题)下面选项中哪两个可以在 A 的子类中使用( )

class A { 
    protected int method1 (int a, int b) {  
        return 0; 
    }
}

A.public int method1(int a, int b) { return 0; }

B.private int method1(int a, int b) { return 0; }

C.private int method1(int a, long b) { return 0; }

D.public short method1(int a, int b) { return 0; }

【正确答案】A,C

【答案解析】B子类重写父类的方法,访问权限不能降低;C属于重载;D子类重写父类的方法如果返回值类型是基本类型的话,要求相同。

JAVA内存管理

1、(单选题)栈是一种( )

A.存取受限的线性结构

B.存取不受限的线性结构

C.存取受限的非线性结构

D.存取不受限的非线性结构

【正确答案】A

【答案解析】栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。

2、(单选题)在Java语言中,被称为内存分配的运算符是()

A.new

B.instance of

C.[]

D.()

【正确答案】A

【答案解析】Java语言中,程序为对象动态分配内存。Java中内存分配的运算符是new。

3、(单选题)下列哪些语句关于内存回收的说明是正确的( )

A.程序员必须创建一个线程来释放内存

B.内存回收程序负责释放无用内存

C.内存回收程序允许程序员直接释放内存

D.内存回收程序可以在指定的时间释放内存对象

【正确答案】B

【答案解析】垃圾收集器在一个 Java 程序中的执行是自动的,不能强制执行,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。程序员唯一能做的就是通过调用 System.gc()方法来"建议"垃圾收集器去进行垃圾回收处理,但其是否可以执行,什么时候执行却都是不可知的。

继承

1、(单选题)下列代码执行的结果是()。

class Base {  
    void test() { 
        System.out.print("Base.test()"); 
    } 
} 
class Child extends Base { 
    void test() { 
        System.out.print("Child.test()"); 
    }  
    static public void main(String[] a) { 
        Child anObj = new Child(); 
        Base baseObj = (Base)anObj;  
        baseObj.test();
    }
}

A.Child.test()Base.test()

B.Base.test()Child.test()

C.Base.test()

D.Child.test()

【正确答案】D

【答案解析】测试代码相当于:Base baseObj = new Child();父类的引用指向子类的实例,子类又重写了父类 的 test() 方法,因此调用的是子类的 test() 方法。

2、(单选题)Java语言中,使用关键字那个对当前对象的父类对象进行引用()

A.super

B.this

C.new

D.extends

【正确答案】A

【答案解析】当子类隐藏了父类的变量,并重写了父类方法后,又要使用父类变量或父类被重写的方法时,可通过super来实现对父类变量的访问和对父类方法的调用。super是用来引用当前对象的父类。

3、(单选题)下述代码的执行结果是( )

class Super {  
    public int getLength() {
        return 4;  
    }
}
public class Sub extends Super {
    public long getLength() { 
        return 5;  
    } 
    public static void main (String[] args) { 
        Super sooper = new Super ();  
        Super sub = new Sub();  
        System.out.println(sooper.getLength() + "," + sub.getLength()); 
    }		
}

A.4,4

B.4,5

C.5,4

D.代码不能被编译

【正确答案】D

【答案解析】方法重写返回值类型如果是基本类型应与父类的一致

4、(多选题)下面选项中哪两个可以在 A 的子类中使用( )

class A {  
    protected int method1 (int a, int b) { 
        return 0; 
    } 
}

A.public int method1(int a, int b) { return 0; }

B.private int method1(int a, int b) { return 0; }

C.private int method1(int a, long b) { return 0; }

D.public short method1(int a, int b) { return 0; }

【正确答案】A,C

【答案解析】B子类重写父类的方法,访问权限不能降低;C属于重载;D子类重写父类的方法如果返回值类型是基本类型的话,要求相同。

访问控制

1、(单选题)给出如下代码:

class Test{
    private int m;
    public static void fun() {   
        //some code?
    } 
}

如何使成员变量m可以被函数fun()直接访问( )

A.将private int m改为protected int m

B.将private int m改为public int m

C.将private int m改为static int m

D.将private int m改为int m

【正确答案】C

【答案解析】静态方法中可以直接调用使用其外部的静态成员

抽象类

1、(单选题)关于抽象方法说法正确的是( )

A.不可以是静态的

B.可以有方法体

C.可以在普通类中定义

D.只能存在于抽象类中

【正确答案】A

【答案解析】抽象方法不可以是静态的,不可以有方法体,不可以在普通类中定义,可以在接口中和抽象类中定义。

2、(单选题)下列关于修饰符混用的说法,错误的是( )

A.abstract 不能与 final 并列修饰同一个类

B.abstract 类中可以有 private 的成员

C.abstract 方法可以放在 abstract 类或接口中

D.static 方法中能直接使用非 static 的属性

【正确答案】D

【答案解析】静态方法中不能引用其外部的非静态成员

3、(单选题)已知类 Teacher 和 Student 都是类 Person 的子类,则对于下列代码说法正确的是( )

Person t = new Teacher(); 
if (t instanceof Teacher){	
    Student s = (Student)t; 
}

A.将构造一个 Student 对象

B.将构造一个 Teacher 对象

C.编译出错,且运行时出错

D.编译正确,且运行时出错

接口

1、(单选题)下列关于 interface 的说法正确的是( )

A.interface 中可以有 private 方法

B.interface 中可以有 final 方法

C.interface 中可以有 function 实现

D.interface 可以继承其他 interface

【正确答案】D

【答案解析】A. 接口中不可以有 private 的方法。B.接口中不可以有 final 的方法 接口中的方法默认是 public abstract 的。C.接口中的方法不可以有实现

2、(单选题)下列概念中不包括任何实现,与存储空间没有任何关系的是()

A.类

B.接口

C.抽象类

D.对象

【正确答案】B

【答案解析】接口是一种只含有抽象方法或常量的一种特殊的抽象类,因为接口不包括任何实现,所以与存储空间没有任何关系。

3、(多选题)不能用来修饰 interface 的有( )

A.private

B.public

C.protected

D.static

【正确答案】A,C,D

【答案解析】修饰接口可以是public和默认

4、(多选题)以下哪个选项可以替换第2行位置的代码,且替换后效果相同()

public interface Foo{ 
    int k = 4; 
}

A.final int k = 4;

B.public int k = 4;

C.static int k = 4;

D.abstract int k = 4;

【正确答案】A,B,C

【答案解析】接口中的属性都是常量,默认由public static final同时修饰,可以省略,abstract不能修饰变量

核心API

注释

1、(多选题)下列文档注释规范说明正确的是

A.@author Lee Boynton代表作者

B.@version 1.2.1代表版本号

C.@see import java.util.Arrays;代表参见

D.@since JDK1.8 代表JDK版本

【正确答案】A,B,C,D

【答案解析】此题目考查的是文档注释的规范,以上选项均正确 因此ABCD是正确的选项。

2、(多选题)有关javadoc命令生成文档叙述正确的是

A.如果是一个包命令为javadoc –d docDir nameOfPackage

B.如果是一个包命令为javadoc –d docDir nameOfPackages

C.如果文件在默认包中命令为javadoc –d docDir *.java

D.如果文件在默认包中命令为javadoc –d docDir *.javac

【正确答案】A,C

【答案解析】此题目考查的是javadoc命令生成文档的了解,BD语法错误,AC均正确 因此AC是正确的选项。

字符串操作

1、(单选题)以下代码的输出结果是()

public class Test {  
    public static void main(String[] args) { 
        String str = NULL; 
        System.out.println(str);  
    } 
}

A.NULL

B.代码不能通过编译

C.没有输出结果

D.运行时出错

【正确答案】B

【答案解析】String类型变量取值应为小写null或其他用""双引号括起来的内容

2、(单选题)下面代码的运行结果为:()

public class foo{    
    public static void main (String[] args){   
        String s;      
        System.out.println("s=" + s); 
    } 
}

A.代码得到编译,并输出“s=”

B.代码得到编译,并输出“s=null”

C.由于String s没有初始化,代码不能编译通过

D.代码得到编译,但捕获到 NullPointException异常

【正确答案】C

【答案解析】Java中所有定义的基本类型或对象都必须初始化才能输出值。

3、(单选题)以下程序运行结果是()

public class foo { 
    static String s;
    public static void main (String[]args) {  
        System.out.println ("s=" + s);  
    }
}

A.输出结果为"s="

B.输出结果为"s=null"

C.编译出错,因为 s 没有初始化。

D.编译出错,因为 s 没有被定义。

【正确答案】B

【答案解析】String 为引用数据类型,引用类型数据成员的默认值为 null

Object

1、(多选题)以下关于hashCode说法正确的是( )

A.两个对象如果hashCode值不同,则两个对象可能相同。

B.两个对象如果hashCode值相同,则两个对象必定相同。

C.两个对象如果hashCode值相同,则两个对象可能相同。

D.两个对象如果hashCode值不同,则两个对象必定不同。

【正确答案】C,D

【答案解析】先通过 hashcode 来判断某个对象是否存放某个桶里,但这个桶里可能有很多对象,那么我们就需要再通过 equals 来在这个桶里找到我们要的对象。

包装类

1、(单选题)下面代码的执行结果是( )

import java.util.*; 
public class ShortSet{
    public static void main(String args[]){ 
        Set&lt;Short&gt; 
        s=new HashSet&lt;Short&gt;();    
        for(Short i=0;i&lt;100;i++) { 
            s.add(i);   
            s.remove(i-1);  
        }    
        System.out.println(s.size()); 
    }
}

A.1

B.100

C.Throws Exception.

D.None of the Above.

【正确答案】B

【答案解析】i是Short类型i-1是int类型,其包装类为 Integer,所以s.remove(i-1);不能移除Set集合中Shor类型对象。

集合框架

1、(单选题)请选出下列正确的答案( )

import java.util.*; 
public class WrappedString {
    private String s; 
    public WrappedString(String s) {
        this.s = s;
    } 
    public static void main(String[] args) {
        HashSet&lt;Object&gt;
        hs = new HashSet&lt;Object&gt;();
        WrappedString ws1 = new WrappedString("aardvark"); 
        WrappedString ws2 = new WrappedString("aardvark");
        String s1 = new String("aardvark");
        String s2 = new String("aardvark"); 
        hs.add(ws1); hs.add(ws2); hs.add(s1); hs.add(s2); 
        System.out.println(hs.size());
    }
}

A.1

B.4

C.2

D.3

【正确答案】D

【答案解析】HashSet集合里面存储的元素是无序的且不重复的,本题中的是s1和s2两个对象在底层判断时返回的相关信息被视为相同元素,所以最终结果集合中值有3个元素。

2、(单选题)下面哪个是链式存储并快速顺序(不需要随机访问)访问的集合类型( )

A.java.util.LinkedList

B.java.util.Queue

C.java.util.ArrayList

D.java.util.LinearList

【正确答案】B

【答案解析】请参考集合队列的结构特点及元素的存取

Map

1、(单选题)HashSet子类依靠( )方法区分重复元素。

A.toString(),equals()

B.clone(),equals()

C.hashCode(),equals()

D.getClass(),clone()

【正确答案】C

【答案解析】HashSet内部使用Map保存数据,即将HashSet的数据作为Map的key值保存,这也是HashSet中元素不能重复的原因。而Map中保存key值前,会去判断当前Map中是否含有该key对象,内部是先通过key的hashCode,确定有相同的hashCode之后,再通过equals方法判断是否相同。

File

1、(单选题)在Java中,"目录"被看作是()

A.文件

B.流

C.数据

D.接口

【正确答案】A

【答案解析】目录在Java中作为一种特殊文件,即文件名的列表,通过类File所提供的方法,可得到文件或目录的描述信息(包括名字、路径、长度、可读、可写等),也可以生成新文件、目录、修改文件和目录,查询文件属性,重命名文件或者删除文件。

RandomAccessFile

1、(单选题)RandomAccessFile是java.io包中的一个兼有输入输出功能的类。以下说法正确的是()

A.可以选择文件中的任意位置开始操作

B.必须从文件中的终止位置开始操作

C.必须从文件中的起始位置开始操作

D.必须从文件中的某个固定位置开始操作

【正确答案】A

【答案解析】文件操作中经常需要的是随机访问,Java中的RandomAccessFile类提供了随意访问文件的功能,它继承了Object类,用DataInput和DataOutput接口来实现。接口中定义了从流中读/写基本类型的数据方法,因此也可以随意读/写数据文件的记录。

I/O

1、(单选题)计算机中的流是()

A.流动的字节

B.流动的对象

C.流动的文件

D.流动的数据缓冲区

【正确答案】D

【答案解析】流,最早从C语言中引入的。其可以看成是一个流动的数据缓冲区。数据从数据源方向经过缓冲区流向数据的目的地。在传送的过程中,其传送方式是串行的。在Java中的java.io包中定义了Java中常见流的接口与类。其中包括两个最基本的流的抽象类,它们分别是OutputStream与InputStream。其余的流都分别从这两个基本类中继承而来。

2、(单选题)Java I/O 程序设计中,下列描述正确的是( )

A.OutputStream用于写操作

B.InputStream用于写操作

C.I/O库不支持对文件可读可写API

D.InputStream是一个接口

【正确答案】A

【答案解析】B. InputStream用于读操作; C. I/O支持对文件的读写; D. InputStream是一个抽象类。

3、(单选题)FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型( )

A.OutputStream

B.File

C.InputStream

D.BufferedOutputStream

【正确答案】A

【答案解析】请参考api文档手册

4、(单选题)下面哪个流类属于面向字符的输入流( )

A.ByteArrayInputStream

B.FileInputStream

C.ObjectInputStream

D.InputStreamReader

【正确答案】D

【答案解析】A、B、C 3个都是字节流

异常处理

2、(单选题)下面关于java.lang.Exception类的说法正确的是()

A.继承自Throwable

B.继承自Serialable

C.继承自Error

D.以上说法均不正确

【正确答案】A

【答案解析】Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承 Throwable,RuntimeException和其它的Exception等继承Exception。

2、(单选题)下列哪种异常是检查型异常,需要在编写程序时声明( )

A.NullPointerException

B.ClassCastException

C.FileNotFoundException

D.IndexOutOfBoundsException

【正确答案】C

【答案解析】A、B、D 3个异常都属于运行时异常

3、(多选题)final、finally、finalize三个关键字的区别是()

A.final是修饰符(关键字)可以修饰类、方法、变量

B.finally在异常处理的时候使用,提供finally块来执行任何清除操作

C.finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做必要的清理工作

D.finally和finalize一样都是用异常处理的方法

【正确答案】A,B,C

【答案解析】finally是关键字不是方法

线程

1、(单选题)下列哪种异常是检查型异常,需要在编写程序时声明( )

A.NullPointerException

B.ClassCastException

C.FileNotFoundException

D.IndexOutOfBoundsException

【正确答案】C

【答案解析】A、B、D 3个异常都属于运行时异常

2、(单选题)请选择正确的一项( )

public class Threads3 implements Runnable { 
    public void run() {  
        System.out.print("running");  
    }   
    public static void main(String[] args) { 
        Thread t = new Thread(new Threads3());  
        t.run();   
        t.run();  
        t.start();  
    }   
}

A.The code executes and prints “runningrunning”.

B.The code executes and prints “runningrunningrunning”.

C.The code executes and prints “running”.

D.An exception is thrown at runtime.

【正确答案】B

【答案解析】在执行t.start();之前所执行的两个t.run();只是单纯的通过虚拟机进行调用该方法,t.start();执行后会将该线程置于就绪状态,等待系统分配时间片段给该线程去执行线程任务。

3、(单选题)以下哪个方法用于定义线程的执行体( )

A.start()

B.init()

C.run()

D.main()

【正确答案】C

【答案解析】run 方法是线程的执行体

4、(单选题)关于 sleep()和 wait(),以下描述错误的一项是( )

A.sleep 是线程类(Thread)的方法,wait 是 Object 类的方法

B.sleep 不释放对象锁,wait 放弃对象锁

C.sleep 暂停线程、但监控状态仍然保持,结束后会自动恢复

D.wait 后进入等待锁定池,只有针对此对象发出 notify 方法后获得对象锁进入运行状态

【正确答案】D

【答案解析】sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控 状态依然保持,到时后会自动恢复。调用 sleep 不会释放对象锁。 wait 是 Object 类的方法,对此对象调用 wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出 notify 方法(或 notifyAll)后本线程才进入对象锁定池准备获得对 象锁进入运行状态。

5、(单选题)代码执行后输出的结果是( )

public class Z{ 
    public static void main(String[] args){  
        new Z();
    }  
    Z(){
        Z alias1 = this;  
        Z alias2 = this;  
        synchronized (alias1){ 
            try{    
                alias2.wait();     
                System.out.println("DONE WAITING");     
            } catch (InterruptedException e) {   
                System.out.println("IN TEEEUPTED");   
            } catch (Exception e) {  
                System.out.println("OTHER EXCEPTION");  
            } finally {      
                System.out.println("FINALLY"); 
            }  
        } 
        System.out.println("ALL DONE");
    } 
}

A.The application compiles but doesn’t print anything.

B.The application compiles and print “DONE WAITING”.

C.The application compiles and print “FINALLY”.

D.The application compiles and print “ALL DONE”.

【正确答案】A

【答案解析】wait方法和sleep方法很类似,都是处于等待状态,但是不同的是,wait方法执行后会释放锁对象,所以此段代码中wait方法后面的语句不会被执行,而是一直处于等待状态中。

6、(多选题)有关线程的哪些叙述是对的( )

A.一旦一个线程被创建,它就立即开始运行。

B.使用 start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

C.当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

D.一个线程可能因为不同的原因停止并进入就绪状态。

【正确答案】B,D

【答案解析】线程被创建后不可能立即开始运行。 不同优先级的线程间是抢先式的,同级线程间是轮转式的。 即使线程因为抢先而停止也不一定就进入可运行队列的前面。 而同级线程是轮换式的,它的运行可能就是因为轮换,而它因抢占而停止后只能在轮换队列中排队而不能排在前面。

XML解析

1、(单选题)XML的命名规则中说法正确的是( )

A.可以包含字母、数字、以及其他字符

B.名字可以任何字母、数字或符号开始

C.名字没有任何限制

D.以上均不正确

【正确答案】A

【答案解析】XML 元素必须遵循以下命名规则: 名称可以含字母、数字以及其他的字符; 名称不能以数字或者标点符号开始; 名称不能以字符 “xml”(或者 XML、Xml)开始; 名称不能包含空格; 可使用任何名称,没有保留的字词。

2、(单选题)下列可以解析XML的有( )

A.CSS

B.DTD

C.SAX

D.XSL

【正确答案】C

【答案解析】java 解析 xml 文件四种方式:SAX、DOM、JDOM、DOM4J

3、(单选题)

<?xml version="1.0" encoding="GB2312"?>; 
<!ELEMENT Customer EMPTY>
<!ATTLIST Customer 
称呼 CDATA #IMPLIED
姓名 CDATA #REQUIRED
职位 CDATA #REQUIRED>

关于上述DTD 定义的描述正确的是( )

A.Customer 元素能包含子元素,并且能为空

B.Customer 元素能包含文本,并且能为空

C.Customer 元素不能包含文本,也不能包含子元素

D.Customer 元素的所有实例的“称呼”属性必须有值,不能为空

【正确答案】C

【答案解析】EMPTY 表示元素不能包含文本,也不能包含子元素; #IMPLIED 属性可以没有值; #REQUIRED 属性必须有值。

4、(单选题)Schema与DTD的相同之处有( )

A.基于XML语法

B.支持命名空间

C.可扩展

D.对XML文档结构进行验证

【正确答案】D

【答案解析】DTD不遵循XML语法 DTD不支持命名空间 DTD不可扩展

5、(多选题)在XML中,下列关于DOM的叙述是正确的( )

A.DOM是独立于开发语言和平台的,因此使用Visnal Basic、Java、Visual C++等开发工具使用的DOM编程API是一致的

B.XML文档通过load方法被装载进内存后,在内存中形成一个DOM文档对象模型树

C.通过DOM API,软件开发人员可以控制XML文档的结构和内容

D.通过DOM在XML文档中只能按照顺序方式导航

【正确答案】A,B,C

【答案解析】选项D错误 SAX解析文档需要按照顺序 DOM可以随意

6、(多选题)以下说法符合xml语法规则的是( )

A.标记头和标记末的大小写一致

B.元素之间要正确的嵌套

C.结束标记可有可无

D.每个XML文档只能有一个根元素

【正确答案】A,B,D

【答案解析】XML语法规则: 必须有XML声明语句; 是否有DTD文件; 注意大小写; 给属性值加引号; 所有的标识必须有相应的结束标识; 所有的空标识也必须被关闭。

7、(多选题)以下声明正确的是( )

A.

B.<?xml-stylesheet type='txt/css' href='abc.css'?>

C.<?xml-stylesheet type="txt/css" href="abc.css"?>

D.<%xml-stylesheet type=“txt/css” href=“abc.css”%>

【正确答案】B,C

【答案解析】单引号,双引号都可以使用在属性上。

8、(多选题)下列选项中,哪一个是预定义实体?( )

A.<

B.&left

C.>

D.&right;

【正确答案】A,C

【答案解析】表示>号

进制

1、(单选题)在位运算中,操作数每右移一位,其结果相当于()

A.操作数乘以2

B.操作数除以2

C.操作数除以4

D.操作数乘以4

【正确答案】B

【答案解析】二进制数左移一位相当于数位上的数值乘以2,右移一位相当于数位上的数值除以2,因此B正确。

2、(单选题)在位运算中,操作数每左移一位,其结果相当于()

A.操作数乘以2

B.操作数除以2

C.操作数除以4

D.操作数乘以4

【正确答案】A

【答案解析】二进制数左移一位相当于数位上的数值乘以2,右移一位相当于数位上的数值除以2,因此A正确。

3、(单选题)若x=2,y=3则x&y的结果是()

A.0

B.2

C.3

D.5

【正确答案】B

【答案解析】2对应的二进制为10,3对应的二进制为11,&运算的规则是数位都为1则是1,只要有一个数的当前数位是0则结果为0,所以 2&3 == 10 & 11 ,则对应的结果为10,转换成十进制就是数字2,因此B正确。

4、(单选题)下列四个不同进制的数中,最大的是()

A.二进制数0100 1111

B.八进制数120

C.十六进制数4F

D.十进制数79

【正确答案】B

【答案解析】本题中比较各种进制数值大小可以都先转成十进制进行比较比较直观 A选项二进制0100 1111计算为00+164+00+00+18+14+12+11=79(十) B选项八进制120计算为164+28+0*0=80(十) C选项十六进制4F可以先转为二进制数 4(十六)对应0100(二) F(十六)对应1111(二) 即0100 1111(二) 计算过程与结果与A选项结果相同 D选项结果就是79 所以ACD结果都是79 B选项结果为80 故答案为B

5、(单选题)二进制数1001 0010对应的八进制数是()

A.146

B.222

C.116

D.以上都不对

【正确答案】B

【答案解析】八进制转二进制只需要从低位到高位顺序每3位分为一组 然后将每组的十进制数算出 再将所有十进制数按顺序拼接起来即可 因为八进制数每一位的最大值为7 永远不会出现大于7的数字 而4位二进制数的最大值也为7 最高位是0 所以可以使用3位二进制数算出1位八进制数 所以本题中二进制数1001 0010被分为3位一组的话结果是 010 010 010 最高位的0是为了达到3位一组的效果而加上去的 也可以不加 这样分组后每组对应的十进制数分别为2 2 2 所以八进制数就是222 故答案B正确

6、(单选题)阅读下列代码 :

public class Test{
    public static void main(String args[]){ 
        System.out.println(89 &gt;&gt;1)} 
}  

其运行结果是 ()

A.44

B.45

C.88

D.90

【正确答案】A

【答案解析】89>>1相当于89X(1/2)取整。

7、(单选题)十六进制数7F对应的十进制数是多少()

A.128

B.-128

C.127

D.-127

【正确答案】C

【答案解析】十六进制数7F可以先转为对应的二进制数 即7(十六)对应0111(二) F(十六)对应1111(二) 所以4F(十六)对应0111 1111(二) 再转为十进制计算为 0128+164+132+116+18+14+12+11=127 所以答案选C

8、(单选题)二进制数(0001 1011)转成十进制数是()

A.25

B.26

C.27

D.28

【正确答案】C

【答案解析】二进制数是用0和1表示的一组数字,二进制数每一位实际代表的数是当前位上的数字乘以当前位的位权,每一位的位权是2的n次幂,n是数字是从右往左数第几位,计数的时候是从0开始数。所以24+23+21+20=16+8+2+1=27,所以C正确。

9、(单选题)计算二进制1100^1010的结果是()

A.1000

B.1110

C.0110

D.0000

【正确答案】C

【答案解析】^属于二进制位运算符 代表异或的意思 运算时两个二进制数对应位的数不同时结果为1 否则为0 所以1100^1010的结果应该是0110 所以答案C正确

10、(单选题)关于运算符>>和>>>描述正确的是( )

A.>>执行移动

B.>>执行翻转

C.>>执行有符号右移,>>>>执行无符号右移

D.>>执行无符号右移,>>>执行有符号右移

【正确答案】C

【答案解析】java中,>>为有符号右移,>>>为无符号右移,<<为有符号左移,不存在无符号左移运算符。

11、(单选题)二进制数(0011 1101)转换成十六进制数是()

A.3C

B.3D

C.E1

D.F1

【正确答案】B

【答案解析】十六进制是由4位二进制组成的,进制的转换是不影响数制的,因此转换的时候应该是把二进制数从右往左来计算,每4位来组合成一个十六进制数,每4位数字都按照8421的格式编码,然后累加求和就是对应的十六进制数,因此,二进制数划分为:11 1101,前两位按照8421排码加和为2+1=3,后四位按照8421排码加和为8+4+1=13=D,组合在一起就是3D,因此B正确。

12、(单选题)十进制数23转换成二进制数是()

A.0001 0011

B.0001 0101

C.0001 0111

D.0001 1011

【正确答案】C

【答案解析】十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。按此方式所得结果为C正确。

13、(单选题)-80转换成二进制的结果是:()

A.1011 0000

B.0101 0000

C.1101 0001

D.1010 1111

【正确答案】A

【答案解析】负数的二进制转换的时候先认定是负数,因此转换为的二进制数的最高位是1。然后按正数的大小转换为二进制,再然后按位取反,接着二进制末位加1,最后因为是负数,因此最高位应该是1,检查是否正确。所得的结果即为负数的二进制结果。按这个规则计算,则选项A正确。

14、(单选题)十六进制数4F转换成二进制数是()

A.0100 1111

B.0101 1011

C.0101 0111

D.0101 1110

【正确答案】A

【答案解析】每位十六进制数是需要四位二进制数来表示,因此四位二进制则是对应一位十六进制数,因此A正确。

15、(单选题)计算~36的十进制结果是()

A.36

B.-36

C.37

D.-37

【正确答案】D

【答案解析】~属于二进制位运算符 代表非的意思 计算方法为将每一位上0变为1 1变为0 本题中要计算的是十进制数36的非运算值 首先先将36(十)转为0010 0100(二) 然后进行运算得到结果1101 1011(二) 然后再将此二进制数转为十进制 由于我们这里计算的是8位二进制数 最高位为第8位 此时最高位数字为1 是一个负数 要想算出十进制负数的值可以进行取反+1运算先算出对应的十进制正数的值 即1101 1011取反+1后变为 0010 0101 则对应的十进制数为37 所以最终~36的结果应该是-37 答案为D

16、(单选题)每四位二进制数可用()位十六进制数表示

A.1

B.2

C.3

D.4

【正确答案】A

【答案解析】每位十六进制数是需要四位二进制数来表示,因此四位二进制则是对应一位十六进制数,因此A正确。

17、(单选题)存储一个24X24点阵的汉字(每个点1bit),需要多少字节( )

A.24

B.48

C.72

D.144

【正确答案】C

【答案解析】2424/8=72。意思是:2424的结果是二进制位,而八个二进制位等于 一个字节,所以再除以八是所得的字节数。

18、(单选题)八进制数0176对应的十进制数是()

A.176

B.78

C.112

D.126

【正确答案】D

【答案解析】本题中给出的是八进制数 由高到低各位对应的权值为8的i次幂 i值由高到低各位的值为3 2 1 0 所以八进制权值由高到低各位为512 64 8 1 所以0176(八)转为十进制数计算为 0512+164+78+61=126 故答案为D

19、(多选题)已知如下代码片段: 1. public class test { 2. public static void main (String args[]) { 3. int i = 0xFFFFFFF1; 4. int j = ~i; 5. 6. } 7.} 当程序运行到第5行时, i 和 j 的值分别为多少( )

A.–15

B.0

C.1

D.14

【正确答案】A,D

【答案解析】0xFFFFFFF1为十六进制数,其转为二进制数为 11111111 11111111 11111111 11110001 , 所对应的十进制数为-15 , "~"符号为取反操作,即将0、1对换,结果为 00000000 00000000 00000000 00001110 , 该二进制数转为十进制数结果为14 。

api

1、(多选题)下列代码中,哪一项可以编译通过且正常运行出结果( )

A.int foo = (int) Math.max(bar);

B.int foo = (int) Math.min(bar);

C.int foo = (int) Math.abs(bar);

D.int foo = (int) Math.ceil(bar);

【正确答案】C,D

【答案解析】A B 两个选项方法使用错误,都是两个参数。 abs 方法是取 bar 的绝对值, ceil 方法返回大于或者等于指定表达式的最小整数,即向上取整,本题中该值大于等于参数 bar。 例如: Math.ceil(5.6) //6 Math.ceil(-5.6) //-5

数据库

数据库原理

1、(单选题)数据库DB,数据库系统DBS,和数据库管理系统DBMS三者之间的关系是()

A.DBS包含DB和DBMS

B.DBMS包含DB和DBS

C.DB包含DBS和DBMS

D.DBS就是DB,也就是DBMS

【正确答案】A

【答案解析】此题目考查的是 DBS包含DB和DBMS DBS(DataBase System):数据库系统,是采用了数据库技术的计算机系统,是一个实际可运行的、按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件和软件,以及数据库管理员的集合体。 DB(DataBase): 数据库,数据库实际上就是一个文件集合,本质就是一个文件系统,数据按照特定的格式存储到文件中,使用sql语言对数据进行增删改查操作。 DBMS(DataBase Management System):数据库管理系统,是指数据库系统中对数据进行管理的软件系统,用于建立,使用和维护数据库,对数据进行统一的管理和控制,用户通过DBMS访问数据库中的数据。 选项A正确。

MYSQL数据类型

1、(单选题)已知一张表中的’姓名’列被定义为name varchar(10),则以下说法正确的是()

A.也可以定义为char(10),二者没有区别

B.如果存放中文字符最多可以存放5个

C.如果存放中文字符最多可以存放10个

D.如果输入字符长度短于10字节时用空白字符填满

【正确答案】B

【答案解析】此题目考查的是 数据库数据类型–字符串 char(m): m代表显示长度,长度不可变 varchar(m): 长度是可变的 一个中文占两个字节 不是必须插入5个中文或10个英文 选项B正确。

DDL

1、(单选题)在Oracle中,删除表Student中的所有数据,可以使用的Sql是()。

A.DROP TABLE Student

B.DELETE FROM Student

C.DELETE * FROM Student

D.DROP * FROM Student

【正确答案】B

【答案解析】drop会将表结构一并删除,且删除表数据不可以使用*号

2、(单选题)SQL语言又称为()

A.结构化定义语言

B.结构化控制语言

C.结构化查询语言

D.结构化操纵语言

【正确答案】C

【答案解析】SQL语言又称为结构化查询语言

3、(单选题)SQL 语言中修改表结构的命令是( )

A.MODIFY TABLE

B.MODIFY STRUCTURE

C.ALTER TABLE

D.ALTER STRUCTURE

【正确答案】C

【答案解析】修改表结构使用alter命令

4、(多选题)delete 和 truncate 都可以用来删除表内容,以下描述正确的是( )

A.truncate 不需要 rollback segment

B.delete 需要 rollback segment

C.truncate 在提交 commit 之前仍可回滚

D.truncate 还可以删除表结构

【正确答案】A,B

【答案解析】TRUNCATE TABLE 语句:删除表中所有的数据并且释放表的存储空间,可以使用 DELETE 语句删除数据, DELETE 产生 rollback segment, 如果删除大数据量的表速度会很慢,同时会占用很多的 rollback segment 。 TRUNCATE 是 DDL 操作,不产生 rollback segment,速度快一些。

5、(单选题)以下能够删除一列的是()

A.alter table tableName remove columnName;

B.alter table tableName drop columnName;

C.alter table tableName from columnName;

D.alter table tableName delete columnName;

【正确答案】B

【答案解析】此题目考查的是 DDL 数据定义语言, 表的修改 删除表的字段 格式为: alter table 表名 drop 字段名; 选项B正确。

DML

1、(单选题)有如下 SQL 片段:

 delete from asdfh a where a.kaihrq &gt; '20091214' and a.jiluzt &lt;&gt; '1'; 

其含义为( )

A.从表 asdfh 中删除 kaihrq 大于 2009 年 12 月 14 日,且 jiluzt 不为 1 的记录

B.从表 asdfh 中删除 kaihrq 和 jiluzt 列

C.对表 asdfh 中删除 kaihrq 大于 2009 年 12 月 14 日,且 jiluzt 不为 1 的记录做一个删除标记

D.以上都不正确

【正确答案】C

【答案解析】提交或回滚前的数据状态改变前的数据状态是可以恢复的 执行 DML 操作的用户可以通过 SELECT 语句查询之前的修正 其他会话不能看到当前用户所做的改变,直到当前会话结束事务。 DML 语句所涉及到的行被锁定, 其他会话不能操作。

字符串操作

1、(单选题)select 语句中用来连接字符串的符号是( )

A.“+”

B.“&”

C.“||”

D.“|”

【正确答案】C

【答案解析】Oracle中连接字符串使用"||"符号

空值操作

1、(单选题)试图用下面句子查询数据:SELECT 100/NVL(quantity, 0) FROM inventory; 为何 QUANTITY 为 null 空值时,将导致出错( )

A.表达式企图被空值除

B.换函数参数数据类型不一致

C.空值不能被转成实际值

D.表达式企图被零除

【正确答案】D

【答案解析】nvl(表达式1,表达式2)这个函数的作用是如果表达式1的值为null,那么取表达式2的值。

SQL基础查询

7、(单选题)表(TEACHER)包含以下列:

ID NUMBER(7) PK  SALARY NUMBER(7,2)  SUBJECT_ID NUMBER(7) 
-- 判断以下两个 SQL 语句: 1SELECT ROUND(SUM(salary),-2) FROM teacher ;2SELECT subject_id, ROUND(SUM(salary),-2) FROM teacher GROUP BY subject_id 

有什么不同结果( )

A.语句 1 将返回每个老师一个结果

B.语句 2 将返回多个结果

C.结果相同,显示不同

D.将有一个句子产生错误

【正确答案】B

【答案解析】语句 1 会返回一个结果,就是所有老师的工资和,使用了四舍五入函数,语句 2 是按照 subject_id 进行分组,那么分几组就会有几个结果

SQL关联查询

1、(单选题)只有满足联接条件的记录才包含在查询结果中,这种联接为( )

A.左联接

B.右联接

C.内部联接

D.完全联接

【正确答案】C

【答案解析】内连接 :内连接查询操作列出与连接条件匹配的数据行 外连接:返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左连接)、右表(右 连接)或两个边接表(全外连接)中的所有数据行。

SQL高级查询

1、(单选题)下列哪个集合操作符返回两个查询所选择的所有的行()

A.union

B.unionall

C.union only

D.connect by

【正确答案】B

【答案解析】union集合操作符返回两个查询所选择的去除重复行。

2、(多选题)约束就是给表字段添加的限制条件,那么关于约束下列说法正确的是()

A.每个表中可以有多个unique约束,但是每个表只能有一个primary key约束

B.unique和primary key约束值都不能为null,值都不能重复

C.not null给字段添加非空约束,值不能为null

D.defautl 给字段设置默认值,当字段不赋值的时候,默认值生效

【正确答案】A,C,D

【答案解析】此题目考查的是 约束 非空 not null - 添加非空约束的字段,值不能为null 唯一 unique - 添加唯一约束的字段,值不能重复,可以为null 主键约束 primary key - 添加了主键约束的字段,值不能为null也不能重复 默认约束 default - 给字段设置默认值,当字段不赋值的时候,默认值生效 选项ACD正确。

3、(多选题)下列关于视图说法正确的是()

A.表和视图都是数据库中的对象

B.创建视图时名称可以和表名相同

C.视图是一张虚拟的表

D.原表的数据改变时,视图中的数据也会随之改变

【正确答案】A,C,D

【答案解析】此题目考查的是 对视图的理解 视图: 数据库中存在多种对象,表和视图都是数据库中的对象,创建视图时名称不能和表名重名,视图实际上是一段sql查询语句的映射,可以理解成视图是一张虚拟的表,表中的数据会随着原表的改变而改变 选项ACD正确。

Oracle基础

1、(单选题)Oracle 数据库表空间与数据文件的关系描述正确的是( )

A.一个表空间只能对应一个数据文件

B.一个表空间可以对应多个数据文件

C.一个数据文件可以对应多个表空间

D.表空间与数据文件没任何对应关系

【正确答案】B

【答案解析】表空间和数据文件发生关系,数据文件是物理的,一个表空间可以包含多个数据文件, 而一个数据文件只能隶属一个表空间

2、(单选题)Oracle 数据库表空间与用户的关系是( )

A.一对一

B.一对多

C.多对一

D.多对多

【正确答案】D

【答案解析】一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用。

JAVA数据库连接

JDBC标准

1、(单选题)下面描述不属于连接池的功能的是( )

A.可以缓解连接频繁的关闭和创建会造成系统性能的下降

B.可以大幅度提高查询语句的执行效率

C.可以限制客户端的连接数量

D.可以提高系统的伸缩性

【正确答案】B

【答案解析】连接池可以提高系统性能,于查询语句没有关系。

2、(单选题)下面关于Oracle数据库连接URI正确的拼写格式是( )

A.jdbc:oracle:thin:@hostname:1521:orcl

B.jdbc/oracle/thin/@hostname:1521/orcl

C.jdbc:oracle/thin/@hostname:1521/orcl

D.jdbc:oracle:thin/@hostname:1521/orcl

【正确答案】A

【答案解析】A选项为oracle jdbc连接的uri正确写法

3、(多选题)选择JDBC可以执行的语句( )

A.DDL

B.DML

C.DQL

D.以上都不可以

【正确答案】A,B,C

【答案解析】ABC选项jdbc都可以执行

4、(多选题)下列属于JAVA的接口的是:

A.Statement

B.Collection

C.ResultSet

D.DriverManager

【正确答案】A,B,C

【答案解析】DriverManager是一个关于JDBC的数据库驱动类

JDBC基础

1、(单选题)下面描述不属于连接池的功能的是( )

A.可以缓解连接频繁的关闭和创建会造成系统性能的下降

B.可以大幅度提高查询语句的执行效率

C.可以限制客户端的连接数量

D.可以提高系统的伸缩性

【正确答案】B

【答案解析】连接池可以提高系统性能,于查询语句没有关系。

JDBC核心API

1、(单选题)下面关于ResultSet说法错误的是( )

A.查询结束后,所有的结果数据将一次被存储在ResultSet对象中

B.Statement对象close后,由其创建的ResultSet对象将自动的close

C.查询结束后,ResultSet中的游标指向第一条记录之上,因此要先调用一次next方法才有可能取得记录

D.ResultSet的的方法getString(…)意为取得该列的数据以字符串的形式返回

【正确答案】A

【答案解析】JDBC的查询结果并不是一次性全拿到resultset中的,Oracle默认每次拿指定数量的结果,将指定数量的结果遍历完后,再拿下一个指定数量的结果。 否则,当查询海量数据的时候,内存会直接爆掉。

2、(多选题)下列操作数据库时遇到的异常情况说法正确的是( )

A.java.sql.SQLException:结果集已耗尽(结果集用尽或未调用next)

B.java.sql.SQLException: No suitable driver(URL拼写错误)

C.java.sql.SQLException: Unknown column ‘sid’ in ‘field list’ (SQL语句表名错误)

D.java.sql.SQLException: Data too long for column ‘id’ at row 1(列名定义过长)

【正确答案】A,B

【答案解析】C选项是列名错误 D选项是列值过长 AB选项正确

3、(多选题)JDBC编程的异常类型分为( )

A.SQLException

B.SQLWarning

C.SQLTruncation

D.SQLError

【正确答案】A,B

【答案解析】JDBC编程的异常类型分为SQL警告和SQL异常。 选项AB正确。

JDBC高级

3、(单选题)下面的代码用于实现对emp表的分页查询(Oracle),在每页10行的前提下查询第8页的语句是( )

A.

String sql = "select ename,sal from emp where limit ?,?"; 
PreparedStatement stmt = con.prepareStatement(sql); 
stmt.setInt(1,10*7+1+10); 
stmt.setInt(2,10*7+1); 
stmt.executeQuery();

B.

String sql = "select ename,sal from emp limit ?,?";
PreparedStatement stmt = con.prepareStatement(sql); 
stmt.setInt(1,10*7+1+10); 
stmt.setInt(2,10*7+1); 
stmt.executeQuery();

C.

String sql = "select ename, sal from emp (select ename, sal, rownum n from emp where rownum>=?) where n<?";
PreparedStatement stmt = con.prepareStatement(sql); 
stmt.setInt(1,10*7+1);
stmt.setInt(2,10*7+1+10); 
stmt.executeQuery();

D.

String sql = "select ename, sal from (select ename, sal, rownum n from emp where rownum<?) where n >=?"; 
PreparedStatement stmt = con.prepareStatement(sql); 
stmt.setInt(1,10*7+1+10); stmt.setInt(2,10*7+1);
stmt.executeQuery();

【正确答案】D

【答案解析】oracle中没有limit,mysql中分页才使用limit。 oracle中通过rownum分页需要先在子查询中查询小于满足条件的最后一条数据的所有记录,当子查询结果集确定后,再过滤出大于满足条件的起始第一条数据的所有记录。

DAO

1、使用Connection 的哪个方法可以建立一个PreparedStatement接口?

A.createPrepareStatement()

B.prepareStatement()

C.createPreparedStatement()

D.preparedStatement()

【正确答案】B

【答案解析】createPrepareStatement()创建Statement preparedStatement是接口

2、下面的描述错误的是( )

A.Statement的executeQuery()方法会返回一个结果集

B.Statement的executeUpdate()方法会返回是否更新成功的boolean值

C.Statement的execute ()方法会返回boolean值 ,含义是是否返回结果集

D.Statement的executeUpdate()方法会返回值是int类型,含义是DML操作

【正确答案】B

【答案解析】executeUpdate()方法会返回int类型,表示有多少条数据受到了影响。

3、下列选项有关ResultSet说法错误的是( )

A.ResultSet是查询结果集对象,如果JDBC执行查询语句没有查询到数据, 那 么ResultSet将会是null值

B.判断ResultSet是否存在查询结果集,可以调用它的next()方法

C.如果Connection对象关闭,那么ResultSet也无法使用

D.ResultSet有一个记录指针,指针所指的数据行叫做当前数据行,初始状态下记录指针指向第一条记录。

【正确答案】A,D

【答案解析】JDBC执行查询语句没有查询到数据,ResultSet将返回result对象ResultSet有一个记录指针,指针所指的数据行叫做当前数据行,初始状态下记录指针起始位置位于第一行之前

8、在JDBC编程中执行完下列SQL语句SELECT name, rank, serialNo FROM employee,能得到rs的第一列数据的代码是( )(选择二项)

A.rs.getString(0);

B.rs.getString(“name”);

C.rs.getString(1);

D.rs.getString(“ename”);

【正确答案】B,C

【答案解析】rs.getString(“ename”),列名写错了

WEB前端基础

HTML

1、(单选题)meta标签可以出现在( )中

A.

B.

C.

D.

【正确答案】A

【答案解析】 head标签可以包含,title、meta、link、script等

文本标记

1、(单选题)请选出错误的标签

A.

段落

B.

标题

C.

引用内容

D.<img src="http://www.nowcoder.com/”>

【正确答案】D

【答案解析】img标签不用成对出现

2、(多选题)下列哪些元素是块级元素:

A.div

B.h1

C.button

D.ul

【正确答案】A,B,D

【答案解析】块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote

3、(多选题)下面说法正确的有()

A.P元素不能包含div

B.Li元素的祖先元素可能是li,但父元素不可能是li

C.Domtree的根节点是body元素

D.Body内的元素的offsetparent一定存在

【正确答案】A,B,D

【答案解析】1.p元素内部只能嵌套行内元素,不能嵌套块级元素。A说法正确; 2.li标签可以嵌套<ul><li></li></ul>,但是li标签必须嵌套在ul、ol标签里面。B说法正确; 3.所有元素的根节点都是html元素。C说法错误; 4.offsetparent是相对的意思,Body内的元素,不论怎么嵌套,offsetparent都是一定存在。D说法正确;

4、(多选题)下列哪些元素是行内元素:

A.span

B.img

C.div

D.p

【正确答案】A,B

【答案解析】行内元素有:a、b、span、img、input、strong、select、label、em、button、textarea

图像和链接

1、(单选题)下列属性中,不是 <a> 元素有效属性的是()。

A.src

B.href

C.name

D.target

【正确答案】A

【答案解析】基本概念题,标签中没有src这个属性

2、(单选题)新窗口打开网页,用到以下哪个值()。

A._self

B._blank

C._top

D._parent

【正确答案】B

【答案解析】_self 在当前窗口打开网页 _blank 在新窗口打开网页 _top 在当前窗口打开网页,并且替换当前窗口的整个网页 _parent 在父窗口中打开网页

列表

1、(单选题)列表分为两类,一是无序列表,一是有序列表,以下哪个是无序列表?

A.

    B.

      C.

      D.

      【正确答案】A

      【答案解析】无序列表;有序列表。

      2、(单选题)列表分为两类,一是无序列表,一是有序列表,以下哪个是有序列表?

      A.ul

      B.dl

      C.li

      D.ol

      【正确答案】D

      【答案解析】ul 无序列表 ol 有序列表 li 定义列表项目 dl 定义列表

      表格

      1、(单选题)<table>标签中,哪个是表格边框线的粗细?

      A.bordercolor

      B.border

      C.cellspacing

      D.cellpadding

      【正确答案】B

      【答案解析】bordercolor表示边框颜色; cellspacing表示单元格之间的间隔; cellpadding表示单元格内边距

      CSS

      1、(单选题)下列哪个样式定义后,内联(非块状)元素可以定义宽度和高度

      A.display:inline

      B.display:none

      C.display:block

      D.display:inherit

      【正确答案】C

      【答案解析】display属性 : block : CSS1 块对象的默认值。将对象强制作为块对象呈递,为对象之后添加新行 可以定义高度和宽度 none : CSS1 隐藏对象。与 visibility 属性的hidden值不同,其不为被隐藏的对象保留其物理空间 inline : CSS1 内联对象的默认值。将对象强制作为内联对象呈递,从对象中删除行 inline-block : IE5.5 将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内 inherit: 看display默认是不具备继承性的,使用inherit可以让其继承父对象的display属性。

      2、(单选题)下面哪条声明能固定背景图片()

      A.background-attachment:fixed;

      B.background-attachment:scroll;

      C.background-origin: initial;

      D.background-clip: initial;

      【正确答案】A

      【答案解析】background-attachment 有三个值,scroll是默认值,背景图像会随着页面其余部分的滚动而移动。 fixed当页面的其余部分滚动时,背景图像不会移动。 inherit规定应该从父元素继承 background-attachment 属性的设置。 background-origin 属性规定 background-position 属性相对于什么位置来定位。 background-clip 属性规定背景的绘制区域。

      3、(单选题)css中clear的作用是什么?

      A.清除该元素所有样式

      B.清楚该元素父元素的所有样式

      C.指明该元素周围不可出现浮动元素

      D.指明该元素的父元素周围不可出现浮动元素

      【正确答案】C

      【答案解析】对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。

      表格样式

      1、(多选题)在使用table表现数据时,有时候表现出来的会比自己实际设置的宽度要宽,为此需要设置下面哪些属性值?

      A.cellpadding=”0″

      B.padding:0

      C.margin:0

      D.cellspacing=”0″

      【正确答案】A,D

      【答案解析】单元格边距(表格填充)(cellpadding) – 代表单元格外面的一个距离,用于隔开单元格与单元格空间单; 元格间距(表格间距)(cellspacing) – 代表表格边框与单元格补白的距离,也是单元格补白之间的距离。

      JavaScript基础

      1、(单选题)以下哪一条Javascript语句会产生运行错误?

      A.var obj=( );

      B.var obj=[ ];

      C.var obj={ };

      D.var obj=/ /;

      【正确答案】A

      【答案解析】A,错误 B,声明obj为数组对象 C,声明obj为对象 D,声明obj为正则对象

      2、(多选题)下面属于javascript基本数据类型的有?

      A.字符串

      B.数字

      C.null

      D.undefined

      【正确答案】A,B,C,D

      【答案解析】js五种基本类型:String Boolean Number null undefined

      JavaScript流程控制

      2、(单选题)下列代码输出为?

      var person={fname:"John",lname:"Doe",age:25};
      var txt=""; 
      for (x in person){
          txt=txt + person[x];
      } 
      alert(txt); 
      

      A.JohnDoe25

      B.fname:“John”,lname:“Doe”,age:25

      C.fname:John,lname:Doe,age:25

      D.fnamelnameage

      【正确答案】A

      【答案解析】for in 中 x代表key值,所以取出的值为value

      JavaScript常用内置对象

      1、(单选题)如何判断一个js对象是否是Array,arr为要判断的对象,其中最准确的方法是?

      A.typeof(arr)

      B.arr instanceof Array

      C.arr.toString===‘[object Array]’;

      D.Object.prototype.toString.call(arr) === ‘[object Array]’;

      【正确答案】D

      【答案解析】typeof(arr) 返回的是 Object instanceof 在跨 frame 对象构建的场景下会失效 arr.toString 没有这种用法,正确的用法是 arr.toString() 返回的是数组的内容

      2、(单选题)以下代码的输出结果是

      var f = function g() { 
          return 23; 
      };
      typeof g();
      

      A.“number”

      B.“undefined”

      C.“function”

      D.Error

      【正确答案】D

      【答案解析】如果是typeof f,结果是function 如果是typeof f(),结果是number 如果是typeof g,结果是undefined 如果是typeof g(),结果是ReferenceError,g is not defined

      3、(单选题)写出下面代码的运行结果

      var a,b;
      (function(){  
          alert(a);  
          alert(b);    
          var a=b=3;   
          alert(a);   
          alert(b); 
      })();
      alert(a);
      alert(b);
      

      A.undefined,undefined,3,3,undefined,3

      B.undefined,undefined,3,3,undefined,undefined

      C.0,0,3,3,undefined,undefined

      D.undefined,undefined,3,3,0,0

      【正确答案】A

      【答案解析】这段代码其实等价于

      var a,b; //undefined 
      (function(){ 
          alert(a);//undefined
          alert(b); //undefined
          b=3; //3 
          var a; //undefined
          a = b; //3
          alert(a); //3
          alert(b); //3
      })();
      alert(a); //undefined
      alert(b); //3
      

      变量的作用域问题。

      4、(多选题)以下哪些是javascript的数据类型()

      A.String

      B.Number

      C.Undefined

      D.Date

      【正确答案】A,B,C

      【答案解析】JavaScript中的数据类型有: 字符串、数字、布尔、数组、对象、Null、Undefined Date是对象

      Window

      1、(单选题)要在10秒后调用checkState,下列哪个是正确的()

      A.window.setTimeout(checkState, 10);

      B.window.setTimeout(checkState, 10000);

      C.window.setTimeout(checkState(), 10);

      D.window.setTimeout(checkState(), 10000);

      【正确答案】B

      【答案解析】checkState加了圆括弧相当于函数表达式,会立即执行,执行的结果作为返回值传递给settimeout。 不加圆括弧是将函数对象引用作为参数传入setTimeout函数内,然后通过引用调用执行checkState函数。 在setTimeout函数中传入的时间参数是毫秒值,1秒=1000毫秒,题目中要求10秒后执行checkState函数,也就是10 * 1000毫秒。 所以B选项正确。

      SPRING框架应用

      SpringIOC

      1、(单选题)下面关于spring描述错误的是:( )

      A.Spring支持可插入的事务管理器,使事务划分更轻松,同时无需处理底层的问题。

      B.Spring事务管理的通用抽象层还包括JTA策略和一个JDBC DataSource。

      C.Spring的事务支持且依赖于Java EE环境。

      D.Spring事务语义通过AOP应用于 POJO,通过XML或Java SE 5注释进行配置。

      【正确答案】C

      【答案解析】Spring的事务支持并不依赖于Java EE环境

      2、(单选题)Spring的组成一共有( )块组成

      A.1

      B.3

      C.5

      D.7

      【正确答案】D

      【答案解析】Spring框架有七个模块组成,分别是: Spring 核心容器(Core) Spring AOP Spring ORM Spring DAO Spring WEB Spring上下文(Context) Spring MVC

      3、(单选题)下列关于Spring特性中IOC描述错误的是:()

      A.IOC就是指程序之间的关系由程序代码直接操控。

      B.所谓“控制反转”,是指控制权由应用代码转到外部容器,控制权的转移

      C.IOC将控制创建的职责搬进了框架中;并把它从应用代码脱离开来

      D.当使用Spring的IOC容器时只需指出组件需要的对象,在运行时Spring的IOC容器会根据XML配置数据提供给它。

      【正确答案】A

      【答案解析】IOC是控制反转,是将代码中的操控权转到容器里去控制

      4、(多选题)以下这段配置,说法正确的是( )。 <bean id=“bar1” class=“ioc.autowire.Bar” autowire=“byName”/>

      A.容器会采取自动装配的方式来建立依赖关系。

      B.byName指定的是查找与属性名称一致的bean,调用set方法来完成注入。

      C.byName有可能找到多个符合条件的bean,会出错。

      D.autowire的值还可以是byType和constructor。

      【正确答案】A,B,D

      【答案解析】考查DI的基础知识,容器可以依据属性名称或者类型来完成自动装配,如果值为byName,容器会查找与属性名称一致的bean,并调用对应的set方法来完成注入。 因为本题中bar1是bean的id,所以是唯一的,所以不可能找到多个符合要求的bean。

      5、(多选题)下面关于IOC的理解,正确的是( )

      A.控制反转

      B.对象被动的接受依赖类

      C.对象主动的去找依赖类

      D.一定要用接口

      【正确答案】A,B

      【答案解析】Spring IOP即“控制反转”,对象只是被动的接收依赖对象

      6、(多选题)下列关于bean的生命周期,说法正确的是( )。

      A.每个bean都必须提供相应的生命周期方法。

      B.销毁方法只适用于singleton模式的bean。

      C.销毁方法可以运行多次。

      D.初始化方法只会执行一次。

      【正确答案】B,D

      【答案解析】考查容器如何管理bean的生命周期。在设计bean时,依据实际业务的需要,可以为bean提供相应的生命周期方法,比如在初始化方法当中完成资源加载等类似的逻辑,在销毁方法中释放资源。因此bean当中是否有生命周期相关的方法,完成取决于实际业务需要,并不是必须的,所以答案A是错误的。销毁方法用于释放资源,只需要执行一次,所以答案C也是错误的。

      7、(多选题)以下这段配置,说法正确的是( )。

      <bean id="mp" class="ioc.set.MobilePhone">
          <property name="brand" value="华为mate8"/>
          <property name="cpu" value="麒麟"/>
          <property name="ram" value="2G"/>
      </bean>
      

      A.这里采用了set方式注入。

      B.这里采用了构造器方式注入。

      C.MobilePhone类一定有setBrand方法。

      D.MobilePhone类一定有brand属生。

      【正确答案】A,C

      【答案解析】注意,依据以上配置,spring容器会去调用setBrand方法,但并不表名MobilePhone类一定具有brand属性。以上配置不属于构造方法注入方式。

      8、(多选题)下列关于bean的作用域,说法正确的是( )。

      A.singleton表示一个bean定义对应一个实例。

      B.prototype表示一个bean定义对应多个实例。

      C.prototype是缺省值。

      D.singleton是缺省值。

      【正确答案】A,B,D

      【答案解析】容器在默认情况下,一个bean定义只会创建一个实例,即缺省值为singleton。

      SpringAOP

      1、(单选题)Spring AOP是什么()

      A.控制反转

      B.面向切面编程

      C.面向对象编程

      D.以上说法都不对

      【正确答案】B

      【答案解析】Spring AOP 是面向切面编程,是OOP(面向对象编程)的补充和完善

      Spring WEB MVC

      1、(多选题)以下哪些层属于MVC模式 ()

      A.模型层

      B.管理层

      C.视图层

      D.数据层

      【正确答案】A,C

      【答案解析】MVC包括,视图层,模型层,控制层

      2、(多选题)对于springmvc,说法正确的是( )。

      A.是spring框架一个非常重要的功能模块。

      B.实现了MVC结构,便于简单、快速开发MVC结构的Web程序。

      C.提供的API封装了Web开发中常用的功能, 简化了Web开发过程。

      D.提供了访问数据库的功能。

      【正确答案】A,B,C

      【答案解析】Springmvc是一个mvc框架,主要是实现了核心控制器,并没有实现数据库访问功能。

      3、(多选题)以下几个注解,描述正确的是( )。

      A.@Component是业务层注解。

      B.@Repository是持久化层组件注解。

      C.@Service 是通用组件注解。

      D.@Controller是控制层组件注解。

      【正确答案】B,D

      【答案解析】在使用自动扫描时,应按照分层架构来选择合适的注解,@Component是通用注解,@Service是业务层组件注解。

      MYBATIS框架应用

      MyBatis

      1、(单选题)不是Mybatis配置文件中的主要元素是( )

      A.properties

      B.transactionManager

      C.mappers

      D.bean

      【正确答案】D

      【答案解析】Bean是Spring里的主要元素

      Logo

      开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

      更多推荐