java S1阶段测试

更新时间:2023-03-19 17:10:01 阅读量: 人文社科 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

JAVA 考试试卷(带答案) 高博java培训S1阶段考试试卷

一.选择题(每题2分,共40分)

1、给定下列代码:

if(x>4){  System.out.println("Test 1");

}else if (x>9){  System.out.println("Test 2");

}else {  System.out.println("Test 3"); } 

要使输出为"Test 2",则x的范围是:  A.x<4 B.x>4 C.x>9 D.不存在 2、main()方法的返回类型是?

A. intB. voidC. BooleanD. static E. Object 3、运行下列程序,输出为何? public class Qd803 {

public static void main(String args[]) { String word = "restructure";

System.out.println(word.substring(2, 3)); } }

A.estB.esC.strD.stE.s

4、代码System.out.println(""+11+1); 的输出结果是: A.(空) B.11 C.12 D.111 5、十进制数16的16进制表示格式是____。

A、0x10 B、0x16 C、0xA D、016

6、对于垃圾回收机制(Garbage Collection)的说明,下面哪个叙述是正确的? A. 程序开发者必须编写线程来负责对内存空间的释放。

B. 垃圾回收机制会检查并释放那些不再需要使用的内存空间。 C. 垃圾回收机制允许程序开发者直接立即释放内存空间。

D. 垃圾回收机制可设定在预期的时间内释放被Java对象所使用的内存空间。 7、有一个类(class)如下:

1. class Test {

2. void test(int i) {

3. System.out.println(“I am an int.”); 4. }

5. void test(String s) {

6. System.out.println(“I am a string.”); 7. } 8.

9. public static void main(String args[]) { 10. Test t=new Test(); 11. char ch='y'; 12. t.test(ch);

JAVA 考试试卷(带答案) 高博java培训S1阶段考试试卷

13. } 14. }

针对上述Test类,以下的叙述句中,哪个是正确的?

A. Line 5 will not compile, because void methods cannot be overridden.

B. Line 12 will not compile, because there is no version of test() that takes a char argument.

C. The code will compile but will throw an exception at line 12.

D. The code will compile and produce the following output: I am an int. E. The code will compile and produce the following output: I am a String. 8、若要写出一个能将一组键(Key)与一组值(Value)结合的类,下述所列的接口(interface),哪个是最适用的?

A. Map B. Set C. SortedSetD. Collection 9、运行下列程序,其输出结果为何? class Base { int i; Base() { add(1); }

void add(int v) { i += v; }

void print() {

System.out.println(i); } }

class Extension extends Base { Extension() { add(2); }

void add(int v) { i += v*2; } }

public class Qd073 {

public static void main(String args[]) { bogo(new Extension()); }

static void bogo(Base b) { b.add(8); b.print(); } }

A. 9 B. 18 C. 20 D. 21 E. 22

JAVA 考试试卷(带答案) 高博java培训S1阶段考试试卷

10、运行下列程序,其输出结果为何? 1. public class Test {

2. static boolean foo(char c) { 3. System.out.print(c); 4. return true; 5. }

6. public static void main( String[] argv ) { 7. int i =0;

8. for ( foo('A'); foo('B')&&(i<2); foo('C')){ 9. i++ ;

10. foo('D'); 12. } 13. } 14. }

A. ABDCBDCBB. ABCDABCD

C. Compilation failsD. An exception is thrown at runtime. 11、JAVA原程序经过编译器编译后生成的字节码文件的后缀是( ) A、java B、c C、class D、src

12、下列关于关键字this和super的说法正确的是( ) A、this是调用父类的方法和变量 B、super是调用本类中的方法 C、super是调用父类的方法和变量 D、没有区别

13、下列关于构造方法的说法正确的是( ) A、构造方法必须是和类的名称相同

B、每一个类都必须显示声明自己的构造方法 C、构造方法不能进行重载

D、子类不能使用父类的构造方法

14、类的3个重要特征是类的封装、多态和( ) A、实现B、重写 C、继承 D、重载

15、JAVA平台的无关性是通过( )实现的 A、JAVA虚拟机 B、JAVA的编辑环境 C、Windows操作系统 D、UNIX操作系统 16、下列运算符合法的是( ) A、&&B、<>C、if D、:= 17、执行如下程序代码 a=0;c=0; do{ --c; a=a-1;

}while(a>0); 后,C的值是( )

A、0 B、1 C、-1 D、死循环

JAVA 考试试卷(带答案) 高博java培训S1阶段考试试卷

18、下列哪一种叙述是正确的( )

A、abstract修饰符可修饰字段、方法和类

B、抽象方法的body部分必须用一对大括号{ }包住 C、声明抽象方法,大括号可有可无 D、声明抽象方法不可写出大括号 19、下列语句哪一个正确( )

A、Java程序经编译后会产生machine code B、Java程序经编译后会产生byte code C、Java程序经编译后会产生DLL D、以上都不正确

20、public class Test4 {

public static void main(String[] args) { String hello = "Hello World";

hello.replaceAll("World", "China");

//String hello =hello.replace("World","China"); System.out.println(hello); } }

以上程序执行完会打印什么() A、Hello World B、Hello China C、Hello

D、Hello china

二.简答题(每题5分,共15分)

1、异常分类有哪些?分别列举5种常见的异常(请用英文编写)?

ArrayindexOutOfBoundsException,SQLException,classCastException,

illegalaccessxception,NullpointerException,numberFormatException

2、静态变量和非静态变量,静态方法和非静态方法的区别?

(1) 静态变量: 用关键字static修饰的成员变量称作静态变量或类变量,是与类相关联的数据变量,类变量不仅可以通过某个对象访问也可以直接通过类名访问,静态变量被相关的对象共享。

(2) 非静态变量:没有使用static修饰的成员变量称作非静态变量 ;仅仅是和相应对象关联的变量,改变其中一个对象的实例变量不会影响其它对象的这个实例变量,且必须通过对象访问。 静态方法和非静态方法有什么区别:

(3)静态方法中不用this是无法引用除自己方法体中定义的成员和参数以外的非静态变量或者方法的。 (4)静态方法是不允许被子类重写的,但是子类可以重载父类的静态方法。 (5)子类也不可将父类中的非静态方法重写为静态方法。

3、==与equals(Object obj)方法的区别

在Object类中equals(Object obj)方法与==的比较结果一致的,但是equals是一个方法可以被重写, 例如在String类中equals比较的就是字符串的内容

三.SQL题(20分)

假设有雇员表(emp),表结构如下,使用雇员表(emp)表完成下列练习。 emp员工表 字段内容如下:

empno 员工号

JAVA 考试试卷(带答案) 高博java培训S1阶段考试试卷

ename 员工姓名 hiredate 受雇日期 sal 薪金 comm 佣金 deptno 部门编号 参考数据:

1)选择部门BM-001中的在2005年1月1日之后雇佣的所有员工. select * from emp where deptno='BM-001' and

to_char(hiredate,'yyyy-mm-dd')>to_char('2005-01-01') 2)找出佣金高于薪金的员工.

select * from emp a where comm>(select sal from emp b where a.empno=b.empno) 3)找出佣金高于薪金的60%的员工.

select * from emp a where comm>(select sal from emp b where a.empno=b.empno)*1.6 4)将薪金少于3000块的员工,增加500块.(更新) update emp SET sal=sal+500 where sal<3000 5)显示名字中不带有"R"的员工的姓名.

select ename from emp where ename not like '%R%'

四.编程题(25分):

1.冒泡排序概念:

依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。 用JAVA实现冒泡算法,对3,1,6,2,9,0,7,4,5进行由小到大排序,并输出(15分)

publicclass KaoShi02{

publicstaticvoid main(String[] args){

int[] values ={ };

sort(values);

for(int i=0; i <values.length; ++i){ }

int temp;

System.out.println("Index: " + i + "Value: " + values[i]); }

3,1,6,2,9,0,7,4,5

publicstaticvoid sort(int[] values){

JAVA 考试试卷(带答案) 高博java培训S1阶段考试试卷

}

}

}

for(int j=0; j <values.length - i - 1; ++j){ }

if(values[j] > values[j + 1]){

temp = values[j];

values[j] = values[j + 1]; values[j + 1] = temp; }

public class PaiXu { }

public static void main(String[] args) {

用JAVA实现冒泡算法,对3,1,6,2,9,0,7,4,5进行由小到大排序,并输出 int[] a = {3,1,6,2,9,0,7,4,5}; for(int i = a.length-1;i>0;i--){ }

/*for(int j=0;j<9;j++) }

System.out.print(a[j]+"\t"); System.out.println();*/ System.out.print(i+" "); for(int j=0;j<i;j++){ }

if(a[j]>a[j+1]){ }

int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;

}

//

for(int i:a){

2.编写一个单例模式的例子(10分)

//显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这//个实例;三是它必须自行向整个系统提供这个实例

class Single1{

private static Single1 instance = new Single1() ; private Single1(){ //将构造方法私有化 }

public static Single1 getInstance(){ }

public void print(){

return instance ;

JAVA 考试试卷(带答案) 高博java培训S1阶段考试试卷

}

}

public class DanLiSheJi {

public static void main(String args[]){

Single1 s = null ; //声明对象

s = Single1.getInstance() ;//实例化对象 s.print();

单例模式的俩种方式: 饿汉式

class Singleton {

private static Singleton instance=new Singleton(); private Singleton(){}

static Singleton getInstance() { return instance; } }

懒汉式

class Singleton {

private static Singleton instance=null; private Singleton(){}

static Singleton getInstance() { if(instance==null)

instance=new Singleton(); return instance; } }

本文来源:https://www.bwwdw.com/article/1evj.html

Top