
一、单项选择题
D1、欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?( )
A ArrayList myList=new Object();
B List myList=new ArrayList();
C ArrayList myList=new List();
D List myList=new List();
C2、paint ( )方法使用哪种类型的参数?
A Graphics
B Graphics2D
C String
D Color
D3、指出正确的表达式 ( )
A byte=128;
B Boolean=null;
C long l=0xfffL;
D double=0.9239d;
4、指出下列程序运行的结果 ( )。
public class Example{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
Sytem.out.print(ex.ch);
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
}
A good and abc
B good and gbc
C test ok and abc
D test ok and gbc
A5、运行下列程序, 会产生什么结果 ( )
public class X extends Thread implements Runable{
public void run(){
System.out.println("this is run()");
}
public static void main(String args[])
{
Thread t=new Thread(new X());
t.start();
}
}
A 第一行会产生编译错误
B 第六行会产生编译错误
C 第六行会产生运行错误
D 程序会运行和启动
A6、要从文件" file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合? ( )
A FileInputStream in=new FileInputStream("file.dat"); in.skip(9); int c=in.read();
B FileInputStream in=new FileInputStream("file.dat"); in.skip(10); int c=in.read();
C FileInputStream in=new FileInputStream("file.dat"); int c=in.read();
D RandomAccessFile in=new RandomAccessFile("file.dat"); in.skip(9); int c=in.readByte();
7、容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变? ( )
A CardLayout
B FlowLayout
C BorderLayout
D GridLayout
C8、给出下面代码:
public class Person{
static int arr[] = new int[10];
public static void main(String a[])
{
System.out.println(arr[1]);
}
}
那个语句是正确的? ( )
A 编译时将产生错误;
B 编译时正确,运行时将产生错误;
C 输出零;
D 输出空。
9、哪个关键字可以对对象加互斥锁 ?( )
A transient
B synchronized
C serialize
D static
10、下列哪些语句关于内存回收的说明是正确的? ( )
A 程序员必须创建一个线程来释放内存;
B 内存回收程序负责释放无用内存
C 内存回收程序允许程序员直接释放内存
D 内存回收程序可以在指定的时间释放内存对象
二、多项选择题
AB1、下面哪些标识符在Java语言中是合法的?( )
A persons$
B TwoUsers
C *point
D instanceof F.end-line
BD2、下面哪些代码片段会产生编译错误?( )
A String s = "Gone with the wind"; String t = " good "; String k = s + t;
B String s = "Gone with the wind"; String t; t = s[3] + "one";
C String s = "Gone with the wind"; String standard = s.toUpperCase();
D String s = "home directory"; String t = s - "directory".
AD3、下面哪些赋值语句是错误的?( )
A float f = 11.1;
B double d = 5.3E12;
C char c = '\\r';
D byte bb = 433;
4、给定下面的代码片段:
public void Test() {
try {
method();
System.out.println("Hello World");
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("Exception?");
}
catch(Exception e)
{
System.out.println("Exception1");
}
finally{
System.out.println("Thank you!");
}
}
如果函数method正常运行并返回,会显示下面的哪些信息? ( )
A Hello World
B Exception
C Exception1
D Thank you!
ACD5、下列哪些语句是正确的? ( )
A int a[][]=new int[][3];
B int a[][]={{1,3},{2,3,4},{1,2}};
C String s[][]=new String[2][];
D String s[][]={{"can
BC6、下面哪些语句能够正确地生成5个空字符串? ( )
A String a [] = new String [5]; for (int i = 0; i < 5; a[i++] = "");
B String a [] = {"", "", "", "", ""};
C String a [5];
D String [5] a;
BC7、下面关于Java代码安全的说法哪些是正确的?( )
A 程序执行过程中需要的所有类都是通过字节码校验程序装入的。
B 代码的运行是由Java运行环境中的解释器完成的。
C 在运行时,字节码要经过装入,校验之后,才能在解释器中执行。
D 在缺省的安全配置条件下,Java Applet不能访问任何本地资源。
AC8、下列方法属于java.lang.Math类的有(方法名相同即可): ( )
A random()
B abs()
C sqrt()
D sin()
CD9、下列表达式哪些是正确的:( )
A byte=340;
B Boolean=1;
C long l=-2;
D double=0.9239d;
BC10、下面的说法正确的是: ( )
A Java语言里的线程不是对象
B Applet不需要main方法
C Java语言的对象都是java.lang.Object的子类
D double是Java语言的合法标识符
三、 填空题
1、执行下列代码后的结果是什么?
int x,a=2,b=3,c=4; x=++a+b+++c++;
2、 包包含了Collection的接口和类的API。
3、main方法的声明格式包括
4、下列程序中构造了一个SET并且调用其方法add(),输出结果是 。
public class A{
public int hashCode(){return 1;}
public Boolean equals(Object b){return true}
public static void main(String args[]){ Set set=new HashSet();
set.add(new A());
set.add(new A());
set.add(new A());
System.out.println(set.size());
}
}
5、下列程序的运行结果是 。
class A{
class Dog{
private String name;
private int age;
public int step;
Dog(String s,int a)
{
name=s;
age=a;
step=0;
}
public void run(Dog fast)
{
fast.step++;
}
}
public static void main (String args[])
{
A a=new A();
Dog d=a.new Dog("Tom",3);
d.step=25;
d.run(d);
System.out.println(d.step);
}
}
四、 编程题
1、编写一个输出"Hello World!"的程序,用两种方式实现(Application、Applet)。
2、打印输出10行杨晖三角形
3、有下面一段Server段程序,目的是能够同时服务多个客户,客户的请求是一句话(一个 String)。如果这个请求的内容是字符串"plain"的话,服务器仅将"hello"字符串返回给用户。否则将用户的话追加到当前目录的文本文件Memo.txt中(路径为"Memo.txt"),并向用户返回"OK"。注意Server并发的处理多用户,Memo.txt被共享,要求不能出现数据不一致。Server的程序如下文件Server.java:
public class Server{
public static void main(String args[]){
MemoController memoController = new MemoController();
try{
ServerSocket ss = new ServerSocket(1999);
while (true){
Socket s = ss.accept();
try{
UserThread t = new UserThread(s, memoController);
t.start();
}catch(Exception e){
e.printStackTrace();
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
memoController.close();
}
}
}
类UserThread程序如下:
文件UserThread.java:
public class UserThread extends Thread{
Socket s;
MemoController memo;
public UserThread (Socket s, MemoController memo){
this.s = s;
this.memo = memo;
}
public void run(){
try{
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
String req = br.readLine();
if (req.equals("plain")){
pw.println("hello");
}else{
memo.append(req);
pw.println("OK");
}
pw.flush();
pw.close();
br.close();
s.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
请根据题目的要求和现有的Server.java, UserThread.java的程序完成类MemoController.java的程序。
4、用输入/输出写一个程序,让用户输入一些姓名和电话号码。每一个姓名和号码将加在文件里。用户通过点"Done"按钮来告诉系统整个列表已输入完毕。 如果用户输入完整个列表,程序将创建一个输出文件并显示或打印出来。 格式如:555-1212,Tom 123-456-70,Peggy L. 234-5678,Marc 234-5678,Ron 876-4321,Beth&Brian 33.1.42.45.70,Jean-Marc
5、编写一个应用程序,创建三个线程分别显示各自的时间。
