Java&SQL 测试题目 答案

Java&SQL 阶段考试

(满分 100 分,时长 180 分钟) Java 部分
一、选择题
1.以下关于 abstract 关键字的说法,正确的是(D)。 A.abstract 可以与 final 并列修饰同一个类。 B.abstract 类中不可以有 private 的成员。 C.abstract 类中必须全部是 abstract 方法。 D.abstract 方法必须在 abstract 类或接口中。

2.以下方法,(B)不是对 add 方法的重载。 publicclassTest{ public void add(intx,inty,intz){ //todo } } A.public int add(intx,inty,floatz){return0;} B.public int add(intx,inty,intz){return0;} C.public void add(intx,inty){ } D.以上都不是

3.关于 Java 堆,下面说法错误的是(D)。 A.所有类的实例都是在堆上分配内存。 B.对象所占的堆内存是由自动内存管理系统回收。 C.堆内存由存活和死亡的对象,空闲碎片区组成。 D.数组是分配在栈中的。

4.观察以下代码,输出结果是(A)。 publicclassMyClass{ inti=-1; privatevoidaction(){ inti=0; i++; } publicstatic voidmain(String[]args){ MyClassmc =newMyClass(); mc.action();
System.out.println(mc.i);
}
} A. 1 B.0 C.-1 D.抛出异常

5.观察下面的代码,正确的结果是(A)。 classLetter{ charc=‘x’; } publicclassPassObject{ staticvoid f(Lettery){ y.c=‘z’; } publicstatic voidmain(String[]args){ Letterx=newLetter(); x.c=‘a’; f(x); System.out.println(x.c); } } A. z B.a C.x D.null

6.观察如下代码,正确显示结果为(C)。 classA{ voidcallme(){ System.out.println(“InsideA’scallme()method”); } } classBextendsA{ voidcallme(){ System.out.println(“InsideB’scallme()method”); } } classCextendsB{ voidcallme(){ System.out.println(“InsideC’scallme()method”); } } publicclassDispatch{ publicstatic voidmain(Stringargs[]){ Aa=newC(); a.callme(); } } A.InsideA’scallme()methodB.InsideB’scallme()method C.InsideC’scallme()method D.抛出异常
7.观察如下代码,正确的显示结果是(A)。 publicclassMyClass{ publicstatic voidmain(String[]args){ Strings1=“hello”; Strings2=“hello”; Strings3=newString(“hello”); Strings4=newString(“hello”); System.out.println((s1s2)+"/"+(s3s4)); } } A.true/false B.true/true C.false/true D.false/false
8.观察如下代码,正确的显示结果是(B)。 classMyExceptionextendsException{ publicMyException(String msg){ super(msg); } } publicclassMyClass{ publicstatic voidmain(String[]args){ try{ if(true)thrownewMyException(“bad”); System.out.println(“OK”); }catch(MyExceptione){ System.out.print(e.getMessage()); } System.out.print(“bye”); } } A. bad B. badbye C. OKbad D. OKbadbye
9.下列说法中,不正确的是(B)。 A.一个 Java 源程序经过编译后,得到的文件的扩展名一定是.class。 B.一个 Java 源程序经过编译后,得到的结果文件数也只有一个。 C.一个 Java 源程序只能有一个 publicclass 类定义,且源文件的名字与 publicclass 的类 名相同,扩展名必须是.java。
D.一个 Java 源程序可以包含多个 class 类。
10.欲构造 ArrayList 类的一个实例,此类实现继承了 List 接口,下列方法正确的是(B)。 A.ArrayListmyList=newObject(); B.Listmylist=newArrayList(); C.ArrayListmyList=newList(); D.ListmyList=newList();
11.下列说法正确的是(AC)(多选)。 A.LinkedList 实现了继承自 List。 B.AbstractSet 继承自 Set。 C.HashSet 继承自 AbstractSet。 D.WeakMap 继承集成自 HashMap。
12.Thread 类用来创建和控制线程,一个线程从下面(B)方法开始执行。 A.init() B.start() C.run() D.notifyAll()
13.下面关于 Java 语言实例方法和类方法的说法,正确的是(BC)(多选)。 A.实例方法可以直接通过类名调用。 B.类方法可以直接通过类名调用。 C.实例方法可以操作实例变量也可以操作类变量。 D.类方法可以操作实例变量也可以操作类变量。
14.在 Java 语言当中,(C)关键字用来实现同步。 A.native B.static C.synchronized D.abstract
15.以下关于 Java 的 List Set 和 Map 集合的描述,错误的是(BC)(多选)。 A) List 集合的元素是有序的,元素可以重复 B) HashSet 集合的元素是无序的,可以重复的;TreeSet 是有序的,基于 TreeMap 实现 的 C) HashMap 的 Key 必须唯一,Value 同样不可以重复 D) LinkedList 线程不安全,它是链表结构 E) List 集合具有以下几种常用的方法:add(E e) clear() hashCode() iterator() toArray()
16.正则表达式“\d+.?\d*”,在匹配下列字符串时结果失败的是(C)。 A.12.5 B.1.25 C.以上都成功 D.以上都失败
二、简答题
1.string、stringbuilder、stringbuffer 区别?stringbuilder、stringbuffer 哪个是线程不安全?
答:String对象不可变,线程安全,Stringbuffer(加了同步锁) 对象可变,线程安全,速度较慢,Stringbuilder对象可变,线程不安全,速度快。
2.HashMap 和 Hashtable 有什么区别?
答:两者都实现了map接口,hashmap是以键值对存储,线程不安全,hashtable是安全线程
3.Array 和(ArrayList)有什么区别?什么时候应该使用 Array 而不是 ArrayList?
Array长度不可调整,是固定长度的数组,且存储的值必须是统一类型,而Arraylist底层是可以改变长度的数组,存储的对象类型不受限制
4.Java 中创建线程哪几种方式?需要实现什么方法?优缺点是什么?
继承Thread,重写run方法,使用start启动线程,受单根继承的限制
实现runnable接口,重写run方法,
实现callable接口,实现call方法,
三、编程题
1.给定一个长字符串 A 和一个短字符串 B,请问如何最快判断字符串 B 中的所有字符是否 都在字符串 A 中 publicbooleanstringContains(StringA,StringB){ //编码区 }

 public 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值