JAVA期末复习资料2

更新时间:2023-03-13 04:26:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、判断题

1、在Java程序中发生异常时,JVM会找到每个符合条件的catch都执行一次。 ( )

2、在Java程序中异常分为运行时异常和非运行时异常,非运行异常必须进行处理( )

3、异常处理的try-catch块后必须有finally块。 ( ) 4、异常处理器的排列次序影响处理异常的方法。( )

5、用catch(Exception exception)语句可以捕获所有异常和错误。( ) 6、启动多线程必须调用start()方法, 如果调用run()方法则没有启动新的线程 ( )

7、run()方法是运行线程的主体,若run方法运行结束,线程就消亡了。 ( )

8、线程可以用yield()方法使同优先级的线程运行。( )

9、一个线程创建并启动后,它将执行自己的run()方法。 ( ) 10、线程可以用yield()方法使较低优先级的线程运行。( ) 11、每个Java线程的优先级都设置在常数1~12之间,默认的优先级设置为常数6。( )

12、JFrame,JPanel,JApplet和JButton四种组件都属于容器组件。 ( ) 13、BorderLayout是面板(JPanel)的缺省布局管理器。 ( ) 14、BorderLayout最多可以使用5个组件。( )

15、一个面板(JPanel)不能被加入另一个面板(JPanel)中。( ) 16、菜单需要一个JMenuBar对象,以使他们能被添加到JFrame。( ) 17、标签(JLabel)可以在屏幕上显示一个字符或一幅图片。( ) 18、BorderLayout是容器javax.swing.JFrame默认的布局管理器。( ) 19、JTextArea可以用来接收多行文本的输入。( ) 20、在Java坐标系统中,X值从左向右增加。( )

21、BorderLayout布局管理器把组件排列在北、南、东、西和中间区域。( ) 22、边界布局管理器(BorderLayout)把容器分成5个区域,每个区域只能放一个组件。( )

23、一个组件可以注册一个或多个事件监听器。( )

24、通过类java.net.URL中的成员方法可获得网络资源定位器的相关信息( )

25、Socket的实例对象调用其成员方法getInputStream来获得该Socket所对应的输入流。( )

26、数据报(DatagramPacket)传输是不可靠的,无法保证包按顺序到达。( ) 27、当Socket连接上面的传输结束后,服务器执行Socket的shutdown方法来关闭连接。( )

二、选择题

1、下说法中错误的一项是( )。 A、线程一旦创建,则立即自动进行

B、线程创建后需要调用start()方法,将线程置于可运行状态 C、调用线程的start()方法后,线程也不一定能立即执行 D、线程处于可运行状态,意味着它可以被调度

2、下列说法中不正确的一项是( )。

A、Thread类中没有义run()方法 B、可通过继承Thread类来创建线程

C、Runnable 接口中定义了run()方法 D、可以通过实现Runnable接口来创建线程

3、下列说法中,正确的一项是( )

A、线程可以不运行于程序中 B、一个程序中只能有一个线程 C、线程必须运行于程序中 D、线程本身就是程序 4、线程开始运行时,是从下列哪一个方法开始执行的( )

A、main() B、start() C、run() D、init() 5、Runnable接口中定义的方法是( )

A、start() B、init() C、run() D、Runnable() 6、下列说法中不正确的一项是( )。

A、多线程并发执行时,各个线程中语句的执行顺序是确定的 B、多线程并发执行时,线程之间的相对执行顺序是确定的 C、线程执行顺序的不确定性会导致执行结果的不确定性 D、线程执行顺序的不确定性会破坏共享数据的一致性

7、下列是继承Thread类后得到的子类,请选择正确的一项。( ) A、class A4 extends Thread B、class A4 implements Thread { {

void run( ) public void run() { {

//?.. //?.. } } } } C、class A4 extends Thread D、class A4 extends Thread { {

public void run( ) run( ) { {

//? //? } } } } 8、下面那一个函数是线程的入口函数? ( )

A)private void run() B)public void run() C)public void start() D)public void begin() 9、下列方法中可以用来创建一个新线程的是____。 A)实现java.lang.Runnable 接口并重写 start()方法 B)实现java.lang.Runnable 接口并重写 run()方法 C)继承java.lang.Thread 类并重写 run()方法 D)实现java.lang.Thread 类并实现 start()方法 10、Thread类中能运行线程体的方法是

A)start() B)resume() C)init() D)run() 11、在java程序中,下列关于线程的说法错误的是( )

A、线程启动调用start方法 B、线程的主体是run方法

C、线程运行中调用sleep方法可以进入阻塞状态

D、在java中,优先级的数值为1的线程可以抢占优先级为5的线程的资源 12、若编译和运行下列代码,出现的结果将是 ( ) public class MyAdd extends Thread{ static int total = 10; int n;

public MyAdd(int n) { this.n=n; } public void run() { try{

sleep(n);

total=total+n;

System.out.println(total); }

catch(Exception e){

System.out.println(“EXCEPTION!”); } }

public static void main(String[] args) { MyAdd t1 = new MyAdd(3000); MyAdd t2 = new MyAdd(1000); t1.start(); t2.start(); } }

A、1010, 4010 B、3010, 4010 C、1010, 3010 D、3010, 1010

13、若编译和运行下列代码,出现的结果将是________ public class MyThread implements Runnable { String myString = \ public void run() { this.myString = \ }

public static void main(String[] args) { MyThread t = new MyThread(); new Thread(t).start();

for (int i=0; i < 10; i++)

System.out.print(t.myString); } }

A、打印 yes yes yes yes yes yesyes yes yes yesB、打印 no no no no no no no no nono

C、打印 yes no yes no yes no yes no yes no D、打印结果无法确定 14、下面关于Java中线程的说法不正确的是( )?

A)调用join()方法可能抛出异常InterruptedException。 B)sleep()方法是Thread类的静态方法。

C)调用Thread类的sleep()方法可终止一个线程对象。 D)线程启动后执行的代码放在其run方法中。

15、下列关于try和catch子句的描述中,错误的一项是( )。

A、不同的catch代码段是不同的作用域,但是可以访问相互之间定义的局部变量

B、如果没有异常产生,则所有的catch代码段都被略过不执行 C、try代码段后跟有一个或多个catch代码段

D、异常总是由距离产生异常最近的匹配catch代码段处理 16、下列关于抛出异常的描述中,错误的一项是( )。 A、异常可以由try代码段中的语句抛出

B、异常可以从被try代码段中调用的方法中抛出 C、异常的抛出并不影响代码段的执行顺序

D、异常还可能产生于数组下标越界及Java虚拟机内部的错误等 17、下列描述中,正确的一项是( )。 A、异常机制可以用于流程控制

B、finally代码段在发生异常时不一定必须执行

C、在catch代码段中可以使用return语句来返回到异常抛出点 D、可以把catch到的异常对象再次抛出,使上层try—catch结构继续处理该异常事件

18、下列描述中,哪一项不属于finally语句应该执行的功能( ) A、释放资源 B、关闭文件 C、分配资源D、关闭数据库

19、如果一个程序段中有多个catch,则程序会按如下哪种情况执行? ( ) A、找到合适的异常类型后继续执行后面的catch B、找到每个符合条件的catch都执行一次

C、找到合适的异常类型后就不再执行后面的catch D、对每个catch都执行一次

20、对于异常处理语句try?catch,下面那句话不正确? ( ) A、一个符合条件的catch的处理语句中没有break语句,则执行后会继续执行后续catch

B、不管有没有捕获异常,finally部分都会被执行 C、找到合适的异常类型后就不再执行后面的catch D、应该先处理子异常类,再处理父异常类。 21、下列哪种操作不会抛出异常?( )

A) 浮点数除0 B) 浮点数乘0

C) 打开不存在的文件 D) 用负数索引访问数组

22、程序员将可能发生异常的代码放在( )块中,后面紧跟着一个或多个( )块。( )

A、catch、try B、try、catch C、try、exception D、exception、try 23、异常包含下列那些内容?( )

A)程序中的语法错误 B)程序的编译错误 C)程序执行过程中遇到的事先没有预料到的情况

D)程序事先定义好的可能出现的意外情况 24、有下列程序

class TestException {

class MyException extends Exception { }

public void testMethod() throws MyException{} public void test() {

testMethod(); } }

在public void test()后加上哪一句可以使编译不出错。( ) A、throw MyException B、throws MyException

C、throw new MyException() D、throws new MyException() 25、设有以下程序段 class TestException {

public static void main(String [] args) {

try{

return; }finally{

System.out.println(\ } } }

程序编译并执行,其结果将是( ) A、程序执行,但没有任何输出 B、程序输出finally

C、程序编译时出错,提示缺少catch

D、程序编译时出错,提示finally语句无法访问到。

26、用文件字节输出流对文件进行写操作时,需要先创建文件输出流对象,文件输出数据流的构造方法是 public FileOutputStream(String name,Boolean append) throws FileNotFoundException,当参数append的值为true时,表示( )

A、创建一个新文件

B、在原文件的尾部添加数据 C、覆盖原文件的内容

D、在原文件的指定位置添加数据

27、编译和运行下面的应用程序,并在命令行界面输入12345,则回车后屏幕输出的结果是( )。 public class A {

public static void main(String args[]) throws IOException{ BufferedReader buf=new BufferedReader( new InputStreamReader(System.in)); String str=buf.readLine();

int x=Integer.parseInt(str); System.out.println(x00); } }

A) 345 B)5 C) 123 D) 12345 28、下列说法中,错误的一项是( )。

A、Java系统的标准输入对象是System.in B、打开一个文件时不可能产生IOException C、使用File对象可以判断一个文件是否存在 D、使用File对象可以判断一个目录是否存在

29、下面的程序段的功能是( )。

File file1=new File(\ file1.mkdir();

A)在当前目录下生成子目录:\\xxx\\yyy B)生成目录:e:\\xxx\\yyy C)在当前目录下生成文件xxx.yyy D)以上说法都不对 30、下列叙述中,错误的是( ) A)File类能够存储文件 B)File类能够读写文件 C)File类能够建立文件

D)File类能够获取文件目录信息

31、下列哪个是JAVA程序和数据库连接的一种机制 ( ) A) URL B) JDBC C) SOCKET D) RMI

32、关于JDBC访问数据库的说法错误的是: ( ) A) 建立数据库连接时,必须加载驱动程序,可采用Class.forName()实现 B) 用于建立与某个数据源的连接可采用DriverManager类的getConnection方法

C) 建立数据库连接时,必须要进行异常处理

D) JDBC中查询语句的执行方法必须采用Statement类实现

33、定义Java.Applet程序时,必须有的import语句是( )。

A、import java.awt.event; B、import java.util. * ; C、import java.applet.Applet; D、import java.1ang.* ; 34、以下哪个方法不属于Applet小程序生命周期中的方法?( ) A、init B、main C、destroy D、stop 35、下列说法中,错误的一项是( )。

A、使用FlowLayout在容器中放置组件的策略是:从上到下、从左到右 B、使用FlowLayout进行布局管理时,组件的大小采用的是其最佳尺寸 C、使用FlowLayout进行布局管理时,不能调节组件之间的距离

D、用FlowLayout管理的组件随容器大小变化的变化规律是:组件大小不变,组件之间的相对位置改变

36、在类中若要处理ActionEvent事件,则该类需要实现的接口是 ( )。

A、ActionListener B、Runnable C、Serializable D、Event 37、下列说法中,错误的一项是( )。 A、内部类是被定义于另一个类中的类

B、使用内部类实现监听器,在编程时比较容易实现

C、内部类对象可以访问外部类的成员方法和变量,包括私有成员 D、由于内部类定义于另一个类,因此不适用于AWT的事件处理机制 38、选择正确的语句填入下列程序的横线处。( ) import javax.swing.*; public class ex28 {

public static void main(String[]args) {

JFrame f=new JFrame(“ex28”); JMenuBar mb=new JMenuBar( ); _________________________ JMenu ml=new JMenu(“menul”); JMenu m2=new JMenu(“menu2”); mb.add(m1);

mb.add(m2);

f.setSize(300,100); f.setVisible(true); }

A、setMenuBar(mB); B、mb.setMenuBar( ); C、f.setMenuBar(mB); D、mb.setMenuBar(f); 39、下列说法哪个是不正确的?( ) A、一个组件可以注册多个事件监听器 B、一个监听器只能监听一个组件 C、一个组件可以引发多种事件

D、一个监听器可以监听处理多种事件 40、下面说法错误的是( )

A)单击CheckBox (复选框)产生ItemEvent事件,并由ItemListener处理。 B) 处理JButton和JTextField事件监听器接口都是ActionListener。 C)一个面板(JPanel) 可以加入到另一个面板(JPanel)中。

D)在BorderLayout中,添加到NORTH区的两个按钮将并排显示。 41、下面说法错误的是:( )

A)单击JCheckBox (复选框)产生ItemEvent事件,并由ItemListener处理。 B) 处理JButton和JTextField事件监听器接口都是ActionListener。 C) 处理鼠标事件的事件监听器接口只有MouseListener。

D) 在JTextField和JPasswordField中输入数据后按Enter键会激发一个事件。

42、下列说法哪个是不正确的?( )

A)一个面板(Jpanel) 能被加入到另一个面板(Jpanel)中 B)一个监听器只能监听一个组件

C)Frame,Panel,Applet都属于容器组件。

D)Button和TextField都可用ActionListener接口实现事件处理 43、常规菜单是由()、()和菜单项组成。( ) JMenuItem、JCheckBoxMenuItem JButton、JRadioButton JPopupMenu、JMenuItem JMenuBar、JMenu

44、下列哪一个方法是自动调整窗口的大小 ( ) A、setSize()

B、setDefaultClose() C、pack()

D、setVisible() 45、下列哪个布局管理器使容器中各个构件呈网格布局,并且平均占据容器的空间?( ) GridLayout CardLayout BorderLayout FlowLayout 46、在AWT组建中用复选框组构件CheckboxGroup实现单选框的功能,但在Swing中,JAVA语言直接提供了一个单选框,它是( )

A) JButton B) JComboBox C) JRadioButton D) JCheckBox 47、下列叙述中,不符合JAVA语言特点的选项是( ) A、可移植性和跨平台的特点 B、多线程的并发机制

C、编译器将JAVA源程序转换成机器码

D、Applet是JAVA的特殊应用程序,它嵌入到HTML中,随主页发布到互联网上 48、JPanel和Applet的默认布局管理器是( ) A)CardLayout B)FlowLayout C)BorderLayout D)GridLayout

49下列语句错误的是:( )

A、ServerSocket svrsoc=new ServerSocket(8000);

B、URL urlBase=new URL(“http://www. zjut.edu.cn/”) ; C、File inFile = new File(“C:/ test.txt”);

D、BufferedReader br = new BufferedReader(“C:/ test.txt”);

三、程序填空题

1、通过TCP协议方式,定义一个服务器端,端口为5000,要求可以同时连接多个客户端,并且每个客户端在休眠10秒钟之后退出连接;将下面的程序补齐: importjava.net.*; importjava.io.*;

public class ServerExample implements (1)________{ private Socket m_socket;

private int m_id;

public (2)_________(Socket s, int id) { m_socket= s; m_id= id; }

public void (3)_______{

try {(4)_______. sleep(10000);

System.out.println(\ m_socket.close();

} catch (Exception e) {} }

public static void main(String args[]){ int n= 1;

_(5)_________ server= null; try{

server= new (6)____________(5000); System.out.println( \ }

catch (IOException e){} while (true){ try{

System.out.println(\(7)_________ s= server.accept( );

ServerExample t=new ServerExample(s, n++);

(8)_________ th =new Thread(t); (9)______.start( ); }

catch (IOException e){}

} // End of loop: while } // End of method: main }

2、下面是一个支持多个客户端交互的程序,请根据注释要求补充、完成代码: importjava.io.*;

(1)________ //加载网络API包

public class ServerThread extends Thread{ Socket socket=null; int clientnum;

publicServerThread(Socket socket,int num) { this.socket=socket; clientnum=num+1; }

public void run() { try{

String line;

InputStream in=(2)_______________//得到socket的输入流

BufferedReader is=new BufferedReader(new InputStreamReader(in)); PrintWriteros=new PrintWriter(socket.getOutputStream());

//由系统标准输入设备构造BufferedReader对象 BufferedReader sin=new BufferedReader ((3)______________);

System.out.println(\line=sin.readLine();

while(!line.equals(\os.println(line);

//刷新输出流,使Client马上收到该字符串 (4)____________

System.out.println(\

System.out.println(\line=sin.readLine(); }

os.close();//关闭Socket输出流 is.close(); //关闭Socket输入流 socket.close(); //关闭Socket对象 }catch(Exception e){

System.out.println(\ } } }

3、定义类ThdTest,其父类为Thread类;并在主方法中创建一个ThdTest的对象,同时启动该线程对象。

//声明类ThdTest,其父类为Thread类 (1)___________________ {

public void run(){

for(int i = 0; i < 10; i++){

(2)___________________________//输出当前线程的名字和i的值 try{

(3)__________________//让当前线程休眠100ms }catch(Exception e){ e.printStackTrace ();} } } }

public class Demo{

public static void main(String[] args){

(4)___________________//创建一个ThdTest的对象

(5)________________//启动线程对象,使其进入就绪状态

} }

4、下面的程序利用线程输出从a到z的26个字母,每隔一秒钟输出一个字母,程序不完整,请阅读程序代码,根据注释要求在划线处补充完成代码。 public class Test4 implements Runnable {

charcharArray[]=new char[26]; public Test4() {

for(int i = 0; i

charArray[i]=(char)(i+'a'); } }

public void run() { try {

for (int i = 0; i

(1)____________//休眠一秒钟 System.out.print(charArray[i]); } }

catch (InterruptedException e) {

e.printStackTrace(); } }

public static void main(String args[]) {

Thread t = _(2)______________//实例化线程对象 (3)________________//启动线程 } }

5、定义类ThdDemo,实现接口Runnable;并在主方法中创建一个ThdDemo的对象td,然后使用对象td创建一个线程对象,同时启动该线程对象。 //声明类ThdDemo,实现接口Runnable (1)__________________

classThdDemo implements Runnable{ public void run(){

for(int i = 0; i < 10; i++){

//输出当前线程的名字和i的值

System.out.println(Thread.currentThread().getName() + “:” + i); try{

(2)_______________//让当前线程休眠100ms }catch(Exception e){ e.printStackTrace ();} } } }

public class Demo{

public static void main(String[] args){

_(3)_______________//创建一个ThdDemo的对象td _(4)_____________//使用td创建线程对象

_(5)_______________//启动线程对象,使其进入就绪状态 } }

6、制作一个Applet小应用程序,设置其布局为BorderLayout,定义一个按钮和多行文本框并分别放到 “North”区域和“Center”区域。创建网页文件运行这个Applet程序。 importjava.applet.*; importjavax.swing.*;

_(1)______________________________________________________//声明AppletDemo类,其父类为Applet,并实现接口ActionListener {

Jbutton btn;

JTextArea txt; public void init(){

_(2)_________________________//设置其布局为BorderLayout btn = new JButton(“Show Msg”); txt = new JTextArea(3, 20);

_______________________ //把按钮btn放到“North”区域,txt放到“Center”区域

(3)_______________________

_(4)_______________________//给按钮注册监听器 }

public void actionPerformed(ActionEvent e){ txt.append(btn.getText()); } }

网页文件为:

7、编写程序实现窗口,包含一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容提制到标签中。(使用AWT) (1)//引入相关包 publicMyFrame{ publicMyFrame(){

Frame fr = new Frame(); //设置窗体的布局为FlowLayout (2)

Label lbl = new Label(“Init info”); TextField txt = new TextField(30);

Button btn = new Button(“Sure”); fr.add(lbl); fr.add(txt); fr.add(btn);

//给按钮注册监听器 (3)

//使用窗体可见,并设置大小 (3) }

//定义内部类监听ActionEvent事件 (4) {

public void actionPerformed(ActionEvent e){ lbl.setText(txt.getText()); } });

public static void main(String[] args){ newMyFrame(); } }

8、设计程序实现带菜单的窗口,包含“File”和“Edit”二个菜单,在“File”下又包含“New”, “Open”, “Exit”三个菜单项,选择“Exit”项时退出应用程序。(提示:涉及到的类有MenuBar, Menu, MenuItem) importjava.awt.*;

importjava.awt.event.*; public class MenuTest{ //定义各菜单项

MenuItem newItem = new MenuItem(“New”); MenuItem openItem = new MenuItem(“Open”); MenuItem exitItem = new MenuItem(“Exit”); public MenuTest(){

Frame fr = new Frame();

//定义菜单

Menu fileMenu = new Menu(“File”); Menu editMenu = new Menu(“Edit”);

//往File菜单中添加菜单项newItem, openItem, exitItem

(1)___________________________

//定义菜单条,并添加菜单fileMenu, editMenu

(2)____________________________ //给窗口添加菜单条 fr.setMenuBar(bar); //给exitItem注册事件

(3)____________________________ //设置窗口的可见性 fr.setSize(200,200); //fr.setVisible(true); }

//定义内部类处理菜单事件

class MenuHandler implements ActionListener{ public void actionPerformed(ActionEvent e){ //如果用户点击了exit菜单项则退出程序 (4)________________________ System.exit(0); } }

//定义main方法

(5)___________________ }

9、写程序实现包括一个复选框的窗体,并处理用户选取事件。 importjava.awt.*;

importjava.awt.event.*;

(1) _________________//类声明,类名为MyCheck,继承自Frame类 { //类体

public MyCheck(){

(2)_________________ //创建Panel的一个实例,并设置其布局为FlowLayout

Checkbox cbx = new Checkbox(“isPassed”); (3)_________________

//向面板中加入组件cbx,并为组件注册监听器 add(p);

(4)___________________________ //把窗体设为可见,并设置大小 }

public static void main(String[] args){ newMyCheck(); }

//定义内部类实现监听,相应的监听接口为ItemListener (5) _____________________________//内部类的声明 {

public void itemStateChanged(ItemEvent e){ System.out.println(e); } } }

10、制作一个窗体,包括一个带图标的按钮(JButton类对象),并设置边框,当用户点击按钮时,弹出一个确认对话框。 importjavax.swing.*;

importjavax.swing.border.*; importjava.awt.*; class ViewDemo{ JFrame fr;

public ViewDemo(){

//用ImageIcon类包装一张图片(java.gif), //该图片在当前目录的img子目录下 (1)________________________ //创建一个带有图标的按钮btn (2)____________________________

/**使用线形边框类的构造方法LineBorder(Color c, int n), *创建一个边框对象bd,其中c为边框的颜色,n为边框的粗细。 */

(3)_________________________ btn.setBorder(bd); //给按钮注册监听事件

(4)______________________ fr = new JFrame();

Container c = fr.getContentPane(); c.add(btn);

fr.setSize(300,300); fr.setVisible(true); }

class BtnHandler implements ActionListener{ public void actionPerformed(ActionEvent e){ String msg = \

/*使用JOptionPane类的静态方法showConfirmDialog(Frame f, String s),其中f为对话框所属的窗体,s为对话框显示的信息,弹出一个确认对话框。*/

(5)__________________________ } }

}

11、以下程序的功能为:读入从键盘输入的一串字符存放于一个字节数组中,然后将该数组写入到当前目录下的文件out.txt中。 Import________________

public class byteArraytofile{

public static void main(String[] args){ try{

byte buffer[]=new _______[128];

FileOutputStream fos= new FileOutputStream(__________);

System.in.read(buffer);

fos.write(__________,0,buffer.length); fos.close(); }

catch(___________ ){} } }

四、程序阅读题

1、掌握数据库的操作 import java.sql.*; class Test_JDBC {

public static void main(String[] srg) { String driverName = \ String dbURL = \DatabaseName=DATA_TEST\

String userName = \ String userPwd = \ Connection dbConn=null; Statement stat=null; ResultSet rs=null;

String sql=\ try {

Class.forName(driverName);

dbConn = DriverManager.getConnection(dbURL, userName, userPwd);

stat=dbConn.createStatement(); rs=stat.executeQuery(sql); while(rs.next()) {

System.out.println(rs.getInt(1));

System.out.println(rs.getString(2)); }

} catch (Exception e) {

e.printStackTrace(); } } }

2、掌握列表的操作 import java.util.*; class IteratorDemo2 {

public static void main(String args[]){ //我们先往链表中装东西

ArrayList a = new ArrayList(); a.add(\东西1\ a.add(\东西2\ a.add(\东西3\ a.add(\东西4\

a.add(2,\东西5\

//从链表中取东西怎么办呢,自然就用到了迭代器 //用法是这样的

Iterator iter = a.iterator() ; //iter迭代器对象,可以用它来数了

while(iter.hasNext()){ //先往左数,如果有东西就执行{}里的语句

String m = iter.next(); //数到什么就拿出来 赋值给m System.out.println(m); //拿出m用一下,即打印 } } }

3、写出下列程序的作用

import java.io.IOException; import java.net.Socket; class Scan extends Thread{ private int[] p; Socket ss = null;

public Scan(int[] p) { this.p = p; }

public static void main(String[] args) { for(int i=0;i<5000;i=i+1000){ new Scan(new int[]{ i+1,i+1000 }).start(); }

}

public void run() {

System.err.println(\启动线程\ for(int i=p[0]; i

ss = new Socket(\

System.err.println(\这是你想要的数据: \ } catch (IOException e) { e.printStackTrace(); } } } }

4、写出下列程序代码的运行结果:

class userException extends Exception{ userException(){}

userException(String str){ super(str); } }

class MyException {

final static int ARRAY_MAX_LENGTH=10; void judge(int []a){ try{

if(a.length

System.out.println(\数组的长度没有超过规定的最大值!\ }

else{

throw new userException(\数组可能越界!\ }

}catch(userException e){

System.out.println(e.toString()); }

finally{

System.out.println(\退出返回!\ } }

public static void main(String agrs[]){ try{

int a[]=new int[10];

MyException myE=new MyException(); myE.judge(a);

}catch(Exception e){

System.out.println(e.toString()); } } }

5、写出下列程序代码的运行结果:

class MinusException extends Exception { int number;

public MinusException (String msg, int i) { super(msg);

this.number = i; } }

class Salary {

private String name; private int salary;

public Salary(String n, int s ) throws MinusException { this.name=n;

if (s<0) throw new MinusException(\工资不能为负!\ this.salary=s; }

public void print() {

System.out.println(name+\的工资为\元。\ } }

class TestSalary {

public static void main(String [] args) { try {

Salary s1=new Salary(“张三”,1000); s1.print( );

Salary s2=new Salary(“李四”,-10); s2.print( ); }

catch(MinusException e) {

System.out.println(\异常:\ } } }

6、仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。 class TestException {

public static String toSeparateNumber(String number) {

String formatedNumber=\ try {

double n=Double.parseDouble(number); //double=1200.45 number=Double.toString(n);

int i=number.indexOf('.'); //在number字符串中找到字符.的位置在第4个

if (i>=0) {

formatedNumber=number.substring(i,number.length());//截取字符串从4开始,到7结束 i=i-1; }

else i=number.length()-1; int k=0;

for (int j = i; j>=0; j--) //i=3 { formatedNumber=number.charAt(j)+formatedNumber;

//charAt(j)是取指定位置的字符,就是去3位置上的字符与formatedNumber(.45)合并 k=(k+1)%3;

if (k==0 && j!=0) formatedNumber=\ // 得到最后结果1,200.45 } }

catch(NumberFormatException e) {

System.out.println (\参数错误!要求是数字格式!\ }

return formatedNumber; }

public static void main(String [] args) {

System.out.println

(TestException.toSeparateNumber(\ System.out.println

(TestException.toSeparateNumber(\异常报错了 } }

7、阅读下面程序代码,写出程序运行的输出结果。 class Test3 {

public static void main(String []args){ try

{

callMethod(); }

catch(Exception e) {

System.out.print(\ }

System.out.println(\ }

static void createException() {

throw new ArithmeticException(); }

static void callMethod() {

try {

createException();

System.out.print(\ }

catch(ArrayIndexOutOfBoundsException e) {

System.out.print(\ }

finally {

System.out.print(\ }

System.out.print(\ } }

8、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。 class myException extends Exception{} public class Sample{ public void foo(){ try{

System.out.print(1); bar();

System.out.print(2); }catch(myException e){ System.out.print(3); } finally{

System.out.print(4); } }

public void bar() throws myException{ throw new myException(); }

public static void main(String args[]){ Sample s=new Sample(); s.foo(); } }

9、仔细阅读下面的程序,写出程序的执行顺序(写出编号): public class UsingExceptions {

public static void main( String args[] ){ try{

method1(); // 1 }catch(Exception e){

System.err.println(e.getMessage()); // 2 }

finally{

System.out.println(\ } }

public static void method1() throws Exception { method2(); //4 }

public static void method2() throws Exception { method3(); //5 }

public static void method3() throws Exception{

throw new Exception( \ } }

10、阅读下面的程序Test.java: import java.io.*; public class Test{

public static void main(String argv[]){ Test t = new Test();

System.out.println(t.fliton()); }

public int fliton(){ try{

FileInputStream din = new FileInputStream(\

din.read();

}catch(IOException ioe){

System.out.println(\ return -1; }

finally{

System.out.println(\ }

return 0; } }

如果文件test.txt与Test.java在同一个目录下,test.txt中仅有一行字符串“hello world!”,上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

11、阅读下面的程序,写出带划线语句或注释,并写出该程序的作用: import java.io.*; public class Test {

public static void main(String args[]) { scanFiles(\ }

public static void scanFiles(String path) { if (path == null) return;

File f = new File(path); // if (!f.exists()) return;

if (f.isFile()) // System.out.println(f.getAbsolutePath()); else {

File dir[] = f.listFiles(); for (int i = 0; i < dir.length; i++)

scanFiles(dir[i].getAbsolutePath());// } } }

本文来源:https://www.bwwdw.com/article/juwo.html

Top