下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java高级程序设计第二学期期末复习题Java高级程序设计第二学期期末复习题Java高级程序设计第二学期期末复习题V:1.0精细整理,仅供参考Java高级程序设计第二学期期末复习题日期:20xx年X月Java高级程序设计第二学期期末复习题判断题1.java.io.Seriablizable是对象可以序列化接口。(√)2.java.awt包是Java语言用来构建图形用户界面(GUI)的类库。(√)3.容器java.awt.Container是Component的子类,一个容器可以容纳多个构件,并使他们成为一个整体。(√)4.Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。(√)5.
Java的图形用户界面的最基本的组成部分就是构件(Component)。(√)6.在Swing中用重量级的构件替代了AWT中的轻量级的构件。(X)7.与AWT构件不同,Swing构件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(contentPane)上。(√)8.类Panel默认的布局管理器是GridLayout。(X)9.每个Java小应用程序必须定义为Jframe类的子类。(√)10.使用UDP通信时,用DatagramPacket类把要发送的信息打包。(√)11.AWT组件称为重型组件(√)12.Swing组件称为轻型组件(√)13.容器类不是GUI组件(X)14.使用add方法可以在框架的内容窗格中添加组件(√)15.FlowLayout是最简单的布局管理器(√)16.布局管理器GridLayout不是以网格(矩阵)的形式排列组件(X)17.布局管理器的属性不可以动态的改变(X)18.每一时刻,一个容器只能有一个布局管理器(√)19.要创建一个用户界面,需要创建一个框架或applet来存放用户界面组件(√)20.Component类是所有用户界面的父类(√)21.JFrame实例可以添加到容器中。(F)22.JCheckBox继承了AbstractButton类的所有属性。(T)23.JTextArea可以让用户输入多行文字。(T)24.JSlider与JScrollbor类似,但是JSlider具有更多的属性和更多是显示形式。(T)25.JTextField类继承了JTextComponent类,而JTextComponent类继承JComponent类。(T)26.从应用程序创建一个子窗口,不用先创建JFrame的一个子类。(F)27.在一个文本域中按下回车键就触发了ActionEvent事件。(T)28.Java使用事件委托处理模型来处理事件,源对象和监听对象可以是同一个对象。(T)29.JDBC是指Java程序与数据库连接的一种机制。(T)30.可以给一个面板添加框架。(F)31.File类提供实现文件读写的操作方法。(T)32.java.io.Reader时一个读取字符的类。(T)33.垂直文本位置指定文本相对于图标的垂直位置。(T)34.不可以同时设置按钮上的文本和图标。(F)35.标签是显示一小段文字、一幅图片或者二者皆有的区域。(T)36.组合框是包含项目的一个列表,用户可以从中进行选则。(T)37.用read()方法读取文件内容时,返回-1表示文件结束。(F)38.PrintWriter类和PrintStream类可以以文本方式输入基本类型数据值、字符串和对象。(F)39.代表优先级的常数值越大优先级越低(F)40.线程一旦被创建,则自动运行(F)二、单选题1、下列关于Java线程的说法那些是正确的()A、每一个Java线程可以看成由代码、一个真实的CPU以及数据三部份组成。B、创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。C、Thread类属于java.util程序包。D、以上说法无一正确。2、运行下列程序,会产生什么结果()
publicclassXextendsThreadimplementsRunable{publicvoidrun(){System.out.println("thisisrun()");}publicstaticvoidmain(Stringargs[]){Threadt=newThread(newX());t.start();}}A、第一行会产生编译错误B、第六行会产生编译错误C、第六行会产生运行错误D、程序会运行和启动3、下列选项中,用于定义接口的关键字是()
A、importB、implementsC、interfaceD、protected4.定义类头时能使用的修饰符是()。
A)privateB)staticC)abstractD)protected
5、下面哪个方法不可以在任何时候被任何线程调用?()A、wait()B、sleep()C、yield()D、synchronized(this)6.下列关于线程优先级的说法中,正确的是A)线程的优先级是不能改变的B)线程的优先级是在创建线程时设置的C)在创建线程后的任何时候都可以设置D)B和C7.线程生命周期中正确的状态是A)新建状态、运行状态和终止状态B)新建状态、运行状态、阻塞状态和终止状态C)新建状态、可运行状态、运行状态、阻塞状态和终止状态D)新建状态、可运行状态、运行状态、恢复状态和终止状态8.Thread类中能运行线程体的方法是A)start() B)resume()C)init() D)run()9在程序读入字符文件时,能够以该文件作为直接参数的类是A)FileReader B)BufferedReaderC)FileInputStream D)ObjectInputStream10)java.io包的File类是A)字符流类 B)字节流类C)对象流类 D)非流类11)下列描述中,正确的是A)在Serializable接口中定义了抽象方法B)在Serializable接口中定义了常量C)在Serializable接口中没有定义抽象方法,也没有定义常量D)在Serializable接口中定义了成员方法12.java中用于创建文件对象的类是()A.FileB.ObjectC.ThreadD.Frame13.从键盘上输入一个字符串创建文件对象,若要判断该文件对象为目录文件或数据文件,可使用下列哪个方法()A.getPath()B.getName()C.isFile()D.isAbsolute()14.下列哪个类不对直接创建对象()A.InputStreamB.FileInputStreamC.BufferedInputStreamD.DataInputStream15.从键盘上输入多个字符时,为了避免回车换行符的影响,需要使用下列哪个流方法()A.write()B.flush()C.close()D.skip()16.以对象为单位把某个对象写入文件,则需要使用什么方法()A.writeInt()BwriteObject()C.write()D.writUTF()17.下列哪个类的方法能够直接把简单数据类型写入文件()A.OutputStreamB.BufferedWriterC.ObjectOutputStream.D.FileWriter18.若一个类对象能被整体写入文件,则定义该类时必须实现下列哪个接口()A.RunnableB.ActionListenerC.WindowsAdapterD.Serializable19.下列哪种类型的数据能以对象的形式写入文件()A.StringB.FrameC.DialogD.Button20.File类的方法中,用于列举某目录下的子目录及文件的方法是()A.longlength()B.longlastModified()C.String[]list()D.StringgetName()21.能够以字符串为单位写入文件数据的流类是()A.FileOutputStreamB.FileWriterC.BufferedWriterC.OutputStream22.能够向文件输入逻辑型数据的类是:()A.FileOutputStreamB.OutputStreamC.FileWriterD.DataOutputStream23.在线程同步中,为了唤醒另一个等待的线程,使用下列方法()A.sleep()B.wait()Cnotify()D.join()24.为了得到当前正在运行的线程,可使用下列哪个方法()A.getName()B.Thread.CurrentThread().B.sleep()D.run()25.以下()不属于线程的状态。A.就绪状态B。运行状态C。挂起状态D。独占状态26.当线程被创建后,其所处的状态是()A.阻塞状态B。运行状态C、就绪状态D、新建状态27.当线程调用start()后,其所处状态为()A.阻塞状态B。运行状态C、就绪状态D、新建状态28.Thread.sleep()方法调用后,当等待时间未到,该线程所处状态为()A.阻塞状态B。运行状态C、就绪状态D、新建状态29.新生状态的线程其可能直接进入的状态是()A.阻塞状态B、运行状态C、新建状态D、结束状态30.Thread.sleep()方法调用后,当等待时间已到,该线程所处状态为()A.阻塞状态B。运行状态C、就绪状态D、新建状态31.当线程因异常而退出run()后,其所处状态为()A.阻塞状态B。运行状态C、就绪状态D、结束状态32.wait()方法首先是哪个类的方法()A.ObjectB.Thread.C.RunnableD.File33.如果我们想实现“先把要写入文件的数据先缓存到内存中,再把缓存中的数据写入文件中”的功能时,则需要使用下列哪个类(
)
A.FileReaderB.OutputStreamC.FilterOutputStreamD.DataOutputStream34.用read()方法读取文件内容时,判断文件结束的标记为()A.0B.1C-1D.无标记35.以下哪个方法只对使用了缓冲的流类起作用()A.read()B.write()Cskip()D.flush()36.Java提供的类InetAddress来进行有关Internet地址的操作.()A.SocketB.ServerSocketC.DatagramSocketDInetAddress37.InetAddress类中哪个方法可实现正向名称解析()A.isReachable()B.getHostAddress()C.getHosstName()D.getByName()38.为了获取远程主机的文件内容,当创建URL对象后,需要使用哪个方法获取信息()A.getPort()B.getHostC.openStream()D.openConnection()39.java程序中,使用TCP套接字编写服务端程序的套接字类是()A.SocketB.ServerSocketC.DatagramSocketD.DatagramPacket40.ServerSocket的监听方法accept()的返回值类型是()A.voidB.ObjectC.SocketD.DatagramSocket41.ServerSocket的getInetAddress()的返回值类型是()A.SocketBServerSocketD.InetAddressD,.URL42.当使用客户端套接字Socket创建对象时,需要指定()A.服务器主机名称和端口B、服务器端口和文件C、服务器名称和文件D.服务器地址和文件43.使用流式套接字编程时,为了向对方发送数据,则需要使用哪个方法()A.getInetAddress()B.getLocalPort()C.getOutputStream()D.getInputStream()44.使用UDP套接字通信时,常用哪个类把要发送的信息打包()A.StringB.DatagramSocketC.MulticastSocketD.DatagramPacket45.使用UDP套接字通信时,哪个方法用于接收数据()A.read()B.receive()C.accept()D.Listen()46.若要取得数据包的中源地址,可使用下列哪个语句()A.getAddress()B.getPort()C.getName()D.getData()47.要使用java程序访问数据库,则必须首先与数据库建立连接,在建立连接前,应加载数据库驱动程序,该语句为()AClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)B.DriverManage.getConnection(“”,””,””)C.Resultrs=DriverManage.getConnection(“”,””,””).createStatement()D.Statementst=DriverManage.getConnection(“”,””,””).createStaement()48.要使用java程序访问数据库,则必须首先与数据库建立连接,该语句为()AClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)B.DriverManage.getConnection(“”,””,””)C.Resultrs=DriverManage.getConnection(“”,””,””).createStatement()D.Statementst=DriverManage.getConnection(“”,””,””).createStaement()49.java程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句()A.executeQuery()B.executeUpdate()CexecuteEdit()D.executeSelect()50.java程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句()A.executeQuery()B.executeUpdate()CexecuteEdit()D.executeSelect()51.Swing与AWT的区别不包括()A.Swing是由纯Java实现的轻量级构件B.Swing没有本地代码C.Swing不依赖操作系统的支持D.Swing支持图形用户界面52.JAVA中提供了多种布局对象类。其中使用卡片式布局的是()A.FlowLayoutB.BoederLayoutC.BoxLayoutD.CardLayout53.每个使用Swing组件的程序必须至少有一个() A.按钮 B.顶层容器 C.标签 D.菜单54.下列哪个选项是创建一个标识有"关闭"按钮的语句?()A.JTextFieldb=newJtextField("关闭");B.JTextAreab=newJTextArea("关闭");C.JButtonb=newJbutton("关闭");D.JCheckboxb=newJcheckbox("关闭");55.鼠标事件的监听器接口MouseListener能实现的事件不包括()A.按下 B.释放C.点击 D.拖动56.在Java中,而无需在程序中用import导入的包是()A.java.appletB.java.awtC.java.utilD.java.lang57.类Panel默认的布局管理器是()A.GridLayout
B.BorderLayout
C.FlowLayout
D.CardLayout58.容器Frame缺省使用的布局编辑策略是()。A.FlowLayout B.BorderLayout C.GridLayout D.CardLayout59.容器类java.awt.container的父类是(
)。A.java.awt.Window
B.java.awt.Component
C.java.awt.Frame
D.java.awt.Panel60.编写Java图形界面程序时,若需要对发生的事件做出响应和处理,一般需要在程序的开头写上()语句。A.importjava.awt.*; B.importjava.applet.*;C.importjava.io.*; D.importjava.awt.event.*;三、填空题1.StdoutSystem.out作为PrintStream的实例,来实现stdout,它代表的是屏幕2.StdinSystem.in作为InputStream类的一个实例来实现stdin,它代表的是键盘,你可以使用其中两个成员函数,read()让你从输入中读一个字节,skip(long
n)让你在输入中跳过n个字节。3.Java中的IO流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。它们通过重载read()和write()方法定义了6个读写操作方法。4.File类不是一個標準的I/O类,在java.io类库中它是唯一的non-stream類別,既不能讀取文件內容,也不能修改文件內容,主要作用是收集檔案(或目錄)的相關信息,例如:建立文件对象、修改文件名、设置文件属性、测试文件属性5.目录是一个包含其他文件和路径列表的File类。当你创建一个File对象且它是目录时,isDirectory()方法返回ture。这种情况下,可以调用该对象的String[]list()方法来提取该目录内部其他文件和目录的列表6.所有的输出过滤流都是抽象类_____的子类。(FilterOutputStream)7、字符输入流BufferedReader使用了______技术。(PrintStream)8、InputStreamReader负责将InputStream转化成Reader,而OutputStreamWriter则将OutputStream转化成Writer。实际上是通过byte[]和String来关联。9、设a.txt为当前目录下的一个文本文件,则以字符方式向该文件写数据时,需要建立的输出流通道为:newFileWriter(“a.txt”);10.随机访问文件类是RandomAccessFile,它实现了与DataInputStream,DataOutputStream类同样实现的接口DataInput,DataOutput.。11.实现多线程的两种方式是:1、继承Thread类;2、实现Runnable接口。12、取得当前线程的语句是:Thread.currentThread();13.主线程的名称是main,默认创建的第一个子线程的名称是thread-014.可以调用Thread类的方法getPriority()和setPriority()来存取线程的优先级,线程的优先级界于1(MIN_PRIORITY)和10(MAX_PRIORITY)之间,缺省是5(NORM_PRIORITY)。15.(1)当多个线程同时运行时,会产生数据错误及其它冲突问题。Java语言提供了线程同步控制机制,一是锁定共享资源,使得在任何时刻只有一个线程能够访问共享资源,以保持共享资源的完整和一致,二是让互相通信的线程运行,以保证通信的正确性。(2)线程之间的通信有两种方法:一是把共享变量和方法封闭在一个类中,二是利用系统方法和控制线程通信.实现对共享资源互拆访问的方法是在方法声明中加入synchronized关键字来声明一个访问共享资源的方法,或者通过synchronized关键字来声明synchronized块。16、守护线程一般被用于在后台为其它线程提供服务。调用方法isDaemon()来判断一个线程是否是守护线程,也可以调用方法setDaemon()将一个线程设为守护线程。
17、InetAddress是用于封装IP地址和DNS的一个类。18、TCP/IP套接字是最可靠的双向流协议。等待客户端的服务器使用ServerSocket类,而要连接到服务器的客户端则使用Socket类。19、包中提供了一个类MulticastSocket,允许数据报以广播方式发送到该端口的所有客户。20.在TCP/IP协议的传输层除了TCP协议之外还有一个UDP协议。几个标准的应用层协议HTTP,FTP,SMTP…使用的都是TCP协议。UDP协议主要用于需要很强的实时交互性的场合,如网络游戏,视频会议等21、当我们得到一个URL对象后,就可以通过它读取指定的WWW资源。这时我们将使用URL的方法openStream(),其定义为:InputStreamopenStream();
22、URL的构造方法都声明抛弃非运行时异常MalformedURLException,因此生成URL对象时,我们必须要对这一例外进行处理,通常是用try-catch语句进行捕获。23、一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是delete、update、insert等或兼有
24、Java数据库操作基本流程:取得数据库连接、执行sql语句、处理执行结果、释放数据库连接。25、下列程序的功能是在监控台上每隔一秒钟显示一个字符串“Hello”,能够填写在程序中下划线位置,使程序完整并能正确运行的语句是publicclassTestimplementsRunnable{publicstaticvoidmain(Stringargs[]){Testt=newTest();Threadtt=newThread(t);tt.start();}publicvoidrun(){for(;;){try{Thread.sleep(1000);}catch(InterruptedExceptione){}System.put.println("Hello");}}}26、下列程序的功能是把整型数组myArray中的各元素存入文件ints.dat中,请将程序补充完整。Importjava.io.*;PublicclassWriteFile{Publicstaticvoidmain(String[]A){____int[]______myArray={10,20,30,40};Try{FileOutputStreamf=newFileOutputStream(“ints.dat”);DataOutputStream_____Dos________=newDataOutputStream(f);For(inti=0;i<myArray.length;i++)Dos.writeInt(myArray[i]);Dos.close();}catch(IOExceptionioe){ System.out.println(“IOException”);}}}27、面程序运行后,可以使用上下键移动文本框组件。请将程序补充完整。publicclassYidongextendsFrameimplementskeyListener{ TextFieldb1; intx,y; Yidong(){ setLayout(newFlowLayout()); b1=newTextField("走"); ____this.add(b1);__ b1.addkeyListener(this); setSize(200,120); } publicvoidkeyPressed(KeyEvente) { x=b1.getBouds().x; y=b1.getBouds().y; if(e.getKeyCode()==KeyEvent.VK_UP){ y=y-3; if(y<=1)y=50; b1.setLocation(x,y);}if(e.getkeyCode()==keyEven.VK_DOWN){ y=y+3; if(y>=100)y=50; ______b1.setLocation(x,y)_____;}}publicvoidkeyTyped(KeyEvente){}publicvoidkeyReleased(KeyEvente){}publicstaticvoidmain(Stringargs[]){ Yidonga=newYidong(); _____a.setVisible(true)____; }}28、下面的程序段完成服务器在端口4331监听客户端的连接,如果有连接,则在服务端显示客户端的IP地址,请将程序补充完整。publicclassServer{publicstaticvoidmain(Stringargs[]){ServerSocketserver=null;Server_threadthread;Socketyou=null;while(true){try{server=newServerSocket(___4331__________);}catch(IOExceptione1){}try{System.out.println("等待客户呼叫");you=____server.accept();_____System.out.println("客户的地址:"+____you.getInetAddress_____); }catch(IOExceptione){}}}}四、编程题1、利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标文件名通过命令行参数传入。答:importjava.io.*;classCopyFile{publicstaticvoidmain(String[]args){Stringfile1,file2;intch=0;try{file1=args[0];file2=args[1];FileInputStreamfis=newFileInputStream(file1);FileOutputStreamfos=newFileOutputStream(file2);while((ch=fis.read())!=-1)fos.write(ch);fis.close();fos.close();}catch(FileNotFoundExceptione){System.out.println("源文件:未找到!");}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("缺少运行参数!");System.exit(-1);}catch(IOExceptione){System.out.println(e.toString());}}}2、编写程序实现窗口,包含一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容复制到标签中。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassMyFrameextendsJFrameimplementsActionListener{
JLabellbl;
JTextFieldtxt;
JButtonbtn;
publicMyFrame(){
Containerc=getContentPane();
//设置窗体的布局为FlowLayout
setLayout(newFlowLayout());
lbl=newJLabel("初始信息");
txt=newJTextField(30);
btn=newJButton("确定");
c.add(lbl);
c.add(txt);
c.add(btn);
btn.addActionListener(this);
setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
lbl.setText(txt.getText());}publicstaticvoidmain(String[]args){
newMyFrame();}}3.编写一个程序,从键盘输入一串字符,从屏幕输出并将其存入a.txt文件中。3.答:importjava.io.*;publicclassInFile{publicstaticvoidmain(String[]args){intch;try{FileOutputStreamout=newFileOutputStream("a.txt");while((ch=System.in.read())!='\r'){System.out.write(ch);out.write(ch);}out.close();System.out.write('\n');}catch(IOExceptione){System.out.println(e.toString());}System.out.println("输出至文件完毕!");}}4、下列程序向屏幕输出文本文件内容:请完成所缺少的代码importjava.io.*;classreadtxt{publicstaticvoidmain(String[]args){try{FileReaderf1=newFileReader("u.txt");BufferedReaderbf1=newBufferedReader(f1);Stringline;line=bf1.readLine();while(line!=null)//判断所读的一行内容是否为空;{System.out.println(line);line=bf1.readLine();//继续读入下一行}bf1.close();//关闭文件的输入流;}catch(IOExceptione){e.printStackTrace();}}}5、设服务器端程序监听端口为8629,当收到客户端信息后,首先判断是否是“BYE”,若是,则立即向对方发送“BYE”,然后关闭监听,结束程序。若不是,则在屏幕上输出收到的信息,并由键盘上输入发送到对方的应答信息。请编写程序完成此功能。mport.*;importjava.io.*;classServer{publicServer(){try{ServerSocketss=newServerSocket(8629);System.out.println("服务器端已运行,等待客户端连接:");Socketsocket=ss.accept();//接收客户端的连接请求;BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream()));PrintWriterout=newPrintWriter(socket.getOutputStream(),true);BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));Stringline;while(true){line=(in.readLine().trim());if(line.equals("BYE")){out.println("BYE");out.close();in.close();socket.close();br.close();ss.close();break;}System.out.println("客户输入为:"+line);System.out.println("请输入回答:");line=br.readLine();//从键盘上输入信息;out.println(line);//向对方发送信
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论