中科曙光2014校园招聘笔试
算是国企里面非常厉害的了,而且效益也不错。但是今年没怎么招人。
###一、单项选择题
#####1. 为了区分重载多态中同名不同方法,要求(A)
- A. 形式参数个数或者类型不同
- B. 返回值类型不同
- C. 调用时用类名或对象名做前缀
- D. 形式参数名称不同
#####2. 给定Java代码如下,运行时, 会产生(B) String s = null; s.concat(“abc”);
- A. ArithmeticException
- B. NullPointerException
- C. IOExcepiton
- D. EOFException
#####3. 给定如下Java代码,编译时会在(C)出现错误。 public class Sugon { static int arr[] = new int[10]; public static void main(String args[]) { System.out.println(arr[1]); } }
- A. 编译时将产生错误
- B. 编译时正确,运行时将产生错误
- C. 输出零
- D. 输出空
#####4. 表(TEACHER)包含以下列 ID NUMBER(7) PK SALARY NUMBER(7, 2) SUBJECT_ID NUMBER(7)
分别执行以下两个SQL语句:(B)
SELECT ROUND(SUM(salary), -2) FROM teacher;
SELECT subject_id, ROUND(SUM(salary), -2) FROM teacher GROUP BY id
- A. 语句1将返回每个老师一个结果
- B. 语句2将返回多个结果
- C. 结果相同,显示不同
- D. 将有一个句子产生错误
#####5. 下面哪个是正确的类声明?假设每一段文本都作为一个名称为GPUTest.java的文件的全部内容?(A)
-
A.
public class GPUTest { public int x = 0; public GPUTest(int x) { this.x = x; } }
-
B.
public class gpuTest { public int x = 0; public gpuTest(int x) { this.x = x; } }
-
C.
public class GPUTest extends MyBaseClass, MyOtherBaseClass { public int x = 0; public GPUTest(int xval) { x = xval; } }
-
D.
protected class GPUTest { private int x = 0; private GPUTest (int xval) { x = xval; } }
首先说明了文件是GPUTest.java,那么,这个名称就要和该文件中public声明的类文件名相同,包括大小写,排除B。Java只有单继承,C错。class只能用public和空修饰,D错。
#####6. 如果只想得到1000个元素组成的序列中第5个元素之前的部分排列的序列(D)方法最快。
- A. 冒泡排序
- B. 快速排序
- C. Shell排序
- D. 堆排序
这个题要求查询序列中最小的5个元素。希尔排序和快速排序,都是在整个序列排序结束之后,才能够实现。冒泡和堆排序能够优先获得最小的5个元素,而堆排序被叫做是高级的冒泡排序,交换次数少于冒泡排序。
#####7.在Java中下列关于自动类型转换的说法正确的是(A)
- A. 基本类型和String类型相加结果一定是字符串类型
- B. char类型和int类型相加结果一定是字符
- C. double类型可以自动转换为int
- D.
char + int + double + “”
的结果一定是double
#####8. 以下不属于Thread类提供的线程控制方法是(C)
- A. sleep()
- B. interrupted
- C. init()
- D. yield()
#####9. 执行下面PL/SQL代码块,被插入到表EXAMPLE中的行数为(B) BEGIN FOR i IN 1..6 LOOP IF i=2 OR i=3 THEN null; ELSE INSERT INTO example(one) VALUES(i); END IF; ROLLBACK; END LOOP; COMMIT; END;
- A. 0
- B. 1
- C. 2
- D. 3
###二、填空题
#####1. 类变量在类中声明,而不是在类的某个方法中声明,它的作用域是(整个当前类)。
#####2. 一个完整的URL地址由(协议类型)、(主机地址)、端口和文件四部分组成。
#####3. Java中线程4个状态,初始状态、运行状态、阻塞状态、阻塞状态。
#####4. 如下第4行执行后foo的值是(basketball)。 String foo = “base”; foo.substring(0, 3); foo.concat(“ket”); foo += “ball”;
#####5. Throwable类有两个字类:(Error)类和(Exception)类。
#####6. 用Thread t new Thread(r)创建一个新的线程的时候,表达式r instanceof Thread的值是(false)。
#####7. 下面选项中有2个可以放在程序中间没有任何问题,请选出 来(CE)
- A. private synchronized Object o;
- B. void go() {synchronized() {}}
- C. public synchronized void go() {}
- D. private synchronized(this) void go() {}
- E. void go() {synchronized(Object.class){}}
synchronized
不能用来修饰成员变量,A错。如果用来修饰代码块,并且要指出修饰的对象时,不能为空,B错。synchronized修饰函数时不需要(this)。C正确,用来修饰函数,并且同步的是this对象。E正确,class literals synchronize,同步类的所有实例。
###三、简答题
#####1. sleep()和wait()的区别和联系? sleep()不会将线程控制权交出去,线程会暂停指定时间。wait()会交出去,然后处于就绪状态。
#####2. 你认为在表上建立索引可以提高数据库系统的效率吗?为什么? 不一定。建立太多的索引将会影响更新和插入的速度,因为插入和更新之后还需要更新每个索引文件。对于一个经常需要更新和插入的表格,就没有必要为一个很少使用的where子句单独建立索引了,对于比较小的表,排序的开销不会很大,也没有必要建立另外的索引。
#####3. 简述synchronized和java.util.concurrent.locks.Lock的异同?
Lock有比Synchronized更精确的线程域城予以和更好的性能。Synchronized会自动释放锁,但是Lock一定要求程序员手工释放,并且必须在finally从句中释放。
###四、代码题
#####1. 有一对猫咪,一公一母,从出生后第三年起每年都生一对小猫(假设一公一母),孩子长到第三年后每个月又生一对猫,假如猫都不死,问每年的猫总对数为多少?请使用Java语言编写一个获取每年猫对数的程序方法。 int func(int year) { if (year > 0 && year <= 2) { return 2; } return func(year - 1) + func(year - 2); }
原文链接:中科曙光2014校园招聘笔试,转载请注明来源!
–EOF–