未来_我来
因为渴望改变,所以必须努力

1.选择填空题:

    选择题全部为多选题,只有全部正确才能得分。

编译java程序的命令是__javac____;运行java程序的命令是____java__;产生java文挡的命令是_____javadoc___;查询java类型是否是serializable类型的命令是___serialver_____;产生java安全策略文件的命令是_____policytool___;产生类型归档文件.jar的命令是_____jar___

A. java             B. javac             C. serialver

D.javadoc           E.policytool          F.jar

2.在一个java原文件中,import, class, package语句的顺序是______G__

Aimport class package

Bclass import package

Cpackage class import

Dimport package class

Eclass package import

G:  package import class

3.下面叙述正确的有___BC_________________

A:在一个java原文件中只能定义一个class

B:在一个java原文件中只能定义一个interface

C:在一个java原文件中可以定义多个class

D:在一个java原文件中可以定义多个interface

E:在一个java原文件中可以定义多个classinterface

F:在一个java原文件中只能定义public class

Gjava原文件的前缀一定是所包含类型的名字

4java程序中程序运行入口方法main的签名正确的有____AB____

Apublic static void main(String args[])

Bstatic public void main(String[] args)

Cpublic void static main(String[] args)

Dpublic void main(String args[])

5java程序中程序入口方法main的参数代表命令行输入参数,命令行参数从____A____开始。

A. 0             B. 1             C.-1

6:以下属于正确的java注释有___ACD_____

A. //This is comment          B. /*This is comment

C. /**This is comment*/       D. /*This is comment*/

7:以下能作为class, interface, methodvariable有效标识符的有__________ADF______

A For             B.boolean       C.23age

D. _id      E.my name      F. $this_is_a_long_variable_name

8:以下不是java关键字的有___D_____

A. super       C.this       D.NULL      E.true

9:以下能作为char类型的字面值的有__AC______

A. “e”           B.’f’        C. ‘\u12’      D.’\u0012’

10byte变量的取值范围是____B____

A. 0 - 65535    B.-128 – 127   C.-256 – 255    D.0 - 32767

11:以下正确的有__A______

  1. int i = 32;          B.float f = 45.32;          C. double d=3.2;          

 

12:以下返回true的表达式有__C____

A. “george” == “george”         B.”george” = “george”

C. “george”.equals(new String(“george”))

D. “george” == new String(“george”)

13:根据以下程序选择正确答案______C__

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下面集合定义正确的有____B__D__

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循环实现从1100的累加。

1): for

 

2): while

 

3): do-while

 

16.以下switch表达语句正确的有___AC_____

A:public void switchTest(char c){//char byte int short

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中访问权限的限制由严格到宽松依次是____E________H________B_______A_____

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       E.239

下面程序出错的有________行。

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.创建st1st2

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变量

inner class的类型有________

A.member inner class         B.static inner class

C.local inner class            D.anonymous inner class

E.public inner class            F.global inner class

 

一个匿名的内置类有可能________

A.继承其他的类                 B.实现了某一接口

C.定义了构造方法               D.可以使用成员变量

如果你想将一组对象按一定顺序存取,在不考虑并发访问的情况下会使用________, 反之则会使用________;如果你想存储一组无序但唯一的对象,你会使用________; 如果你想按关键字对对象进行存取,在不考虑并发访问的情况下会使用________, 反之则会使用________

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 exceptionChecked Exception通常继承________。在方法签名上指定可能有异常产生用关键字________, 在程序中产生异常用关键字________。获得异常的简单描述信息调用方法________, 获得详细的异常栈信息调用方法________

A. RuntimeException        B. Exception       C. getMessage

D. throw  E.throws           F.printStackTrace

在图形编程中,将不同的控件按区域排列用________布局管理器;让控件自动排列并保持大小用________布局管理器;让控件按相同大小排列用________布局管理器;一次只有一个控件可见的布局管理器是________

A. CardLayout          B. GridLayout  

C. FlowLayout          D. BorderLayout

图形编程通常按__________________顺序。

A.设置布局管理器(Layout manager)      B.向容器中增加控件

C.选择容器      D.为控件设置事件处理器

完成如下代码,按照FlowLayout的布局方式向JFrame中添加一JButton:

JFrame frame = new JFrame(“Simple GUI”);

FlowLayout fl = new FlowLayout();

frame.__________________;

JButton btn = new JButton(“OK”);

frame._____________________;

事件处理方式采用了observer(观察者)设计模式,事件编程模式三要素是________________________。其中, ________通常继承java.util.EventObject, ________通常继承java.util.EventListener

A.Event source           B.Event object

C.Event listener          D.Helper          E.Model

JButton________事件的事件源,它通过方法________注册事件侦听器, 事件侦听器必须实现接口________,当事件发生时侦听器的方法________被调用,在此方法中调用________的方法________可以获得事件源。

A. addActionListener        B. ActionEvent

C.ActionListener         D.getSource        E.actionPerformed

40.JFrame的却省布局管理器是______, JDialog的却省布局管理器是______, JPanel的却省布局管理器是________

A. FlowLayout            B.BorderLayout     

C.GridLayout             D.GridBagLayout

41.swing编程中,用作提示信息的控件是________, 作单行文本编辑的控件是________, 用作多行文本编辑的控件是________,可编辑HTML等类型文档的控件是________,在界面上显示多条记录并可多重选择的控件是________, 从下拉框中选择记录的空间是________

A. JTextArea       B. JList        C. JComboBox           

D. JTextField       E. JEditorPane           F. JLabel

42.swing图形界面通常都会有菜单控件,所有的菜单都加到________;菜单的类型是________;在菜单上会有选项类型________

JMenuItem           B.JCheckBoxMenuItem

C.JMenuBar         D.JRadioButtonMenuItem        E.JMenu

43.一个applet如果使用了swing控件,这个applet必须继承________; 控制applet生命周期的方法有________个,它们是________ applet是嵌入在html页面的java程序,放置________标签中,它的属性包含________Applet要调用html页面里提供的定制参数,调用方法________,要在浏览器的状态栏显示信息调用方法________

A. Applet             B.JApplet            C. 两个

D.三个               E.四个              F.init,start

G.init,start,stop,destory  H.init,start,destory     I.applet

J.code  K.codebase      L.getParameter     M.showStatus

44.创建线程(Thread)的方式有两种,一种是继承类________,另一种是实现接口________。启动线程的方法是________。线程启动后运行的是________里的代码。

A.run   B.Thread      C.Runnable        D.start

45.完成以下代码创建并启动线程:

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.________;

}

}

46.判断一个线程是否被中断,调用方法________;中断一个线程,调用方法________;等待一个线程退出,调用方法________;一个线程放弃执行权利调用方法________

A. interrupt      B.join          C.isInterrupted        D.yield

47.并发控制是多线程编程的难点。一个线程要等待某个条件的满足调用方法________;通知某一个处于等待状态线程的方法是________,通知多个的是________;处于等待状态的线程当前调用的方法或程序块用关键字________来限制。

A.notify       B.wait        C.synchronized       D.notifyAll

48.对原始数据的读写,采用流________________,为了提高性能,采用流________________;对各种基本数据类型和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  

49.在当前工作目录下有一个用GBK编码的文本文件conf.txt,完成如下代码块能正确读该文件的每一行:

FileInputStream fis = ________________;

InputStreamReader isr = ________________;

BufferedReader br = ________________;

String line = ________;

50.一个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

51.unix服务器www.openlab.com.cn上提供了基于TCP的时间服务应用,该应用使用port13。创建连接到此服务器的语句是________

Socket s = new Socket(“www.openlab.com.cn”, 13);

Socket s = new Socket(“www.openlab.com.cn:13”);

Socket s = accept(“www.openlab.com.cn”, 13);

52.创建一个TCP服务程序,该程序运行在port6868,完成以下代码,实现一个多线程的服务程序:

________ ss = new ________;

while(true){

  Socket clientRequest = ss.________;

  service(clientRequest);

}

53.创建一个tcp客户程序的顺序是________

获得I/O

关闭I/O

I/O流进行读写操作

建立socket

关闭socket

54.创建一个tcp服务程序的顺序是________

创建一个服务线程处理新的连接

创建一个服务器socket

从服务器socket接受客户连接请求

在服务线程中,从socket中获得I/O

I/O流进行读写操作,完成与客户的交互

关闭socket

关闭I/O

55.可以通过使用URLURLConnection类型来完成基于HTTP/FTP的远程通讯,完成以下代码读取Tarena网站www.tarena.com.cn的首页内容:

  URL tarenaFirstPage = ________;

   InputStream is = tarenaFirstPage.________;

   BufferedReader br = ________;

   String line = null;

   while((line = br.readLine()) != null) System.out.println(line);

56.Java UDP编程主要用到的两个类型是________________。发送和接收信息的方法是________

A.UDPSocket             B.DatagramSocket

C.UDPPacket             D.DatagramPacket

E.read/write              F.send/receive


Lab部分(前三题必须完成,45至少完成一个):

Unix系统的用户信息通常都放置在/etc/passwd文件中,每个用户的信息占用一行,文件格式如下:

 username:password:uid: gid:gcos-field:home-dir:login-shell

每个用户都会属于不同的组,组信息通常放置在/etc/group文件中,每个组信息占用一行,文件格式如下:

groupname:password: gid:user-list

一个用户可以属于不同的组,一个组也可以包含多个用户。用户信息中的passwordgcos-field信息,组信息中的password信息在我们的系统中被忽略。现在要建立一个用户管理系统,将所有的类型都放置在tarena.com.usermgmt包下:

尽量采用JavaBean的方式建立类型UserGroup,类型除了包含以上提供的信息外,还要反映出两个类型之间的关系,同时这两个类型的对象能在网络上传输;

创建类型DataBuilder,通过解析字符串(文件/etc/passwd/etc/group中的串)创建UserGroup对象,DataBuilder类图为:

 

 

创建类型FileAnalyzer, 读取文件/etc/passwd/etc/group的内容,使用DataBuilder,将文件内容完全反映到内存中;

编写一个Socket的客户程序UserClient,将3中产生的用户和组对象传递到服务器上;

编写一个Socket 的多线程服务程序UserServer,接收UserClient发送的对象,并在内存中形成所有服务器上的用户和组的内存映像。

posted on 2017-12-19 11:34  未来_我来  阅读(667)  评论(0)    收藏  举报

2 3
4