JAVA语言与面向对象程序设计课后习题答案(7)

2019-05-27 20:54

} }

26.有一个n*m的矩阵,编写程序,找出其中最大的那个元素所在的行和列,并输出其值及行号和列号。class Ex7_26

{ public static void main(String[] args) { int n = 5; int m = 6; int [][] a = new int[n][m]; for( int i=0; i

第8章 Java的多线程

1.程序中怎样创建线程?

答:创建线程对象有两种方法,一是通过继承Thread类,一是向Thread类传递一个Runnable对象。

2.程序中怎样控制线程?

答:启动一个线程:调用start()方法。

终止或暂停一个线程:一般采取给线程设定一个标记变量的方法,来决定线程是否应该终止或暂停。

设定线程的优先级:使用Thread对象的setPriority( int priority)方法。

3.多线程之间怎样进行同步?

答:可以通过使用关键字synchronized,使用对象的wait()、notify()方法来实现线程间的同步。

4.编写一个程序,用一个线程显示时间,一个线程用来计算(如判断一个大数是否是质数),当质数计算完毕后,停止时间的显示。

答:见程序。import java.math.BigInteger; import java.util.Random;

public class Ex8_4 { public static void main(String args[]) { new Ex8_4().test(); }

public void test() { MyTask mytask = new MyTask(); Thread thread = new Thread(mytask); thread.start(); new Thread( new Clock() ).start(); }

boolean finished = false;

class MyTask implements Runnable { public void run() { for( int i=0; i<10; i++ ){ doOnce(); Thread.yield(); } finished = true; } public void doOnce() { Random rnd = new Random(); BigInteger prime =BigInteger.probablePrime(800,rnd); System.out.println(\随机数是:\ boolean bo=prime.isProbablePrime( 10000 ); //验证 System.out.println(bo?\很可能是质数\不是质数\

} }

class Clock implements Runnable { public void run() { System.out.println(\ while( ! finished ){ System.out.print( \ try{ Thread.sleep(1000); } catch( InterruptedException e ){} Thread.yield(); } } } }

第9章 流、文件及基于文本的应用

1.字节流与字符流有什么差别?

答:按处理数据的类型,流可以分为字节流与字符流,它们处理的信息的基本单位分别是字节(byte)与字符(char)。

2.节点流与处理流有什么差别?

答:节点流(Node Stream): 直接与特定的地方(如磁盘、内存、设备等)相连,可以从/向一个特定的地(节点)读写数据。如文件流FileReader。

处理流(Processing Stream): 是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读/写功能。处理流又称为过滤流。如缓冲处理流BufferedReader。

3.输入流与输出流各有什么方法?

答:输入流InputStream类最重要的方法是读数据的read()方法。read()方法功能是逐字节地二进制的原始方式读入数据。另外,它还有skip(long n)、reset()、available()、close()方法等。

输出流OutputStream类的重要方法是write(),它的功能是将字节写入流中。另外,它还有flush()及close()方法。

4.怎样进行文件及目录的管理?

答:Java支持文件管理和目录管理,它们都是由专门的java.io.File类来实现。每个File类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相 关信息,如名称、长度、所含文件个数等,调用它的方法则可以完成对文件或目录的常用管 理操作,如创建、删除等。

5.编写一个程序,从命令上行接收两个实数,计算其乘积。 答:参见程序。import java.io.*; public class Ex9_5 { public static void main(String[] args) { String s = \ double c = 0; double d = 0; try{

BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); System.out.print(\请输入一个数: \ s = in.readLine(); c = Double.parseDouble( s ); System.out.print(\请输入另一个数: \ s = in.readLine(); d = Double.parseDouble( s ); System.out.println(\这两个数的积为: \ }catch(IOException e){} } }

6.编写一个程序,从命令行上接收两个文件名,比较两个文件的长度及内容。 答:参见程序。import java.io.*; public class Ex9_6 { public static void main(String[] args) { try{ BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); System.out.print(\请输入一个文件名: \ String name1 = in.readLine(); System.out.print(\请输入另一个文件名: \ String name2 = in.readLine(); File file1 = new File( name1 ); File file2 = new File( name2 ); long len1 = file1.length(); long len2 = file2.length(); if( len1 != len2 ){ System.out.println( \这两个文件的长度不一样\ return; } String text1 = readFileToEnd( file1 ); String text2 = readFileToEnd( file2 ); System.out.println( text1 ); System.out.println( text2 ); if( text1.equals(text2) ){ System.out.println( \这两个文件的内容相同\ }else{ System.out.println( \这两个文件的内容不一样\ } }catch(IOException e){

e.printStackTrace(); } } public static String readFileToEnd( File file ){ StringBuffer text = new StringBuffer(); try { BufferedReader in = new BufferedReader( new FileReader(file)); String s = in.readLine(); while ( s != null ) { text.append( s + \ s = in.readLine(); } in.close(); } catch (IOException e2) { e2.printStackTrace(); } return text.toString(); } }

7.编写一个程序,能将一个Java源程序中的空行及注释去掉。 答:参见程序。import java.io.*; public class Ex9_7 { public static void main (String[] args) { String infname = \ String outfname = \ if( args.length >= 1 ) infname = args[0]; if( args.length >= 2 ) outfname = args[1]; try { File fin = new File(infname); File fout = new File(outfname); BufferedReader in = new BufferedReader(new FileReader(fin)); PrintWriter out = new PrintWriter(new FileWriter(fout)); int cnt = 0; // 行号 String s = in.readLine(); while ( s != null ) { cnt ++; s = deleteComments(s); //去掉以//开始的注释 if( s.length() != 0 ){ out.println( s ); //写出非空行 } s = in.readLine(); //读入 } in.close(); // 关闭缓冲读入流及文件读入流的连接. out.close();


JAVA语言与面向对象程序设计课后习题答案(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:酒店客房管理系统毕业设计(论文)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: