java实验指导书
更新时间:2023-10-17 23:32:01 阅读量: 综合文库 文档下载
实验一 JAVA基础 .............................................................................................................................1 实验二 初识类与对象 .......................................................................................................................2 实验三 类的继承与多态 ................................................................................................................. 10 实验四 字符串 ................................................................................................................................. 18 实验五 时间、日期与数字 ............................................................................................................. 20 实验六 AWT组件及事件基础 ....................................................................................................... 21 实验七 多线程的创建 ..................................................................................................................... 28 实验八 文件输入输出流 ................................................................................................................. 30
《Java语言程序设计》实验指导书
实验一 Java基础
实验目的
? ? ? ? ? ?
熟悉基本数据类型;变量的命名规则;常量的表达。 熟悉数据类型的强制转换和自动转换。 熟悉数组的应用。
掌握各种运算符、表达式;运算符的优先级。
掌握Java程序的三种基本结构,即顺序结构、分支结构和循环结构。 掌握break、cotinue作用。
实验内容
1. 编写程序,求1!+2!+3!+…+10!
2. 编写一个应用程序,求100以内的全部素数。
3. 编写程序,用do-while和for循环计算1+1/2!+1/3!+1/4!+??的前20项和。
第 1 页 共 32页
《Java语言程序设计》实验指导书
实验二 初识类与对象
实验目的
? ? ? ? ?
掌握类的定义和使用。 掌握对象的声明和使用。 掌握构造函数的概念和使用。
掌握类变量与实例变量,以及类方法与实例区别。 掌握包的概念与使用。
实验内容
1. 分析并运行下面程序。程序源代码如下:
public class Excise2_1 {
int i;
public void Excise2_1(int i) {
this.i=i;
System.out.println(“******构造方法******”); }
public static void main(String arg[]) {
Excise3_1 e=new Excise3_1();
} } 问题:
(1) 改正程序中错误的地方,使其能正确执行?
(2) 程序中构造方法是哪个方法?构造方法的目的是什么? (3) 请指出this在程序中的作用。
2. 分析并运行下面程序。程序源代码如下:
class Circle {
第 2 页 共 32页
《Java语言程序设计》实验指导书
float f1=3.14f; static float f2=100; void method1() {
System.out.println(“f1=”+f1);
}
static void method2()
{
System.out.println(“f2=”+f2);
} }
public class DifferFun {
public static void main(String arg[]) {
float f3;
Circle c1=new Circle(); f3=c1.f1+Circle.f2; c1.method1(); Circle.method2(); } }
问题:
(1) 变量f1和f2的引用方式有何不同?
(2) 方法method1()和method2()的调用方式有何不同? (3) 程序中哪些是实例变量?哪些是类变量?
3. 编写一个java应用程序,该程序中有3个类:Trangle,Lader和Circle,分别用来刻画
“三角形”、“梯形”和“圆形”。具体要求如下:
? Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有
返回周长、面积以及修改三个边的方法。另外,Trangle类还具有一个boolean型的属性,该忏悔用来判断三个数能否构成一个三角形。 ? Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的方法。 ? Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的
功能。
程序模板:
请按模板要求,将【代码】替换为java程序代码。
AreaAndLength.java
第 3 页 共 32页
《Java语言程序设计》实验指导书
class Trangle{ double sideA,sideB,sideC,area,length; boolean boo; public Trangle(double a,double b,double c){ 【代码1】//参数a,b,c分别赋值给sideA,sideB,sideC if(【代码2】){//a,b,c构成三角形的条件表达式 【代码3】//给boo赋值 }else{ 【代码4】//给boo赋值 } } double getLength(){ 【代码5】//方法体,要求计算出length的值并返回 } public double getArea(){ if(boo){ double p=(sideA+sideB+sideC)/2.0; area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)); return area; }else{ System.out.println(\不是一个三角形,不能计算面积\ return 0; } } public void setABC(double a,double b,double c){ 【代码6】//参数a,b,c分别赋值给sideA,sideB,sideC if(【代码7】){//a,b,c构成三角形的条件表达式 【代码8】//给boo赋值 }else{ 【代码9】//给boo赋值 } } }
class Lader{ double above,bottom,height,area; Lader(double above,double bottom,double height){ 【代码10】//方法体,将参数a,b,c分别赋值给above,bottom,height } double getArea(){
第 4 页 共 32页
《Java语言程序设计》实验指导书
实验三 类的继承与多态
实验目的
? ? ? ? ?
掌握类的继承。 掌握上转型对象。 掌握接口回调。
掌握Java捕捉异常机制
实验内容
1.分析并运行下面程序。程序源代码如下:
public class ConstExam {
public static void main(String args[]) {
final int value=100; value=200;
System.out.println(“变量value的值为:”+value); } } 问题:
(1) 程序的运行结果是什么?为什么? (2) 程序中哪条语句是定义常量的?
2.编写一个Java应用程序,除了主类外,该程序中还有4个类:
People,ChinaPeople,AmericanPeople和BeijingPeeople。要求如下: ? People类有访问权限是protected的double型成员变量:height和weight,以及public void
speakHello(),public void averageHeight()和public void averageWeight()方法。 ? ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。要求
ChinaPeople重写父类的public void speakHello(),public void averageHeight()和public void averageWeight()方法。
? AmericanPeople类是People的子类,新增了public void AmericanBoxing()方法。要求
第 10 页 共 32页
《Java语言程序设计》实验指导书
AmericanPeople重写父类的public void speakHello(),public void averageHeight()和public void averageWeight()方法。
? BeijingPeople类是ChinaPeople的子类,新增了public void BeijingOpera()方法。要求
ChinaPeople重写父类的public void speakHello(),public void averageHeight()和public void averageWeight()方法。
程序运行效果示例:
程序模板 Example.java
class People {
protected double weight,height;
第 11 页 共 32页
《Java语言程序设计》实验指导书
public void speakHello() {
System.out.println(\ }
public void averageHeight() {
height=173;
System.out.println(\ }
public void averageWeight() {
weight=70;
System.out.println(\ } }
class ChinaPeople extends People {
【代码1】 //重写public void speakHello()方法,要求输出类似“你好,吃了吗”这样的
//汉语信息
【代码2】 //重写public void averageHeight()方法,要求输出类似 //“中国人的平均身高:168.78厘米”这样的汉语信息 【代码3】 //重写public void averageWeight()方法,
//要求输出类似“中国人的平均体重:65公斤”这样的汉语信息 public void chinaGongfu() {
【代码4】//输出中国武术的信息,例如:\坐如钟,站如松,睡如弓\等 } }
class AmericanPeople extends People {
【代码5】 //重写public void speakHello()方法,要求输出类似 //“How do you do”这样的英语信息。 【代码6】 //重写public void averageHeight()方法 【代码7】 //重写public void averageWeight()方法 public void americanBoxing() {
【代码8】//输出拳击的信息,例如,“直拳”、“钩拳”等 } }
第 12 页 共 32页
《Java语言程序设计》实验指导书
class BeijingPeople extends ChinaPeople {
【代码9】 //重写public void speakHello()方法,要求输出类似“您好”这样的汉语信息
【代码10】 //重写public void averageHeight()方法
【代码11】 //重写public void averageWeight()方法 public void beijingOpera() {
【代码12】//输出京剧的信息 } }
public class Example {
public static void main(String args[]) {
ChinaPeople chinaPeople=new ChinaPeople();
AmericanPeople americanPeople=new AmericanPeople(); BeijingPeople beijingPeople=new BeijingPeople(); chinaPeople.speakHello(); americanPeople.speakHello(); beijingPeople.speakHello(); chinaPeople.averageHeight(); americanPeople.averageHeight(); beijingPeople.averageHeight(); chinaPeople.averageWeight(); americanPeople.averageWeight(); beijingPeople.averageWeight(); chinaPeople.chinaGongfu();
americanPeople.americanBoxing(); beijingPeople.beijingOpera() ; beijingPeople.chinaGongfu(); } }
3.要求有一个abstract类,类名为Employee。Employee的子类有YearWorker, MonthWorker, WeekWorker。YearWorkerr对象按年领取薪水,MonthWorker对象按月领取薪水,WeekWorker对象按周领取薪水。Employee类有一个abstract方法:
public abstract earnings();
子类必须重写父类earnings()方法,给出各自领取报酬的具体方式。
有一个Company类,该类和Employee数组作为成员,Employee数组的单元可以
第 13 页 共 32页
《Java语言程序设计》实验指导书
是YearWorker,MonthWorker或WeekWorker对象的上转型对象。程序能输出Company对象一年需要支付的薪水总额。 模板代码 HardWork.java
abstract class Employee {
public abstract double earnings(); }
class YearWorker extends Employee {
【代码1】 //重写earnings()方法 }
class MonthWorker extends Employee {
【代码2】 //重写earnings()方法。 }
class WeekWorker extends Employee {
【代码3】 //重写earnings()方法。 }
class Company {
Employee[] employee; double salaries=0;
Company(Employee[] employee) {
this.employee=employee; }
public double salariesPay() {
salaries=0;
【代码4】 //计算salaries。 return salaries; } }
public class HardWork {
public static void main(String args[])
第 14 页 共 32页
《Java语言程序设计》实验指导书
{
Employee[] employee=new Employee[20]; for(int i=0;i if(i%3==0) employee[i]=new WeekWorker(); else if(i%3==1) employee[i]=new MonthWorker(); else if(i%3==2) employee[i]=new YearWorker(); } Company company=new Company(employee); System.out.println(\公司年工资总额:\ } } 4.卡车要装载一批,货物有3种商品:电视、计算机和洗衣机。需要计算出大货车和小货车各自所装载的3种货物的总重量。 要求有一个ComputeWeight接口,该接口中有一个方法: public double computeWeight() 有3个实现该接口的类:Television、Computer和WashMachine。这3个类通过实现接口ComputeWeight接口给出自重。(Television、Computer和WashMachine 的重量分别为45.5,65.5和145) 有一个Car类,该类用ComputeWeight接口类型的数组作为成员,那么该数组的单元就可以存放Television对象的引用、Computer对象的引用或WashMachine对象的引用。程序能输出Car对象所装载的货物的总重量。 程序模板 Road.java interface ComputeWeight{ public double computeWeight(); } class Television implements ComputeWeight{ 【代码1】//实现computeWeight()方法 } class Computer implements ComputeWeight{ 第 15 页 共 32页 《Java语言程序设计》实验指导书 【代码2】// 实现computeWeight()方法 } class WashMachine implements ComputeWeight{ 【代码3】// 实现computeWeight()方法 } class Car{ ComputeWeight[] goods; double totalWeights; public Car(ComputeWeight[] goods) { this.goods=goods; } public double getTotalWeights(){ totalWeights=0; 【代码4】//计算totalWeights return totalWeights; } } public class Road { public static void main(String[] args) { ComputeWeight[] goodsOne=new ComputeWeight[50], goodsTwo=new ComputeWeight[22]; for(int i=0;i 第 16 页 共 32页 《Java语言程序设计》实验指导书 } } } } Car bigCar=new Car(goodsOne); System.out.println(\大货车装载的货物重量:\Car smallCar=new Car(goodsTwo); System.out.println(\小货车装载的货物重量:\ 5. 试设计boolean prime(int n)方法,可用来判断n是否为质数,若为质数,则响应true,若不是,则响应false,若n小于0,则抛出自定义异常ArgumentOutOfBounds。 第 17 页 共 32页 《Java语言程序设计》实验指导书 实验四 字符串 实验目的 ? 掌握String类的常用方法。 实验内容 1.使用String类的public String toUpperCase()方法可以将一个字符串中的小写字母变成大写字母,使用 public String toLowerCase()方法可以将一个字符串中的大写字母变成小写字母。编写一个程序,使用这两个方法实现大小写的转换。 2.使用String类的public String concat(String str)方法可以把调用该方法的字符串与参数指定的字符串连接,把str指定的串连接到当前串的尾部获得一个新的串。编写一个程序通过连接两个串得到一个新串,并输出这个新串。 3.String类的public char charAt(int index)方法可以得到当前字符串index位置上的一个字符。说出下列程序的输出结果。 public class E3{ public static void main(String[] args){ String s=\辽宁科技大学\ char a=s.charAt(2),b=s.charAt(4); System.out.print(a); System.out.println(b); } } 4.编写一个java应用程序,判断两个字符串是否相同,判断字符串的前缀、后缀是否和某个字符串相同,按字典顺序比较两个字符串的大小关系,检索字符串,创建子字符串,将数字型字符串转换为数字,将字符串存放到数组中,用字符数组创建字符串。 程序模板 StringExample.java public class StringExample { 第 18 页 共 32页 《Java语言程序设计》实验指导书 } public static void main(String[] args) { String s1=new String(\ s2=new String(\ if(【代码1】){//使用equals方法判断s1与s2是否相同 System.out.println(\ }else{ System.out.println(\与s2不相同\ } String s3=new String(\ if(【代码2】){//判断3的前缀是否是\ System.out.println(\吉林省的身份证\ } String s4=new String(\你\ s5=new String(\我\ if(【代码3】){//按字典顺序s4大于s5的表达式 System.out.println(\按字典顺序s4大于s5的表达式\ }else{ System.out.println(\按字典顺序s4小于s5的表达式\ } int position=0; String path=\ position=【代码4】//获取path中最后出现目录分隔符号的位置 System.out.println(\中最后出现\\\\的位置:\ String fileName=【代码5】//获取path中\子字符串 System.out.println(\中含有的文件名:\ String s6=new String(\ s7=new String(\ int n1=【代码6】//将s6转换成int型数据 double n2=【代码7】//将s7转换成double型数据 double m=n1+n2; System.out.println(m); String s8=【代码8】//String调用valuOf(int n)方法将m转换为字符串对象 position=s8.indexOf(\ String temp=s8.substring(position+1); System.out.println(\数字\有\位小数\ String s9=new String(\ char a[]=【代码9】//将s8存放到数组a中 for(int i=a.length-1;i>=0;i--){ System.out.println(\ \ } } 第 19 页 共 32页 《Java语言程序设计》实验指导书 实验八 文件输入输出流 实验目的 ? 掌握二进制输入、输出流的用法。 ? 掌握字符输入、输出流的用法。 ? 掌握RandomAccessFile类的使用 实验内容 1.使用二进制文件输入输出流的应用程序。程序源代码如下: import java.io.*; public class Ex14_1 { public static void main(String args[])throws IOException { FileInputStream fi=new FileInputStream(\; FileOutputStream fo=new FileOutputStream(\ System.out.println(\ byte data[]=new byte[fi.available()]; fi.read(data); fo.write(data); System.out.println(\ fi.close(); fo.close(); } } 问题: (1) 程序的功能是什么?运行程序,叙述程序结果。 (2) 程序中使用了二进制输入输出流,能不能改用文本输入输出流来实现? 2.使用随机文件类RandomAccessFile的应用程序。 程序功能:将一个文件的内容添加到另外一个文件的末尾。 import java.io.*; import java.util.*; 第 30 页 共 32页 《Java语言程序设计》实验指导书 public class Ex15_1 { public static void main(String args[]) { try { File file1=new File(\ File file2=new File(\ byte data[]=new byte[1024]; RandomAccessFile raf1=new RandomAccessFile(file1,\ RandomAccessFile raf2=new RandomAccessFile(file2,\ raf1.read(data); raf2.seek(raf2.length()); raf2.write(data); raf1.close(); raf2.close(); } catch(IOException e) { e.printStackTrace(); } } } 问题: (1) 请用记事本编写2个文本文件file1.txt 和file2.txt,然后运行该程序。要注意 文件的存放位置。 (2) 分析程序,理解两个文件如何连接成一个文件的。 3.读一个包含英文的文本文件file.txt,将文件中所有字符都转变为大写,然后写回到原文件中。 第 31 页 共 32页 《Java语言程序设计》实验指导书 实验五 时间、日期与数字 实验目的 ? 掌握Date类以及Calendar类的常用方法。 ? 掌握BigInteger类的常用方法。 实验内容 1.用Date类不带参数的构造方法创建日期,要求日期的输出格式是:星期 小时 分 秒。 2.运行下面的程序,说明程序功能。 package myPackage; public class Excise8_3 { public static void main(String[] args) { int num; for(int i=1;i<=10;i++) { num=(int)(Math.random()*1000); System.out.print(num+\ if(i%5==0) System.out.println(); } } } 3.编写一个java应用程序,计算两个大整数的和、差、积和商,并计算一个大整数的因子个数。 程序模板 BigintegerExample import java.math.BigInteger; 第 20 页 共 32页 《Java语言程序设计》实验指导书 public class BigIntegerExample { public static void main(String[] args){ BigInteger n1=new BigInteger(\ n2=new BigInteger(\ result=null; result=【代码1】//n1和n2做加法运算 System.out.println(\和:\ result=【代码2】//n1和n2做减法运算 System.out.println(\差:\ result=【代码3】//n1和n2做乘法运算 System.out.println(\积:\ result=【代码4】//n1和n2做除法运算 System.out.println(\商:\ BigInteger m= new BigInteger(\ count=new BigInteger(\ final BigInteger ONE=new BigInteger(\ TWO=new BigInteger(\ System.out.println(m.toString()+\的因子有:\ for(BigInteger i=TWO;i.compareTo(m)<0;i=i.add(ONE)){ if((n1.remainder(i).compareTo(BigInteger.ZERO))==0){ count=count.add(ONE); System.out.print(\ \ } } System.out.println(); System.out.println(m.toString()+\一共有\个因子\ } } 4.使用BigInteger类计算1!+3!+5!+7!??的前30项的和。 实验六 AWT组件及事件基础 实验目的 ? 掌握java窗口、文本输入框的使用。 第 21 页 共 32页 《Java语言程序设计》实验指导书 ? 掌握处理ActioinEvent事件的方法。 ? 掌握按钮、标签、菜单项、文本区和面板的使用 ? 掌握布局的使用 实验内容 1.算术测试 编写一个算术测试小软件,用来训练小学生的算术能力。程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确;ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MainClass是软件的主类。 图9.1算术测试 程序模板 Teacher.java public class Teacher { int num1,num2; String operator; public int giveNum1(int n){ num1= (int)(Math.random()*n)+1; return num1; } public int giveNum2(int n){ num2= (int)(Math.random()*n)+1; return num2; } public String giveOperator(){ double d=Math.random(); if(d>=0.5){ operator=\ }else{ operator=\ } 第 22 页 共 32页 《Java语言程序设计》实验指导书 return operator; } public boolean isRight(int answer){ if(operator.equals(\ if(answer==num1+num2){ return true; }else{ return false; } }else if(operator.equals(\ if(answer==num1-num2){ return true; }else{ return false; } } return false; } } ComputerFrame.java import java.awt.*; import java.awt.event.*; public class ComputerFrame extends Frame implements ActionListener { TextField text1,text2,textResult; Button getProblem,giveAnswer; Label operatorLabel,message; Teacher teacher; public ComputerFrame(String s) { super(s); teacher=new Teacher(); setLayout(new FlowLayout()); text1=【代码1】//创建text1,其可见字符长是10 text2=【代码2】//创建text2,其可见字符长是10 textResult=【代码3】//创建textResult,其可见字符长是10 operatorLabel=new Label(\ message=new Label(\你还没有回答呢\ getProblem=new Button(\获取题目\ giveAnswer=new Button(\确认答案\ 第 23 页 共 32页 《Java语言程序设计》实验指导书 add(getProblem); add(text1); add(operatorLabel); add(text2); add(new Label(\ add(textResult); add(giveAnswer); add(message); textResult.requestFocus(); text1.setEditable(false); text2.setEditable(false); 【代码4】//将当前窗口注册为getProblem的ActionEvent事件监视器 【代码5】//将当前窗口注册为giveAnwser的ActionEvent事件监视器 【代码6】//将当前窗口注册为textResult的ActionEvent事件监视器 setBounds(100, 100, 450, 100); setVisible(true); validate(); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } } ); } public void actionPerformed(ActionEvent e) { if(【代码7】){//判断事件源是否是getProblem int num1=teacher.giveNum1(100); int num2=teacher.giveNum2(100); String operator=teacher.giveOperator(); text1.setText(\ text2.setText(\ operatorLabel.setText(operator); message.setText(\请回答\ textResult.setText(null); } if(【代码8】){//判断事件源是否是giveAnswer String answer=textResult.getText(); try{ int result=Integer.parseInt(answer); 第 24 页 共 32页 《Java语言程序设计》实验指导书 } } if(teacher.isRight(result)){ message.setText(\你回答正确\ }else{ message.setText(\你回答错误\ } }catch(NumberFormatException e){ message.setText(\请输入数字字符\ } } textResult.requestFocus(); validate(); MainClass.java public class MainClass { public static void main(String[] args) { ComputerFrame frame; frame=【代码9】//创建窗口,其标题为:算术测试 } } 【思考问题】 给上述程序增加测试乘、除的功能。 2.在Frame中使用各种AWT组件 程序功能:在Frame容器中添加组件标签、复选框、单选按钮、文本输入框、文本输入区、按钮。 图10.1 AWT基本组件 程序参考源代码如下: 第 25 页 共 32页 《Java语言程序设计》实验指导书 import java.awt.*; public class Ex10_1 extends Frame { static Ex10_1 frm=new Ex10_1(); public static void main(String args[]){ frm.setLayout(new FlowLayout()); frm.setTitle(\组件的使用\ frm.setBackground(Color.white); frm.setSize(500,300); frm.add(new Label(\你的名字: \ frm.add(new TextField(30)); frm.add(new Label(\性别: \ CheckboxGroup cbg = new CheckboxGroup(); frm.add(new Checkbox(\男\ frm.add(new Checkbox(\女\ frm.add(new Label(\你喜欢的水果: \ frm.add(new Checkbox(\苹果\ frm.add(new Checkbox(\桔子\ frm.add(new Checkbox(\香蕉\ frm.add(new Checkbox(\桃子\ frm.add(new Label(\你每次吃几个水果: \ Choice c = new Choice(); c.addItem(\少于1个\ c.addItem(\个到3个\ c.addItem(\个以上\ frm.add(c); frm.add(new Label(\你觉得吃水果有什么好处: \ frm.add(new TextArea(\我认为 \ frm.add(new Button(\确定 \ frm.add(new Button(\重写 \ frm.setVisible(true); } } 【思考问题】 (1)怎样在流式布局管理器中指定组件左对齐? (2)文本域组件的滚动条怎样指定? (3)单选按钮和复选按钮的选中状态怎么设置? 3.使用panel面板 程序功能:在Frame中添加panel面板,将多个组件进行分块管理。 第 26 页 共 32页 《Java语言程序设计》实验指导书 图10.2 panel面板的使用 } 程序参考代码如下: import java.awt.*; public class Ex10_2 { static Frame frm=new Frame(\ static Panel pnl=new Panel(new GridLayout(3,3)); static Label lab=new Label(\ public static void main(String args[]) { frm.setLayout(null); frm.setSize(200,150); frm.setResizable(false); lab.setBounds(20,30,120,20); lab.setBackground(new Color(240,220,190)); pnl.setBounds(20,60,120,80); for(int i=1;i<=9;i++) pnl.add(new Button(Integer.toString(i))); frm.add(lab); frm.add(pnl); frm.setVisible(true); } 第 27 页 共 32页 《Java语言程序设计》实验指导书 实验七 多线程的创建 实验目的 ? ? ? ? 掌握使用Thread的子类创建线程。 掌握使用Runnable接口创建线程。 掌握线程同步的处理方法。 掌握线程间通信的处理方法。 实验内容 1. 运行下面的程序,理解用创建Thread子类的方法实现多线程。 class SimpleThread extends Thread { public SimpleThread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + \ try { sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println(\ } } public class TwoThreadsTest { public static void main (String[] args) { new SimpleThread(\ \ new SimpleThread(\ } } 第 28 页 共 32页 《Java语言程序设计》实验指导书 问题: (1) 程序的运行结果和功能分别是什么? (2) 如果程序中去掉try-catch语句,程序是否仍能正常运行? (3) 如果希望执行三个线程,再显示“Go to Shanghai ”,程序如何修改?比较显示次序,是否相同。为什么会有这样的现象? 2.参照教材例子9.9,要求有3个线程:student1,student2,和teacher,基中student1准备睡10分钟后再开始上课,其中student2准备睡一个小时后再开始上课。teacher在输出3句“上课”后,吵醒休眠的线程stuendt1;stuendt1被吵醒后,负责再吵醒休眠的线程student2. 3.参照教材例子9.19编写一个java应用程序,在主线程中再创建3个线程:“运货司机”、“装运工”和“仓库管理员”。要求线程“运货司机”占有CPU资源后立刻联合线程“装运工”,也就是让“运货司机”一直等到“装运工”完成工作才能开车,而“装运工”占有CPU资源后立刻联合线程“仓库管理员”,也就是让“装运工”一直等到“仓库管理员”打开仓库才能开始搬运货物。 第 29 页 共 32页
正在阅读:
java实验指导书10-17
江苏省正地厅级干部简历04-24
2019年闽教版小学英语三年级下册Unit1 PartA优质课教案03-15
最新译林版小学英语5B五年级下册Unit3单元测试卷含答案04-07
六年级数学下册第11周课时计划12-19
贵阳市建设工程竣工档案归档范围(档案馆) - 图文01-02
linux下虚拟文件系统介绍05-06
核保交流(江苏苏州)05-20
结构设计计算书模板09-24
- 2009中西部家居博览会总体策划
- 2009 Revit 1级工程师学生用
- 天津地铁建设工程试验检测机构管理办法(TJDT-ZY-AQ-29)
- 新四年级数学暑期班第七次教案
- 机械制造企业隐患排查治理检查表 - 图文
- 2008届全国百套高考数学模拟试题分类汇编-103概率与统计解答题 -
- 职场健身防病试题及答案
- Excel操作技巧大全II - --数据输入和编辑技巧
- 南开大学2018春季《行政管理学》离线作业考核答案
- 2015年医师定考简易程序试卷及答案
- 新《预算法》对行政事业单位预算管理的挑战解读
- 轴的课件
- 电动汽车充电桩设计 毕业论文
- 必修2、选修2-1、1-1期末模拟试题2
- 桌面远程运维管理系统实施-可行性研究报告120306
- 西气东输水土保持工程工作总结 - 图文
- 正宁县基本县情及经济社会发展情况简介
- SATWE参数设置(巨详细)
- 儒家法思想研究综述
- 生活家政服务电子商务平台建设运营整合方案书【审报完稿】
- 指导书
- 实验
- java
- 浅谈大型城市综合体质量管理
- 针对改良西门子法生产多晶硅降低生产成本的途径分析
- 干部人事档案工作常用文件选编1
- 关注CSMA CA协议分析详解
- 交通运输论文-ATC 系统中采用电力线载波通信技术的研究
- 数学应用题入门汇编
- 人口普查调研
- 清池中学关于教育局工作检查存在问题及整改措施的报告
- 轮胎工安全操作规程
- Z―Stack节点电压数据采集实验的极速开发与实现-精品文档
- 统计抽样计算题(有计算过程)
- 七年级上册地理重要复习提纲(3)
- 组织学与胚胎学复习思考题
- 新建铁路大准至朔黄铁路联络线工程环境影响报告书(简本) - 图文
- 分享
- 北师大版三年级下册《奶奶最喜爱的铃儿》第二课时
- 交安标准
- 基础保护帽浇筑施工方案 - 图文
- 新员工试用期协议书
- 5S管理内容及意义