云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Java第6~18章例题分析与书后答案

Java第6~18章例题分析与书后答案

  • 62 次阅读
  • 3 次下载
  • 2025/7/1 2:40:05

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

}

14.设计一个程序,实现下述功能:假设file1.txt包含“1,3,5,7,8”,另一个文件file2.txt包含“2,9,11,13”,编写程序把这两个文件的内容合并到一个新文件中,并且要求这些数据必须按照升序排列写入到新文件中。 参考代码: import java.io.*; import java.util.Arrays; public class Ex14 {

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

FileReader fr1=new FileReader(\ BufferedReader bf1=new BufferedReader(fr1); FileReader fr2=new FileReader(\ BufferedReader bf2=new BufferedReader(fr2); String str1=bf1.readLine(); String str2=bf2.readLine();

bf1.close();fr1.close();bf2.close();fr2.close(); String[] strI=str1.split(\String[] strJ=str2.split(\

String[] str=new String[strI.length+strJ.length]; System.arraycopy(strI,0,str,0,strI.length); System.arraycopy(strJ,0,str,strI.length, strJ.length); Arrays.sort(str);

FileWriter fw=new FileWriter(\BufferedWriter bw=new BufferedWriter(fw); for(int i=0;i

FileWriter fw=new FileWriter(\fw.write(i); fw.close();

} catch (IOException e) { e.printStackTrace(); }

} }

bw.write(\

}

bw.close();fw.close();

} catch (Exception e) { e.printStackTrace(); }

第九章 多线程 9.1例题解析

例9.1.1下面选项中,不会导致线程停止执行的是()。 A. 调用一个线程对象的wait()方法 B. 调用一个输入流对象的read()方法 C. 调用一个线程对象的setPriority()方法 D. 从一个同步语句块中退出

【分析】当线程调用wait方法时,会阻塞自己的执行,等待其他线程唤醒;调用setPriority方法时,如果设置的优先级很低,所在进程中存在优先级更高的线程时,同样会阻塞自己的执行;而执行某个输入流对象的read方法时,会等待用户干预,输入数据;但是,从同步块退出时,不会停止线程的执行。本题的正确答案是D。 例9.1.2 分析下面的程序代码: public class Test {

public static void main(String[] args) { A a=new A(); }

}

class A extends Thread {

public int i=3; public void run() {

i=20; } }

在执行该程序后,程序的输出结果一定是()。 A.j=3 B.j=20

C.输出结果不确定 D.程序有错误

【分析】程序在执行到“a.start();”语句时,启动了线程a,但是CPU何时调用该线程

a.start();

int j=a.i;

System.out.println(\

执行run()方法,或者继续原来的主线程,执行“int j=a.i;”语句,程序调用者是无法确定。程序执行后,可能的输出结果是A或者B,是不确定的。因此,本题选择C选项。 例9.1.3 分析下面的程序代码 class SynA extends Thread {

public int x;

public static int count;

public synchronized void run() { while(true && ++count<=3){

}

x++;

System.out.println(\

//E行

} }

public class SynTest {

public static void main(String[] args) { SynA s1=new SynA(); }

SynA s2=new SynA(); s1.start();s2.start();

//F行 //G行

}

下面关于程序输出结果的描述中,正确的是()。 A.程序确定输出三行,每行的结果不确定 B.程序确定输出三行,每行的结果确定 C.程序输出行数不确定,每行结果确定 D.程序输出行数不确定,每行结果不确定

【分析】正确答案是A。程序的E行设置了循环条件count<=3,而count是类变量,因此输出语句只能执行3次,输出结果一定是3行;F行和G行的语句分别启动了s1和s2两个线程,由于run()方法设置了synchronized关键字,每次只能一个线程运行run()方法,但是执行哪个线程是不确定的,因此每行输出的内容是不确定的。 例9.1.4 试编写程序,用异常抛出机制实现两段程序代码的交替执行。 【分析】在程序中采用Java的异常处理机制抛出和处理异常。 参考代码:

public class ExceptionChange {

public static void main(String[] args) {

boolean flag=true; while(true){

try { if (flag == true) {

搜索更多关于: Java第6~18章例题分析与书后答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

public static void main(String[] args) { } } 14.设计一个程序,实现下述功能:假设file1.txt包含“1,3,5,7,8”,另一个文件file2.txt包含“2,9,11,13”,编写程序把这两个文件的内容合并到一个新文件中,并且要求这些数据必须按照升序排列写入到新文件中。 参考代码: import java.io.*; import java.util.Arrays; public class Ex14 { public static void main(String[] args) { try { FileReader fr1=new FileReader(\ Buffer

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com