java课后习题
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
习题1 1 .James Gosling
2 .(1)使用一个文本编辑器编写源文件。
(2)使用Java 编译器(javac.exe)编译Java 源程序,得到字节码文件。 (3)使用Java 解释器(java.exe)运行Java 程序
3 .Java 的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public 类,若有的话至多可以有一个public 类。 4 .系统环境path D\jdk\bin;
系统环境classpath D\jdk\jre\lib\rt.jar;.;
5 .B
6 .Java 源文件的扩展名是.java。Java 字节码的扩展名是.class。 7 .D
8 .(1)Speak.java
(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class
(3)java Xiti8
(4)执行java Speak 的错误提示
Exception in thread "main" java.lang.NoSuchMethodError: main
执行java xiti8 得到的错误提示
Exception in thread "main" java.lang.NoClassDefFoundError: xiti8 (wrong name: Xiti8)
执行java Xiti8.class 得到的错误提示
Exception in thread "main" java.lang.NoClassDefFoundError: Xiti8/class
执行java Xiti8 得到的输出结果
I'm glad to meet you
习题2 1 .D
2 .【代码1】【代码2】错误//【代码3】更正为float z=6.89F; 3 .float 型常量后面必须要有后缀“f”或“F”。
对于double 常量,后面可以有后缀“d”或“D”,但允许省略该后缀。 4 .public class Xiti4{
public static void main (String args[ ]){ char ch1='你',ch2='我',ch3='他';
System.out.println("\""+ch1+"\"的位置:"+(int)ch1); System.out.println("\""+ch2+"\"的位置:"+(int)ch2); System.out.println("\""+ch3+"\"的位置:"+(int)ch3); }
}
5 .数组名字.length
6 .数组名字.length
7 .【代码1】A, , 65
【代码2】-127
【代码3】123456.783,123456.78312 8 .
【代码1】false
【代码2】true
【代码3】false
【代码4】3
【代码5】4.4
【代码6】8.8
习题3 1 .输出110
if-else 语句书写的不够
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
,复合语句缺少大括号“{}”,代码不够清晰。 2 .你好好酷!!
3 .
public class Xiti3_3
{
public static void main (String args[ ]){
int startPosition=0,endPosition=0; char cStart='а',cEnd='я';
startPosition=(int)cStart; //cStart 做int 型转换据运算,并将结果赋值给startPosition
endPosition=(int)cEnd ; //cEnd 做int 型转换运算,并将结果赋值给endPosition
System.out.println("俄文字母
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
:");
for(int i=startPosition;i<=endPosition;i++){
char c='\0';
c=(char)i; //i 做char 型转换运算,并将结果赋值给c
System.out.print(" "+c);
if((i-startPosition+1)%10==0) System.out.println("");
}
}
}
4 .
public class Xiti4
{ public static void main(String args[])
{ double sum=0,a=1;
int i=1;
while(i<=20)
{ sum=sum+a;
i++;
a=a*i;
}
System.out.println("sum="+sum); }
}
5 .
class Xiti5
{ public static void main(String args[])
{ int i,j;
for(j=2;j<=100;j++)
{ for(i=2;i<=j/2;i++)
{ if(j%i==0)
break;
}
if(i>j/2)
{ System.out.print(" "+j); }
}
}
}
6 .
class Xiti6
{ public static void main(String args[])
{ double sum=0,a=1,i=1; while(i<=20)
{ sum=sum+a;
i++;
a=(1.0/i)*a;
}
System.out.println("使用while 循环计算的sum="+sum); for(sum=0,i=1,a=1;i<=20;i++) { a=a*(1.0/i);
sum=sum+a;
}
System.out.println("使用for 循环计算的sum="+sum); }
}
7 .
public class Xiti7
{ public static void main(String args[])
{ int sum=0,i,j;
for(i=1;i<=1000;i++)
{ for(j=1,sum=0;j
n){
t=m;
m=n;
n=t;
}
for(int i=1;i<=m;i++){
if(m%i==0 && n%i==0){
gy=i;
}
}
gb=m*n/gy;
System.out.println(m+","+n+"的最大公约数为"+gy);
System.out.println(m+","+n+"的最小公倍数为"+gb);
}
}
9 .
public class Xiti9
{ public static void main(String args[]) { int n=1;
long sum=0,t=1;
t=n*t;
while(true)
{ sum=sum+t;
if(sum>9999)
break;
n++;
t=n*t;
}
System.out.println("满足条件的最大整数:"+(n-1));
}
}// 1 至7 的阶乘和是sum=5913.0 // 1 至8 的阶乘和是sum=46233.0 习题4 1 .用该类创建对象时。
2 .所谓方法重载是在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须 不同,即或者是参数的个数不同,或者是参数的类型不同。构造方法可以重载。 3 .可以。不可以。
4 .不可以。
5 .成员变量又分为实例变量和类变量,用static 修饰的变量是类变量。那么类变量和实例 变量有什么区别呢,一个类通过使用new 运算符可以创建多个不同的对象,不同的对象的
实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个 类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个
类变量。也就是说对象共享类变量。
6 .C,D
7 .【代码1】,【代码4】
8.sum=-100
9.27
10. **20
##100
习题5 1 .如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private 的成员变
量作为自己的成员变量,并且也自然地继承了父类中不是private 的方法作为自己的方法。
继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包中,那么子类继承
了父类的protected、public 成员变量做为子类的成员变量,并且继承了父类的protected、 public 方法为子类的方法,继承的成员或方法的访问权限保持不变。如果子类和父类不在
同一个包里,子类不能继承父类的友好变量和友好方法。
只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变 量。
子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的 类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同,子 类如此定义的方法称作子类重写的方法。子类通过方法的重写可以隐藏继承的方法。 2 .不可以。
3 .abstract 类。
4 .假设B 类是A 类子类或间接子类,当我们用子类B 创建一个对象,并把这个对象的引 用放到A 类的对象中时,称这个A 类对象是子类对象的上转型对象。 5 .可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接 口变量就可以调用被类实现的接口中的方法。
6 .A,C,D
7 .15.0
8.0
8 .98.0
12
9 .
class A
{ public final void f()
{ char cStart='a',cEnd='z';
for(char c=cStart;c<=cEnd;c++)
{ System.out.print(" "+c);
}
}
}
class B extends A
{ public void g()
{ char cStart='a',cEnd='ω';
for(char c=cStart;c<=cEnd;c++)
{ System.out.print(" "+c);
}
}
}
public class Xiti9 { public static void main (String args[ ])
{ B b=new B();
b.f();
b.g();
}
}
10 .
class A
{ public int f(int a,int b){
if(b=0)
{ m=m-1;
random.seek(m);
int c=random.readByte();
if(c<=255&&c>=0)
{ System.out.print((char)c); }
else
{ m=m-1;
random.seek(m);
byte cc[]=new byte[2];
random.readFully(cc);
System.out.print(new String(cc)); }
}
}
catch(Exception exp){}
}
}
7 .
import java.io.*;
public class Xiti7
{ public static void main(String args[ ])
{ File file=new File("E.java"); File tempFile=new File("temp.txt"); try{ FileReader inOne=new FileReader(file);
BufferedReader inTwo= new BufferedReader(inOne);
FileWriter tofile=new FileWriter(tempFile);
BufferedWriter out= new BufferedWriter(tofile);
String s=null;
int i=0;
s=inTwo.readLine();
while(s!=null)
{ i++;
out.write(i+" "+s);
out.newLine();
s=inTwo.readLine();
}
inOne.close();
inTwo.close();
out.flush();
out.close();
tofile.close();
}
catch(IOException e)
{ System.out.println(e);
}
}
}
8 .属于操作题目,解答略。
9 .
import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Xiti9
{ public static void main(String args[])
{ EWindow w=new EWindow(); w.validate();
}
}
class EWindow extends Frame implements ActionListener,ItemListener
{ String str[]=new String[7],s; FileReader file;
BufferedReader in;
Button start,next;
Checkbox checkbox[];
TextField 题目,分数;
int score=0;
CheckboxGroup age=new CheckboxGroup();
EWindow()
{ super("英语单词学习");
分数=new TextField(10);题目=new TextField(70); start=new Button("重新练习");
start.addActionListener(this); next=new Button("下一题目");
next.addActionListener(this); checkbox=new Checkbox[4]; for(int i=0;i<=3;i++)
{ checkbox[i]=new Checkbox("",false,age);
checkbox[i].addItemListener(this);
}
try { file=new FileReader("English.txt"); in=new BufferedReader(file);
}
catch(IOException e){}
setBounds(20,100,660,300); setVisible(true);
Box box=Box.createVerticalBox(); Panel p1=new Panel(),p2=new Panel(), p3=new Panel() ,p4=new Panel(),p5=new Panel();
p1.add(new Label("题目:"));p1.add(题目);
p2.add(new Label("选择答案:"));
for(int i=0;i<=3;i++)
{ p2.add(checkbox[i]);
}
p3.add(new Label("您的得分:"));p3.add(分数);
p4.add(start); p4.add(next);
box.add(p1);box.add(p2);box.add(p3);box.add(p4);
addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) { System.exit(0);
}
});
add(box,BorderLayout.CENTER); reading();
}
public void reading()
{ int i=0;
try { s=in.readLine();
if(!(s.startsWith("endend"))) { StringTokenizer tokenizer=new StringTokenizer(s,"#");
while(tokenizer.hasMoreTokens()) { str[i]=tokenizer.nextToken(); i++;
}
题目.setText(str[0]);
for(int j=1;j<=4;j++)
{ checkbox[j-1].setLabel(str[j]); }
}
else if(s.startsWith("endend")) { 题目.setText("学习完毕");
for(int j=0;j<4;j++)
{ checkbox[j].setLabel("end"); in.close();file.close();
}
}
}
catch(Exception exp){ 题目.setText("无试题文件") ; }
}
public void actionPerformed(ActionEvent event)
{ if(event.getSource()==start) { score=0;
分数.setText("得分:"+score);
try { file=new FileReader("English.txt"); in=new BufferedReader(file);
}
catch(IOException e){}
reading();
}
if(event.getSource()==next)
{ reading();
for(int j=0;j<4;j++)
{ checkbox[j].setEnabled(true);
}
}
}
public void itemStateChanged(ItemEvent e) { for(int j=0;j<4;j++)
{ if(checkbox[j].getLabel().equals(str[5])&&checkbox[j].getState())
{ score++;
分数.setText("得分:"+score);
}
checkbox[j].setEnabled(false);
}
}
}
习题15 1 .4 种状态:新建、运行、中断和死亡。
2 .有4 种原因的中断:
, JVM 将CPU 资源从当前线程切换给其他线程,使本线程让出CPU 的使用权处于 中断状态。
, 线程使用CPU 资源期间,执行了sleep(int millsecond)方法,使当前线程进入休眠 状态。经过参数millsecond 指定的豪秒数之后,该线程就重新进到线程队列中排 队等待CPU 资源,以便从中断处继续运行。
, 线程使用CPU 资源期间,执行了wait()方法,使得当前线程进入等待状态。等待 状态的线程不会主动进到线程队列中排队等待CPU 资源,必须由其他线程调用 notify()方法通知它,使得它重新进到线程队列中排队等待CPU 资源,以便从中 断处继续运行。
, 线程使用CPU 资源期间,执行某个操作进入阻塞状态,比如执行读/写操作引起 阻塞。进入阻塞状态时线程不能进入排队队列,只有当引起阻塞的原因消除时, 线程才重新进到线程队列中排队等待CPU 资源,以便从原来中断处开始继续运 行。
3 .死亡状态,不能再调用start()方法。
4 .新建和死亡状态。
5 .两种方法:用Thread 类或其子类。
6 .使用setPrority(int grade)方法。
7 .Java 使我们可以创建多个线程,在处理多线程问题时,我们必须注意这样一个问题: 当两个或多个线程同时访问同一个变量,并且一个线程需要修改这个变量。我们应对这样
的问题作出处理,否则可能发生混乱。
8 .当一个线程使用的同步方法中用到某个变量,而此变量又需要其它线程修改后才能符 合本线程的需要,那么可以在同步方法中使用wait()方法。使用wait 方法可以中断方法的 执行,使本线程等待,暂时让出CPU 的使用权,并允许其它线程使用这个同步方法。其
它线程如果在使用这个同步方法时不需要等待,那么它使用完这个同步方法的同时,应当 用notifyAll()方法通知所有的由于使用这个同步方法而处于等待的线程结束等待 9 .不合理。
10 .“吵醒”休眠的线程。一个占有CPU 资源的线程可以让休眠的线程调用interrupt 方法 “吵醒”自己,即导致休眠的线程发生InterruptedException 异常,从而结束休眠,重新排 队等待CPU 资源。
11 .
public class Xiti11
{ public static void main(String args[]) { Cinema a=new Cinema();
a.zhang.start();
a.sun.start();
a.zhao.start();
}
}
class TicketSeller //负责卖票的类。
{ int fiveNumber=3,tenNumber=0,twentyNumber=0; public synchronized void sellTicket(int receiveMoney)
{ if(receiveMoney==5)
{ fiveNumber=fiveNumber+1;
System.out.println(Thread.currentThread().getName()+
"给我5 元钱,这是您的1 张入场卷");
}
else if(receiveMoney==10)
{ while(fiveNumber<1)
{ try { System.out.println(Thread.currentThread().getName()+"靠边等");
wait();
System.out.println(Thread.currentThread().getName()+"结束等待");
}
catch(InterruptedException e) {}
}
fiveNumber=fiveNumber-1;
tenNumber=tenNumber+1;
System.out.println(Thread.currentThread().getName()+
"给我10 元钱,找您5 元,这是您的1 张入场卷");
}
else if(receiveMoney==20)
{ while(fiveNumber<1||tenNumber<1) { try { System.out.println(Thread.currentThread().getName()+"靠边等");
wait();
System.out.println(Thread.currentThread().getName()+"结束等待");
}
catch(InterruptedException e) {}
}
fiveNumber=fiveNumber-1;
tenNumber=tenNumber-1;
twentyNumber=twentyNumber+1;
System.out.println(Thread.currentThread().getName()+
"给20 元钱,找您一张5 元和一张10 元,这是您的1 张入场卷");
}
notifyAll();
}
}
class Cinema implements Runnable
{ Thread zhang,sun,zhao; TicketSeller seller;
Cinema()
{ zhang=new Thread(this); sun=new Thread(this); zhao=new Thread(this); zhang.setName("张小有");
sun.setName("孙大名");
zhao.setName("赵中堂");
seller=new TicketSeller(); }
public void run()
{ if(Thread.currentThread()==zhang)
{ seller.sellTicket(20); }
else if(Thread.currentThread()==sun)
{ seller.sellTicket(10); }
else if(Thread.currentThread()==zhao)
{ seller.sellTicket(5); }
}
}
12 .参照本章例子9。
13 .参照本章例子19。
14 .BA