新东方JAVA培训 月考题目(选择部分)
Core Java试题
选择填空题:
? 选择题全部为多选题,只有全部正确才能得分。
编译java程序的命令是________;运行java程序的命令是________;产生java文挡的命令是________;查询java类型是否是serializable类型的命令是________;产生java安全策略文件的命令是________;产生类型归档文件.jar的命令是________。
A. java???????? B. javac???????? C. serialver?
D.javadoc?????? E.policytool?????? F.jar
在一个java原文件中,import, class, package语句的顺序是________。
A.??? import class package
B.??? class import package
C.??? package class import
D.??? import package class
E.??? class package import
F.??? package import class
下面叙述正确的有____________________。
G.??? 在一个java原文件中只能定义一个class
H.??? 在一个java原文件中只能定义一个interface
I.??? 在一个java原文件中可以定义多个class
J.??? 在一个java原文件中可以定义多个interface
K.??? 在一个java原文件中可以定义多个class和interface
L.??? 在一个java原文件中只能定义public class
M.??? java原文件的前缀一定是所包含类型的名N.??? 字
java程序中程序运行入口方法main的签名正确的有________。
O.??? public static void main(String args[])
P.??? static public void main(String[] args)
Q.??? public void static main(String[] args)
R.??? public void main(String args[])
java程序中程序入口方法main的参数代表命令行输入参数,命令行参数从________开始。
A. 0???????? B. 1???????? C.-1
以下属于正确的java注释有________。
A. //This is comment?????? B. /*This is comment
C. /**This is comment*/???? D. /*This is comment*/?
以下能作为class, interface, method或variable有效标识符的有________________。
S.??? For???????? B.boolean???? C.23age
D. _id???? E.my name???? F. $this_is_a_long_variable_name
以下不是java关键字的有________。
A. super???? B.this???? C.NULL???? D.true
以下能作为char类型的字面值的有________。
A. “e”?????? B.’f’???? C. ‘\u12’???? D.’\u0012’
byte变量的取值范围是________。
A. 0 - 65535?? B.-128 – 127?? C.-256 – 255?? D.0 - 32767
以下正确的有________。
A. int i = 32;?????? B.float f = 45.32;?????? C. double d=3.2;
以下返回true的表达式有________。
A. “george” == “george”?????? B.”george” = “george”
C. “george”.equals(new String(“george”))?
D. “george” == new String(“george”)
根据以下程序选择正确答案________:
public class Test {?
?? static int total = 10;?
?? public static void main (String args []) {?
?????? new Test();?
?? }?
?? public Test () {?
?????? System.out.println(”In test”);?
?????? System.out.println(this);?
?????? int temp = this.total;?
?????? if (temp > 5) {?
????????? System.out.println(temp);?
?????? }?
?? }?
}
A. 编译出错?????? B.运行时有异常???? C. 编译运行都正确
14下面集合定义正确的有________。
A. String strs[] = { ‘a’ ‘b’ ‘c’};???? B.String[] strs = {“a”, “b”, “c”};
C. String[] strs = new String{“a” ”b” ”c”};
D.String strs[] = new String[]{“a”, “b”, “c”};
E.String[] strs = new String[3]{“a”, “b”, “c”};
15.分别使用for, while, do/while循环实现从1到100的累加。
1): for
?
?
2): while
?
?
3): do-while
?
16.以下switch表达语句正确的有________。
A.??? public void switchTest(char c){
switch(c){…}
}
B. public void switchTest(long c){
switch(c){…}
}
C. public void switchTest(byte c){
switch(c){…}
}
D. public void switchTest(double c){
switch(c){…}
}
在面向对象编程中,一个类型由________、________和________组成。面向对象的特性包括________、________和________。在java中访问权限的限制由严格到宽松依次是________、________、________和________。
A. public???????? B.protected???????? C. identifier
D.data?????????? E.private?????????? F.operations
G.inheritance?????? H.default(no modifier)?? I.encapsulation
J.polymorphism
以下方法申明正确的有________________。
A.public static synchronized void writeLog(String msg)
B. synchronized public static writeLog(String msg)
C. public final abstract void writeLog(String msg)
D.final public void writeLog(String msg)
E.abstract synchronized void writeLog(String msg)
Java方法的参数传递对于基本数据类型如int, byte等,参数传递是________;对自定义数据类型,参数传递是________。
A. by reference?????????? B.by pointer
C. by value???????????? D.by address
如下程序:
public class ArugmentTest{
static class IntA{
private int a;
public IntA(int a){ this.a = a; }
public int getA() { return a; }
public void setA(int a){ this.a = a; }
}
?
static public void change(int a){
a = 3;
}
?
static public void change(IntA a){
a.setA(3);
}
?
static public void changeRef(IntA a){
a = new IntA(9);
}
?
public static void main(String[] args){
? int a = 2;
? change(a);
? System.out.print(a);
? IntA ia = new IntA(5);
? change(ia);
? System.out.print(ia.getA());
? changeRef(ia);
? System.out.println(ia.getA());
}
}
在控制台上输出的是________。
A. 2 3 3?? B.333???? C.259???? D.339
下面程序出错的有________行。
1. class Student{
2. private String name; private int age;
public Student(){}
public void setName(String name){ this.name=name; }
void setAge(int age){ this.age= age; }
}
public class StudentTest{
public void static main(String[] args){
? Student s = new Student();
? s.name = “Hellen”;
? s.setAge(20);
}
}
方法重载(overloading)必须满足________。
A. 在不同class中定义的方法?? B.在同一类型中定义的方法
C. 方法名必须相同???????? D.返回类型必须相同
E. 参数一定不同?????????? F.参数可以相同
对于构造方法(constructor)描述正确的有________。
A. 构造方法没有返回类型???? B.构造方法一定是public的方法
C.如果我们没有显示定义构造方法,系统会提供一个缺省的
D.构造方法不能重载
在java语法中允许________继承,________方法不能被继承,________被继承,显示调用父类型的构造方法是通过调用________来完成的。
A. constructor?? B. single?? C. methods?? D. fields?? E. super
以下对于方法覆盖(overriding)的说法正确的有________。
A.方法覆盖发生在同一类中 B.方法的覆盖发生在子类型中
C.方法名一定要一样???? D.参数一定要一样
E.返回类型可以不一样???? F.访问权限只能一样
G.如有异常,子类型中抛出的异常与父类型中的一致或是其子类型
H.静态方法可以被静态方法覆盖
请看以下程序:
class Vehicle {?
? public void drive() {?
????? System.out.println(”Vehicle: drive”);?
? }?
}?
??
class Car extends Vehicle {?
? public void drive() {?
????? System.out.println(”Car: drive”);?
? }?
}?
??
public class Test {?
? public static void main (String args []) {?
????? Vehicle v;?
????? Car c;?
????? v = new Vehicle();?
????? c = new Car();?
????? v.drive();?
????? c.drive();?
????? v = c;?
????? v.drive();?
? }?
}
以下描述正确的有________。
A.对于语句v=c;会导致编译错误
B.对于语句v=c;会导致运行错误
C.运行输出:
Vehicle: drive
Car: drive
Car: drive
D.运行输出:
Vehicle: drive
Car: drive
Vehicle: drive
程序:
public class StaticTest {?
? static {?
??? System.out.println(”Hi there”);?
? }?
? public void print() {?
??? System.out.println(”Hello”);?
? }?
? public static void main(String args []) {?
??? StaticTest st1 = new StaticTest();?
??? st1.print();?
??? StaticTest st2 = new StaticTest();?
??? st2.print();?
? }?
}
什么时候字符串“Hi there”会输出________。
A.永远都不会输出?????? B.创建st1和st2时
C.第一次将StaticTest类型装载进内存时
D.显示调用print方法时?
以下描述正确的有________。
A. final class不能被继承???? B.final变量不能被修改
C.final成员变量可以在构造方法中赋值
D.final方法不能被覆盖(overriden)
以下描述正确的有________。
A.abstract class一定有abstract method(s)
B.abstract class可以没有abstract method(s)
C.定义abstract class的目的是为了被继承
D.interface中定义的方法全是abstract methods
E.interface中定义的变量全部是final static变量
如果你想将一组对象按一定顺序存取,在不考虑并发访问的情况下会使用________, 反之则会使用________;如果你想存储一组无序但唯一的对象,你会使用________; 如果你想按关键字对对象进行存取,在不考虑并发访问的情况下会使用________, 反之则会使用________。
A.Vector???????? B.HashSet???????? C.ArrayList?
D.HashMap?????? E.Hashtable???????????
程序代码:
public class ExceptionTest{
? public double div(double a, double b){
??? try{
????? return a/b;
??? }catch(Exception e){
????? System.out.println(“Exception thrown”);
??? }finally{
????? System.out.println(“Release resources.”);
}
}
?
public static void main(String[] args){
? ExceptionTest et = new ExceptionTest();
? et.div(1, 2);
? et.div(3.4, 0);
}
}
可能产生的结果是________:
A. 编译不成功???????? B.无法运行
C.程序运行输出为:
??? Release resources.
Exception thrown
Release resources.
________又叫做unchecked exception。 Checked Exception通常继承________。在方法签名上指定可能有异常产生用关键字________, 在程序中产生异常用关键字________。获得异常的简单描述信息调用方法________, 获得详细的异常栈信息调用方法________。
A. RuntimeException???? B. Exception???? C. getMessage
D. throw???????????? E.throws?????? F.printStackTrace
33.创建线程(Thread)的方式有两种,一种是继承类________,另一种是实现接口________。启动线程的方法是________。线程启动后运行的是________里的代码。
A.run???????????????? B.Thread
C.Runnable???????????? D.start
34.完成以下代码创建并启动线程:
public class TestThread implements Runnable{
? public void run(){
??? for(int i = 0; i < 10000; i++)
????? System.out.println(i);
? }
?
? public static void main(String[] args){
??? TestThread tt = new TestThread();
??? Thread t = ________;
??? t.________;
}
}
35.判断一个线程是否被中断,调用方法________;中断一个线程,调用方法________;等待一个线程退出,调用方法________;一个线程放弃执行权利调用方法________。
A. interrupt?????? B.join?????? C.isInterrupted???? D.yield
36.并发控制是多线程编程的难点。一个线程要等待某个条件的满足调用方法________;通知某一个处于等待状态线程的方法是________,通知多个的是________;处于等待状态的线程当前调用的方法或程序块用关键字________来限制。
A.notify???? B.wait???? C.synchronized???? D.notifyAll
37.对原始数据的读写,采用流________和________,为了提高性能,采用流________和________;对各种基本数据类型和String类型的读写,采用流________和________;读写文本类型采用________和________,方便读写文本行采用流________和________;对象读写采用流________和________;能指定字符编码的I/O流类型是________和________。
A. InputStream???? B.DataInputStream???? C. Reader
D.InputStreamReader E.BufferedReader F.BufferedInputStream?????????????? G.DataOutputStream?? H.OutputStream?? I.BufferedOutputStream?? J.Writer?? K.PrintWriter???? L.ObjectInputStream???? M.ObjectOutputStream N.OutputStreamWriter?
38.在当前工作目录下有一个用GBK编码的文本文件conf.txt,完成如下代码块能正确读该文件的每一行:
FileInputStream fis = ________________;
InputStreamReader fis = ________________;
BufferedReader br = ________________;
String line = ________;
39.一个File对象是文件或目录在内存中的表示,File类型中定义了方法______来判断一个文件是否存在,定义方法________创建一个新文件,定义方法________删除一个文件,定义方法________改变文件名,定义方法________创建一级目录,定义方法________同时创建一个目录层次。对原始数据类型文件的操作用文件I/O流________和________;对文本文件操作用文件I/O流________和________;同时对一个文件进行读写操作用文件流________。
A.createNewFile?? B.renameTo???? C.delete???? D.exists
E.mkdirs?????? F.mkdir???????? G.FileReader???
H.FileInputStream?? I.RandomAccessFile J.FileWriter???
K.FileOutputStream
40.在服务器http://www.openlab.com.cn/上提供了基于TCP的时间服务应用,该应用使用port为13。创建连接到此服务器的语句是________。
Socket s = new Socket(“http://www.openlab.com.cn/”, 13);
Socket s = new Socket(“http://www.openlab.com.cn:13/”);
Socket s = accept(“http://www.openlab.com.cn/”, 13);
41.创建一个TCP服务程序,该程序运行在port为6868,完成以下代码,实现一个多线程的服务程序:
________ ss = new ________;
while(true){
Socket clientRequest = ss.________;
service(clientRequest);
}
42.创建一个tcp客户程序的顺序是________。
获得I/O流
关闭I/O流
对I/O流进行读写操作
建立socket
关闭socket
54.创建一个tcp服务程序的顺序是________。
创建一个服务线程处理新的连接
创建一个服务器socket
从服务器socket接受客户连接请求
在服务线程中,从socket中获得I/O流
对I/O流进行读写操作,完成与客户的交互
关闭socket
关闭I/O流