java第十一章课后习题答案

合集下载

java第十一章课后习题答案

java第十一章课后习题答案

11.1、线程的概念:Thread 每个正在系统上运行的程序都是一个进程。

每个进程包含一到多个线程。

进程也可能是整个程序或者是部分程序的动态执行。

线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。

也可以把它理解为代码运行的上下文。

所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。

通常由操作系统负责多个线程的调度和执行。

多线程的概念:多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。

线程是在同一时间需要完成多项任务的时候实现的。

多线程的优点:使用线程可以把占据长时间的程序中的任务放到后台去处理用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度·11.2、答:一个线程从创建到不再有用称为线程的生命周期。

线程的生命周期可以分为4个状态:①创建(new)状态;②可运行(runnable)状态;⑧不可运行(not runnable)状态;④消亡(dead)状态。

创建状态是指创建一个线程所对应的对象的过程。

Java系统中,这些对象都是从java. lang包内一个称为Thread的类用关键字new创建的。

刚创建的线程不能执行,必须向系统进行注册、分配必要的资源后才能进入可运行状态,这个步骤是由start操作完成的。

而处于可运行状态的线程也未必一定处于运行中,它有可能由于外部的I/O请求而处于不可运行状态。

进入消亡状态后,此线程就不再存在了。

答:一个线程创建之后,总是处于其生命周期的4个状态之一中。

线程的状态表明此线程当前正在进行的活动,而线程的状态是可以通过程序来进行控制的,就是说,可以对线程进行操作来改变状态。

这些操作包括启动(start)、终止(stop)、睡眠(sleep)、挂起(suspend)、恢复(resume)、等待(wait)和通知(notify)。

每一个操作都对应了一个方法,这些方法是由软件包ng提供的。

《Java语言程序设计-基础篇》答案-第11章概要

《Java语言程序设计-基础篇》答案-第11章概要
component.setForeground(color;
component.getForeground(color;
对图形环境的方法通过Graphics对象的相关set/get方法完成。
11.12答:略
11.13答:例如:JPanel panel = new JPanel(new FlowLayout(;
11.14答:默认为FlowLayout。使用add(component方法
11.15答:不可以。
目的有:嵌套容器、绘图板。





w
w w
.k
h d
a w .
c o
m
11.16答:x不变,y增加
11.17答:略
11.18答:略
11.19答:略





w
w w
.k
h d
a w .
c o
m
boideilayoutfianieaddcomponent111118种常用构造方法使用容器的addcomponent方法无限制119种常用构造方法使用容器的addcomponent方法无限制1110答构造方法有参无参addcomponent
第11章图形用户界面程序设计入门
复习题
11.1答:ponent是
frame.add(button;
如果将2句互换位置,没有影响。(JDK6测试
11.4答:对、错、对、错(受布局管理器影响、对
11.5答:第7行应该改为:
javax.swing.JFrame frame = new Test(;
11.6答:第2行:将void去掉,因为构造方法不能有返回类型。

Java程序设计知到章节答案智慧树2023年信阳农林学院

Java程序设计知到章节答案智慧树2023年信阳农林学院

Java程序设计知到章节测试答案智慧树2023年最新信阳农林学院第一章测试1.Java程序中的注释有哪几种?参考答案:/* 多行注释 */;//单行注释;/** 文档注释 */2.以下选项中,哪些属于JDK工具?参考答案:Java运行工具;Java编译器;Java打包工具;Java文档生成工具3.以下关于支持Java运行平台的叙述,哪项错误?参考答案:Java语言与平台无关。

Java程序的运行结果依赖于操作系统4.下面哪种类型的文件可以在Java虚拟机中运行?参考答案:.class5.JDK、JRE和JVM之间的关系是()参考答案:JDK包括JRE,JRE包括JVM第二章测试1.下列代码执行后,输出到控制台的内容是?public class Test{public static void main(String args[]){int m=6789;int[] a=new int[4];for(int i=0;i<a.length;i++){a[i]=m%10;m=m/10;}System.out.printf("%d%d%d%d",a[0],a[1],a[2],a[3]);}}参考答案:98762.下列代码执行后,输出到控制台的内容是?public class Test{public static void main(String args[]){int m=100,n=10;if (m>n){n=100;m=10;}elsen=-100;m=-99;System.out.printf("%d:%d",m,n);}}参考答案:-99:1003.下列ABCD注释标注的哪行代码有错误?public class Test{public static void main(String args[]){int a[] ={1,2,3,4}; //Afor(int n=0;n<a.length;n++){ //BSystem.out.println(a[n]);}for(int i:a){ //CSystem.out.println(i);}int m=0;for(m:a){ //DSystem.out.println(m);}}}参考答案:D4.下列ABCD注释标注的哪行代码有错误?public class Test{public static void main(String args[]){int m=12;int n=12;int number=100+'w'; //Aswitch(number){case 12:n++; //Bcase 100:n--; //Cbreak;case n: m++; //D}}}参考答案:D5.下列语句序列执行后,k 的值是()。

Java程序设计基础与实战-习题答案(人邮) 第11章作业参考答案

Java程序设计基础与实战-习题答案(人邮) 第11章作业参考答案

第11章作业参考答案
1.填空题TCP/IP
(1)Inet4AddressUDP
(4)应用层(5) Socket
2 .选择
3 .简答题
(1)回答要点
一共有4层,分别是物理+数据链路层、网络层、传输层和应用层。

(2)回答要点
如果把程序当做人,把计算机网络当做类似邮递员的角色,当一个程序需要发送数据时, 指定目的地的IP地址就像指定了目的地的街道或楼号,但这样还是找不到目的地的,还需要指定房间号,也就是端口号。

(3)回答要点
UDP将数据及源和目的封装成数据包中,不需要建立连接,每个数据报的大小在限制在64k内,因无连接,所以是不可靠协议,效率高;TCP需要通过三次握手完成连接,是可靠协议,在连接中能进行大数据量传输,传输前需要建立连接,所以效率低。

(4)回答要点
首先翻开终端,输入命令"netstat-ano”查看占用端口号程序的PID,然后在Windows 资源管理器中通过PID找到该进程,结束进程即可。

(5)回答要点
第一次握手是客户端连接到server, server accept client的请求之后,向client端发送一个消息,相当于说我都准备好了,你连接上我了,这是第二次握手,第3次握手是client向server 发送的,是对第二次握手消息确实认。

这样client和server就开始通讯了。

4.编程题
(1)源代码:参考本章资料文件夹下“作业1”。

(2)源代码:参考本章资料文件夹下“作业2”。

java习题及答案第11章 习题参考答案

java习题及答案第11章 习题参考答案

习题11 课后习题答案1.常见网络端口有哪些?答案:在计算机中操作系统内部使用1-1024保留端口号,所以设计应用程序时需选择除此之外的端口。

如:20文件传输协议(默认数据口) ,80全球信息网超文本传输协议(www)。

2.如何连接和读取URL中的资源?答案:(1)通过URLConnection连接WWW:用URL的openStream()方法从网络上读取数据,若要输出数据,用类URLConnection,与URL建立连接,然后对其进行读/写操作。

(2)用URL读取WWW数据资源:在取得一个URL对象后,通过使用URL的openStream()方法,可以获得所需的特定的WWW 资源。

3.什么是套接字?有哪几种套接字?答案:套接字Socket是网络通信的应用程序接口,可以实现客户机与服务器之间的通信。

常用的TCP/IP协议的3种套接字类型有:流套接字(SOCK_STREAM);数据包套接字(SOCK_DGRAM);原始套接字(SOCK_RAW)。

流套接字用于提供面向连接、可靠的数据传输服务。

该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。

数据包套接字提供了一种无连接的服务。

该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。

原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据包套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据包套接字只能读取UDP协议的数据。

因此,如果要访问其他协议发送数据必须使用原始套接字。

4.简述TCP套接字的实现过程?答案:实现TCP套接字基本步骤分为服务器端和客户端两部分。

(1)服务器端步骤创建套接字;绑定套接字;设置套接字为监听模式,进入被动接收连接请求状态;接收请求,建立连接;读/写数据;终止连接。

(2)客户端步骤创建套接字;与远程服务器程序连接;读/写数据;终止连接。

Java程序设计实用教程 课后习题答案

Java程序设计实用教程 课后习题答案

第1章Java概述1.3 Java对源程序文件的命名规则有什么要求?源程序文件编译后生成什么文件?答:如果源文件中有多个类,那么只能有一个类是public类。

如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是java;如果源文件没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名是java就可以了。

Java源程序文件(*.java)通过编译器javac.exe编译生成字节码文件(*.class)。

1.5 什么是平台无关性?Java怎样实现平台无关性?答:平台无关性,是指一个应用程序能够运行于不同的操作系统平台。

Java采用虚拟机技术支持平台无关性。

Java源程序(*.java)经编译生成的是一种中间代码,称为字节码文件(*.class),它由Java虚拟机解释执行,因而与操作系统平台无关。

Java 语言本身设计也体现出平台无关性。

如,int型整数占用32位,与操作系统是16位、32位或64位无关。

1.6 Java应用程序有哪两种形式?它们的运行方式有什么不同?答:Java应用程序有两种形式:Application和Applet。

Application是能够独立运行的应用程序,有控制台和图形用户界面两种运行方式。

Applet是可以嵌入Web页面的最小应用,它不能独立运行,必须嵌入到超文本(*.html)中,由浏览器中的Java解释器解释执行。

Applet只是Application的特殊形式。

第2章Java语言基础2.2 Java语言的基本类型有哪些?引用数据类型有哪些?答:基本类型包括数值类型和布尔类型(boolean),其中数值类型包括整数类型(byte、short、int、long)、浮点类型(float、double)、字符类型(char)。

引用数据类型包括数组、类(class)、接口(interface)。

2.7 什么是最终变量?如何声明最终变量?答:Java语言提供一种特殊的变量,只能进行一次赋值,称为最终变量,采用关键字final 声明。

java程序设计精编教程习题解答

java程序设计精编教程习题解答

J a v a程序设计精编教程(第2版)习题解答(总18页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--习题解答习题一(第1章)1.James Gosling2.需3个步骤:1) 用文本编辑器编写源文件。

2) 使用javac 编译源文件,得到字节码文件。

3) 使用解释器运行程序。

3.set classpath=D:\jdk\jre\lib\;.;4. B5. Java 源文件的扩展名是.java ,Java 字节码的扩展名是.class 。

6.D 。

习题二(第2章)1.2.public class Teacher {double add(double a,double b) {return a+b;}double sub(double a,double b) {return a-b;}}height bottopublic class Student {public void speak() {"老师好");}}public class MainClass {public static void main(String args[]) {Teacher zhang=new Teacher();Student jiang=new Student();();}}3.如果源文件中有多个类,但没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名是.java就可以了,如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是.java。

4.行尾风格。

习题三(第3章)1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。

标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。

true不是标识符。

2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。

Java程序设计案例教程(第二版)周怡、张英主编。第11章习题答案

Java程序设计案例教程(第二版)周怡、张英主编。第11章习题答案

习题11一.是非题1.InputStream类能够被实例化。

( 错)2.从键盘流向内存的数据流是输入流。

( 对)3.FileReader是用文件字节流的的读操作。

( 错)4.打开一个文件时不可能会产生IOException。

( 错)5.Java的标准输入对象是System.in。

( 对)二.选择题1.InputStream和OutputStream处理的数据是B。

A. 位B. 字节C. 字符D. 任意类型2.以下哪一个类的对象可以是DataInputStream的构造函数的参数?CA. FileB. StringC. FileInputStreamD. FileOutputStream3.下列不是java的输入输出流的是CA. 文本流B. 字节流C. 字符流D. 文件流4.下列属于文件输入输出类的是(A)A. FileInputStream和FileOutputStreamB. BufferInputStream和BufferOutputStreamC. DataInputStream和DataOutputStreamD. 以上都是5.下面对File类构造函数使用不正确的是?( D )A. File file1=new File("c:\\病历目录");B. File file2=new File("c:\\病历目录","myfile.txt");C. File file3=new File("c:\\病历目录");File file4=new File(file3, "myfile.txt");D. File file5=new File("病历目录.txt");File file6=new File(file5, "myfile.txt");6.要在磁盘上创建一个文件,可以使用哪些类的实例?( D )A. FileOutputStreamB. RandomAccessFileC.FileD.以上都可以三.填空题1.按照流的方向来分,I/O流分为输入流和输出流。

java图形界面设计含答案

java图形界面设计含答案

java图形界面设计含答案十一章图形用户界面程序设计入门一.选择题:1. 容器Panel和applet缺省使用的布局编辑策略是 BA、BorderLayoutB、FlowLayoutC、GridLayoutD、CarLayout2. .applet类的直接父类是: BA、Component类B、Container类C、Frame类D、Panel类3. .Swing与AWT的区别不包括 DA、Swing是由纯Java实现的轻量级构件B、Swing没有本地代码C、Swing不依赖操作系统的支持D、Swing支持图形用户界面4. 在编写Java applet程序时,若需要对发生事件作出响应和处理,一般需要在程序的开头写上 B _语句。

A、import java.awt.*;B、import java.applet.*;C、import java.io.*;D、import java.awt.event.*;5. 下面哪个操作是applet可以做的? BA、读取客户端部分系统变量B、读取客户端文件C、在客户端主机上创建新文件D、在客户端装载程序库6. 在Java中,所有类的根类是 AA./doc/302358554.html,ng.Object B./doc/302358554.html,ng.ClassC.java.applet.Applet D.java.awt.Frame7.在JAVA中实现图形用户界面可以使用组建AWT和组件 AA、swingB、SwingC、JOptionPaneD、import8.在JAVA中,一般菜单格式包含有下列类对象 DA、JMenuBarB、JMenuC、JMenuItemD、JMenuBar、JMenu、JMenuItem9.JAVA中提供了多种布局对象类。

其中使用卡片式布局的是 DA、FlowLayoutB、BoederLayoutC、BoxLayoutD、CardLayout10. 下列关于Applet的叙述中,错误的是 AA、Applet是Java类,所以可以由JDK中的解释器java.exe直接解释运行B、Applet应该定义为java.applet.Applet类或javax.swing.JApplet类的子类C、Applet与Application的主要区别在执行方式上D、通过在HTML文件中采用标记可以向Applet传递参数11 与Applet生命周期相关的方法的数量是 AA、4种B、3种C、2种D、5种12下列关于Applet的叙述中,错误的是 AA、Applet是Java类,所以可以由JDK中的解释器java.exe直接解释运行B、Applet应该定义为java.applet.Applet类或javax.swing.JApplet类的子类C、Applet与Application的主要区别在执行方式上D、通过在HTML文件中采用标记可以向Applet传递参数13 java中对Applet设置了严格的安全限制。

JAVA程序设计之网络编程(第2版)各章习题和思考题答案

JAVA程序设计之网络编程(第2版)各章习题和思考题答案

Java程序设计各章习题和思考题答案第一章习题和思考题答案1、Java程序是由什么组成的?一个程序中必须有public类吗?Java 源文件的命名规则是怎样的?答:一个Java源程序是由若干个类组成。

一个Java程序不一定需要有public类:如果源文件中有多个类时,则只能有一个类是public类;如果源文件中只有一个类,则不将该类写成public也将默认它为主类。

源文件命名时要求源文件主名应与主类(即用public修饰的类)的类名相同,扩展名为.java。

如果没有定义public类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。

另外,对Applet小应用程序来说,其主类必须为public,否则虽然在一些编译编译平台下可以通过(在BlueJ下无法通过)但运行时无法显示结果。

2、怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用public修饰吗?答:Java Application是完整的程序,需要独立的解释器来解释运行;而Java Applet则是嵌在HTML编写的Web页面中的非独立运行程序,由Web 浏览器内部包含的Java解释器来解释运行。

在源程序代码中两者的主要区别是:任何一个Java Application应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个Applet小应用程序要求程序中有且必须有一个类是系统类Applet的子类,即该类头部分以extends Applet结尾。

应用程序的主类当源文件中只有一个类时不必用public修饰,但当有多于一个类时则主类必须用public修饰。

小应用程序的主类在任何时候都需要用public来修饰。

3、开发与运行Java应用程序需要经过哪些主要步骤和过程?答:主要有三个步骤(1)、用文字编辑器notepad(或在Jcreator,Gel,BuleJ,Eclipse,Jbuilder等)编写源文件;(2)、使用Java编译器(如Javac.exe)将.java源文件编译成字节码文件.class;(3)、运行Java程序:对应用程序应通过Java解释器(如java.exe)来运行。

java语言程序第十一章复习题答案

java语言程序第十一章复习题答案

java语言程序第十一章复习题答案1. 简述Java中的多态性是如何实现的?答:Java中的多态性主要通过方法重载和方法覆盖实现。

方法重载指的是在同一个类中可以有多个同名方法,只要它们的参数列表不同即可。

方法覆盖指的是子类可以提供一个与父类同名的方法,并且参数列表相同,从而覆盖父类中的方法。

2. 什么是接口?接口在Java中有什么作用?答:接口是Java中一种引用类型,可以包含常量、抽象方法和默认方法。

接口的主要作用是定义一个规范,使得不同的类可以实现同一个接口,从而具有相同的行为。

3. 举例说明Java中抽象类和接口的区别。

答:抽象类可以包含属性和方法的实现,而接口只能包含常量和方法的声明。

抽象类可以被实例化,而接口不能。

一个类可以实现多个接口,但只能继承一个抽象类。

4. 什么是内部类?内部类有哪些类型?答:内部类是定义在另一个类中的类。

内部类有四种类型:非静态内部类、静态内部类、局部内部类和匿名内部类。

5. 描述Java中异常处理的机制。

答:Java中的异常处理机制包括try、catch和finally块。

try块用于包围可能产生异常的代码,catch块用于捕获并处理异常,finally 块用于执行清理工作,无论是否发生异常都会执行。

6. 什么是Java中的垃圾回收机制?它如何工作?答:Java中的垃圾回收机制是指自动回收不再使用的对象所占用的内存。

垃圾回收器会定期检查对象是否被引用,如果没有被任何引用指向,则认为该对象不再使用,随后将其占用的内存回收。

7. 简述Java中集合框架的主要接口和类。

答:Java集合框架的主要接口包括Collection、List、Set、Map等,对应的主要实现类有ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap、TreeMap等。

8. 什么是Java泛型?泛型在Java中有什么作用?答:Java泛型是一种类型参数化的技术,允许在编译时进行类型检查,从而提高代码的安全性和重用性。

JAVA课后作业第11章

JAVA课后作业第11章
11-1 开发一个登录窗体,包括用户名、密码以及提交按钮和重置按钮,当用户输入用户名 mr、密码 mrsoft 时,弹出登录成功提示对话框。
public class UseCase1 extends JFrame{ public UseCase1(){
setVisible(true); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
CENTER
11-4 如果希望在容器底部放置一个按钮,应该采用哪个布局管理器? BorderLayout
JButton jb=new JButton("确定");
jb.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { if(name.getText().trim().length()==0||password.getText().trim().length()==0){
setTitle("登录窗体");
setBounds(300, 200, 300, 150); Container cp=getContentPane(); cp.setLayout(null);
JLabel jl=new JLabel("用户名:");
jl.setBounds(10, 10, 200, 18); final JTextField name=new JTextField(); name.setBounds(80, 10, 150, 18);
public static void main(String[] args) { new UseCase1();

Java Web 程序设计教程 第11章习题答案(范立锋、林果园 编著)

Java Web 程序设计教程 第11章习题答案(范立锋、林果园 编著)

Java Web 程序设计教程(范立锋、林果园编著)第11章 Spring框架入门习题答案1.Spring框架有哪些突出的优点?Spring框架技术之所以受到广泛的欢迎和使用,与其自身的特点有密切联系:开源:自从Spring框架问世之初,它就是一个开放源代码的框架。

而正是由于这一点,才使得它能够被更多的Java开发人员所研究、使用,并不断得以完善、发展。

轻量级:Spring无论是大小还是系统开销都算是轻量级的,整个框架可以被压缩在几M的JAR包中,应用中处理Spring的开销也微乎其微。

方便解耦:Spring提倡通过控制反转(IoC)技术实现松耦合。

通过Spring中的IoC容器管理各个对象之间的依赖关系,能够有效避免硬性编码造成的耦合过于紧密的状况。

面向切面编程(AOP):Spring对面向切面编程提供了良好的支持,通过Spring提供的AOP功能,可以轻松实现业务逻辑与系统服务(例如日志,事务等)的分离。

因此,开发人员能够更加专注于业务逻辑实现。

方便集成其它框架:Spring框架允许集成其它多种框架共同进行开发设计,例如Hibernate、Struts、Struts 2、Ibatis等。

2.Spring框架由哪7个模块组成?关于Spring架构中各个模块实现的功能说明如下:核心模块(Core):该模块是整个框架的最基本组成部分,它提供了依赖注入的功能以及对Bean容器的管理功能。

通过依赖注入,使得类与类之间不再由硬性编码方式发生关系,而是通过配置实现这一过程,降低了各个类之间耦合的紧密度。

Spring框架提供的BeanFactory接口,进一步消除了应用对工厂的依赖。

AOP模块(AOP):该模块提供了对AOP的支持,允许以面向切面的方式开发程序。

同时Spring框架提供了AspectJ的整合。

上下文模块(Context):该模块构建于核心模块之上,提供了对Bean的框架式访问。

该模块还扩展了BeanFactory功能。

java(英文第八版)十一章双号答案

java(英文第八版)十一章双号答案

public class Exercise11_2 {public static void main(String[] args) {}}class Person {protected String name;protected String address;protected String phoneNumber; protected String email;public String toString() {return "Person";}}class Student1 extends Person {public static int FRESHMAN = 1; public static int SOPHOMORE = 2; public static int JUNIOR = 3;public static int SENIOR = 4; protected int status;public String toString() {return "Student";}}class Employee extends Person { protected String office;protected int salary;protected MyDate dateHired;public String toString() {return "Employee";}}class MyDate {int year;int month;int day;}class Faculty extends Employee {public static int LECTURER = 1;public static int ASSISTANT_PROFESSOR = 2; public static int ASSOCIA TE_PROFESSOR = 3; public static int PROFESSOR = 4;protected String officeHours;protected int rank;public String toString() {return "Faculty";}}class Staff extends Employee {protected String title;public String toString() {return "Staff's title is " + title;}}public class Exercise11_4 {public static void main(String[] args) {MyStack stack = new MyStack();stack.push("Tom");stack.push("George");stack.push("Peter");System.out.println(stack.getSize());System.out.println(stack.peek());System.out.println(stack.pop());System.out.println(stack.peek());}}// MyStack.java: Implementing a stack using inheritance class MyStack extends java.util.ArrayList {public boolean isEmpty() {return super.isEmpty();}public int getSize() {return size();}public Object peek() {return get(getSize() - 1);}public Object pop() {Object o = get(getSize() - 1);remove(getSize() - 1);return o;}public Object push(Object o) {add(o);return o;}public int search(Object o) {return indexOf(o);}public String toString() {return "stack: " + toString();}}import java.util.*;public class Exercise11_6 {public static void main(String[] args) {ArrayList list = new ArrayList();list.add(new Loan());list.add(new Date());list.add(new javax.swing.JFrame());for (int i = 0; i < list.size(); i++)System.out.println(list.get(i));}}public class Exercise11_8 {public static void main (String[] args) {Account1.setAnnualInterestRate(5.5);Account1 account = new Account1("George", 1122, 1000);account.deposit(30);account.deposit(40);account.deposit(50);account.withdraw(5);account.withdraw(4);account.withdraw(2);System.out.println("Name: " + account.getName());System.out.println("Annual interest rate: " + Account1.getAnnualInterestRate());System.out.println("Balance: " + account.getBalance());java.util.ArrayList list = account.getTransactions();System.out.printf("%-35s%-15s%-15s%-15s\n", "Date", "Type", "Amount", "Balance");for (int i = 0; i < list.size(); i++) {Transaction transaction = (Transaction)(list.get(i));System.out.printf("%-35s%-15s%-15s%-15s\n", transaction.getDate(),transaction.getType(), transaction.getAmount(), transaction.getBalance());}}}class Account1 {private int id;private String name;private double balance;private static double annualInterestRate;private java.util.Date dateCreated;private java.util.ArrayList transactions = new java.util.ArrayList();public Account1() {dateCreated = new java.util.Date();}public Account1(String name, int id, double balance) {this.id = id; = name;this.balance = balance;dateCreated = new java.util.Date();}public int getId() {return this.id;}public double getBalance() {return balance;}public java.util.ArrayList getTransactions() {return transactions;}public String getName() {return name;}public static double getAnnualInterestRate() {return annualInterestRate;}public void setId(int id) {this.id =id;}public void setBalance(double balance) {this.balance = balance;}public static void setAnnualInterestRate(double annualInterestRate) { Account1.annualInterestRate = annualInterestRate;}public double getMonthlyInterest() {return balance * (annualInterestRate / 1200);public java.util.Date getDateCreated() {return dateCreated;}public void withdraw(double amount) {balance -= amount;transactions.add(new Transaction('W', amount, balance, "")); }public void deposit(double amount) {balance += amount;transactions.add(new Transaction('D', amount, balance, "")); }}class Transaction {private java.util.Date date;private char type;private double amount;private double balance;private String description;public Transaction(char type, double amount, double balance, String description) {date = new java.util.Date();this.type = type;this.amount = amount;this.balance = balance;this.description = description;}public java.util.Date getDate() {return date;}public char getType() {return type;}public double getAmount() {return amount;}public double getBalance() {return balance;}public String getDescription() {return description;}}/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h>/* Header for class Exercise11_10 */#ifndef _Included_Exercise11_10#define _Included_Exercise11_10#ifdef __cplusplusextern "C" {#endif#ifdef __cplusplus}#endif#endif。

Java语言程序设计(一)课后习题第十一章(附答案)

Java语言程序设计(一)课后习题第十一章(附答案)

Java语言程序设计(一)课后习题第十一章(附答案)十一、图形界面—窗体简介1.判断:每个applet上只能使用一种布局办理器。

()2.判断:使用BorderLayout布局办理器时,GUI组件可以按任何挨次添加到面板上。

()3.判断:在使用BorderLayout时,最多只能包含5个组件。

()4. 判断:使用BorderLayout布局办理器时,GUI组件可以按任何挨次添加到面板上。

()5. __________用于安排容器上的GUI组件。

6. GUI是_______________的缩写。

7. 当释放鼠标按键时,将产生________________事件。

8.哪个布局办理器使用的是组件的最佳尺寸( )A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout9.Frame的默认的布局办理器是下列哪一个( )A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout10.编写程序,创建下面的GUI(不必为各组件提供功能)。

参考答案1:false2:true3:true4.true5:版面办理器6. 图形用户界面7. mouseReleased8. C9. B10.import javawt.*;public class Chp9_3_A extends Frame{TextField t=new TextField();String[] op={“7”,”8”,”9”,”/”,”4”,”5”,”6”,”*”,”1”,”2”,”3”,”-”,”0”,”.”,”=“,”+”};Button[] btn=new Button[16];Panel p=new Panel();public Chp9_3_A(){setLayout(new BorderLayout());p.setLayout(new GridLayout(4,4));for(int i=0;ibtn[i]=new Button(op[i]);p.add(btn[i]);}add(t,BorderLayout.NORTH);add(p,BorderLayout.CENTER); setSize(400,300);}public static void main(String[] args){ new Chp9_3_A().setVisible(true);}}。

java第十一章课后习题解答.docx

java第十一章课后习题解答.docx
}
class ScoreHandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
J Button btn = (JButton)e.getSource();
if(btn == btnsearchby idorname) {
JOptionPane.showMessageDialog(null,"你没有选择学生!”);
}else{
String no = (String)reade匚getValueAt(index,O);
Student stu = (Student)ht.remove(no);
JOptionPane.showMessageDialotoStringO);
private boolean rightFlag;
public Position(int px,int pyuntflf] allData){ this.px = px;
this.py = py;
int row = allData.length;
int col = allData[OJ.length;
data.remove(index);
reade匚repainl();
}
}
}
}
public void addDataToTable(Student stu){
Vector temp = new Vector();
temp.add(stu.getNo());
temp.add(stu.getName());
first = second;
second = new Integer(temp);

李兴华的java开发实战经典习题大部分答案

李兴华的java开发实战经典习题大部分答案

Java开发实战经典课后答案第三章第一题:打印1~1000范围内的水仙花数,水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

第四题:判断三个数同时能被3、5、7整除第五题:分别利用while循环、do…while 循环和for循环求出100~200的累加第六题:编写程序,求13-23+33-44+……973-983+993-1003的值第十题:求1~1000之间能同时被3、5、7整除的数并统计一共有多少个数字第十一题:编程求:1!+2!+3!……20!的值第十二题:使用for循环打印一下图案第四章:第一题:编写程序求1!+2!+……+30!的和并显示,要求用方法完成。

第二题:定义一个由整数组成的数组,统计其中奇数和偶数的个数:第三题:现在有如下的数组int oldArr[]={2,3,5,0,7,0,5,9,4,0,23,0},将其中不为0的值存入一个新的数组,新生成的数组为:int oldArr[]={2,3,5,7,5,9,4,23}第四题:一定一个整型数组,求出数组元素的和,数组元素的最大值和最小值,并输出所求的结果。

第五题:给出10个整型数,然后任意查询一个数字是否存在该10个数字之内第六题:定义一个包含10个元素的数组,对其进行赋值,使每个元素的值等于其下标,然后输出,最后将这个数组倒置(即首尾交换)后输出:第八题:有30个0~9之间的数,分别统计0~9这10个数分别出现了多少次?第九题:定义一个整型数组,保存10个数据,利用程序完成将最大值保存在数组中第一个元素的操作。

第十题:在排序好的数组中添加一个数字,将添加后的数字插入到合适的位置。

第十一题:3、现在给出两个数组:•数组A:“1,7,9,11,13,15,17,19:;•数组b:“2,4,6,8,10”两个数组合并为数组c,按升序排列。

第五章:第三题:编写程序统计出字符串“want you to know one thing”中字母n和字母o出现的个数第九题:声明一个图书类,其数据成员为:书名,编号,(利用静态变量实现自动编号)、书价,并拥有静态数据成员册数,记录图书的总册数,在构造方法中利用此静态变量为对象的脑,如果没有新的电脑产生,则等待新的电脑产生才能搬运,如果电脑没有搬走,则不能生产新的电脑,最后统计生产出来的电脑的数量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果创建了一个线程而没有启动它,那么,此线程就处于创建状 态。比如,下述语句执行 以后,使系统有了一个处于创建状态的线 程 myThread:
Thread myThread= new MyThreadClass(); 其中,MyThreadClass()是 Thread 的子类,而 Thread 是由 Java 系统 的 ng 软件包提 供的。
处于创建状态的线程还没有获得应有的资源,所以,这是一个 空的线程。线程只有通过 启动后,系统才会为它分配资源。对处于 创建状态的线程可以进行两种操作:一是启动 (start)操作,使其进 入可运行状态,二是终止(stop)操作,使其进入消亡状态。如果进入 到消 亡状态,那么,此后这个线程就不能进入其他状态,也就是说,
myThreadsleep(5000); 则调用 sleep 方法使 myThread 线程睡眠 5 秒(5000 毫秒)。这 5 秒内, 此线程不能被系统调 度运行,只有过 5 秒后,myThread 线程才会醒 来并自动回到可运行状态。
如果一个线程被执行挂起操作而转到不可运行状态,则必须通过 调用恢复(resume)操 作,才能使这个线程再回到可运行状态。
11.7、
(1)sleep()
使当前线程(即调用该方法的线程)暂停执行一段时间,让其他 线程有机会继续执行,但它并不释放对象锁。也就是说如果有 synchronized 同步快,其他线程仍然不能访问共享数据。注意该方法 要捕捉异常。
例如有两个线程同时执行(没有 synchronized)一个线程优先级为 MAX_PRIORITY,另一个为 MIN_PRIORITY,如果没有 Sleep()方法, 只有高优先级的线程执行完毕后,低优先级的线程才能够执行;但是 高优先级的线程 sleep(500)后,低优先级就有机会执行了。
挂起操作,通过调用 suspend 方法来实现;
睡眠操作,通过调用 sleep 方法来实现; 等待操作,通过调用 wait 方法来实现; 退让操作,通过调用 yield 方法来实现; 终止操作,通过调用 stop 方法来实现。 前面三种操作都会使一个处于可运行状态的线程进入不可运行状 态。比如,仍以 myThread 线程为例,当其处于可运行状态后,再用 如下语句:
个相同线程来处理同一份资源的情况,从而可以将 CPU 代码和数据 分开,形成清晰的模型,较好地体现了面向对象的思想。 (2)缺点:编程稍微复杂,如果需要访问当前线程,必须使用 Thread.currentThread()方法。
11ห้องสมุดไป่ตู้6、
Java 的线程调度采用如下的优先级策略:(1)优先级高的先执行, 优先级低的后执行(2)多线程系统会自动为每个线程分配一个优先 级,默认时,继承其父类的优先级(3)任务紧急的线程,其优先级 较高(4)同优先级的线程按“先进先出”的原则。
④消亡(dead)状态 一个线程可以由其他任何一个状态通过终止(stop)操作而进入 消亡状态。线程一旦进 入消亡状态,那它就不再存在,所以也不可 能再转到其他状态。 通常,在一个应用程序运行时,如果通过其他外部命令终止当前 应用程序,那么就会调 用 stop 方法终止线程。但是,最正常、最常 见的途径是由于线程在可运行状态正常完成自身 的任务而“寿终正 寝”,从而进入消亡状态,这个完成任务的动作是由 run 方法实现的。 11.3 、 在 Java 中 创 建 线 程 有 两种 方 法 : 继 承 Thread 类 和 实 现 Runnable 接口 11.4、 Thread 类中包含了重写 run 方法。 start()启动线程 sleep(毫秒数) 启动后停止的毫秒数 Run()方法被称为线程体是因为它是整个线程的核心,线程所要完成 的任务代码都定义在 run()方法中 11.5、 在选择创建线程的方法时,要考虑两种方法的优劣势,找到更适合你 程序的方法。 两种方式的比较 首先分析两种方式的输出结果,同样是创建了两个线程,为什么结果 不一样呢? 使用实现 Runnable 接口方式创建线程可以共享同一个目标对象
(TreadDemo1 tt=new TreadDemo1();),实现了多个相同线程处理 同一份资源。 然后再看一段来自 JDK 的解释: Runnable 接口应该由那些打算通过某一线程执行其实例的类来实 现。类必须定义一个称为 run 的无参数方法。 设计该接口的目的是为希望在活动时执行代码的对象提供一个公共 协议。例如,Thread 类实现了 Runnable。激活的意思是说某个线程 已启动并且尚未停止。 此外,Runnable 为非 Thread 子类的类提供了一种激活方式。通过实 例化某个 Thread 实例并将自身作为运行目标,就可以运行实现 Runnable 的类而无需创建 Thread 的子类。大多数情况下,如果只想 重 写 run() 方 法 , 而 不 重 写 其 他 Thread 方 法 , 那 么 应 使 用 Runnable 接口。这很重要,因为除非程序员打算修改或增强类的基 本行为,否则不应为该类创建子类。 采用继承 Thread 类方式: (1)优点:编写简单,如果需要访问当前线程,无需使用 Thread.currentThread()方法,直接使用 this,即可获得当前线程。 (2)缺点:因为线程类已经继承了 Thread 类,所以不能再继承其他 的父类。 采用实现 Runnable 接口方式: (1)优点:线程类只是实现了 Runable 接口,还可以继承其他的类。 在这种方式下,可以多个线程共享同一个目标对象,所以非常适合多
退让操作是使某个线程把 CPU 控制权提前转交给同级优先权的 其他线程。
对可运行状态的线程也可以通过调用 stop 方法使其进入消亡状 态。
③不可运行(not runnable)状态 不可运行状态都是由可运行状态转变来的。一个处于可运行状态 的线程,如果遇到挂起 (suspend)操作、睡眠(sleep)操作或者等待 (wait)操作,就会进入不可运行状态。另外,如果 一个线程是和 I/O 操作有关的,那么,在执行 I/O 指令时,由于外设速度远远低于处理
11.1、 线程的概念:Thread 每个正在系统上运行的程序都是一个进程。每 个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的 动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在 程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基 本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作 系统负责多个线程的调度和执行。 多线程的概念: 多线程是为了同步完成多项任务,不是为了提高 运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在 同一时间需要完成多项任务的时候实现的。 多线程的优点:使用线程可以把占据长时间的程序中的任务放到后 台去处理 用户界面可以更加吸引人,这样比如用户点击了一个按钮 去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 · 11.2、 答:一个线程从创建到不再有用称为线程的生命周期。线程的生命周 期可以分为 4 个状态: ①创建(new)状态; ②可运行(runnable)状态; ⑧不可运行(not runnable)状态; ④消亡(dead)状态。 创建状态是指创建一个线程所对应的对象的过程。Java 系统中,这些 对象都是从 java. lang 包内一个称为 Thread 的类用关键字 new 创建的。
它不再存在了。 start 方法是对应启动操作的方法,其具体功能是为线程分配
必要的系统资源;将线程 设置为可运行状态,从而可以使系统调度 这个线程。
②可运行(runnable)状态 如果对一个处于创建状态的线程进行启动操作,则此线程便进入 可运行状态。仍以前面 创建的 myThread 线程为例,用下列语句: myThread.start(); 则线程 myThread 进入可运行状态。上述语句实 质 上 是 调 用 了 线 程 体 即 run() 方 法 。 注 意 , run() 方 法 包 含 在 myThread 线程中,也就是先由 ng 包的 Thread 类将 run()方 法 传 递 给 子 类 MyThreadClass() , 再 通 过 创 建 线 程 由 于 类 MyThreadClass()传递给线程 myThread。 线程处于可运行状态只说明它具备了运行条件,但可运行状态并 不一定是运行状态。因 为在单处理器系统中运行多线程程序,实际 上在一个时间点只有一个线程在运行,而系统中 往往有多个线程同 时处于可运行状态。系统通过快速切换和调度使所有可运行线程共享 处 理器,造成宏观上的多线程并发运行。 可见,一个线程是否处于运行状态,除了必须处于可运行状态外, 还取决于系统的调度。 在可运行状态可以进行多种操作,最通常的是从 run()方法正常 退出而使线程结束,进 入消亡状态。此外,还可以有如下操作:
刚创建的线程不能执行,必须向系统进行注册、分配必要的资源后才 能进入可运行状态,这个步骤是由 start 操作完成的。而处于可运行 状态的线程也未必一定处于运行中,它有可能由于外部的 I/O 请求而 处于不可运行状态。进入消亡状态后,此线程就不再存在了。 答:一个线程创建之后,总是处于其生命周期的 4 个状态之一中。 线程的状态表明此线 程当前正在进行的活动,而线程的状态是可以 通过程序来进行控制的,就是说,可以对线程 进行操作来改变状态。 这 些 操 作 包 括 启 动 (start) 、 终 止 (stop) 、 睡 眠 (sleep) 、 挂 起 (suspend)、恢复(resume)、等待(wait)和通知(notify)。每一个操 作都对应了一个方法,这些 方法是由软件包 ng 提供的。 ①创建(new)状态
总之,sleep()可以使低优先级的线程得到执行的机会,当然也可 以让同优先级、高优先级的线程有执行的机会。 (2)yield()
该方法与 sleep()类似,只是不能由用户指定暂停多长时间,并且 yield()方法只能让同优先级的线程有执行的机会。
11.8、
不加入线程的同步,可能导致冲突异常,不应该访问的,被访问,或 者数据被无故修改,不同步会造成数据访问混乱达不到目的效果。 实现同步机制有两个方法: 1。同步代码块: synchronized(同一个数据){} 同一个数据:就是 N 条线程同时访问一 个数据。 2。 同步方法: public synchronized 数据返回类型 方法名(){} 就是使用 synchronized 来修饰某个方法,则该方法称为同步方法。 对于同步方法而言,无需显示指定同步监视器,同步方法的同步监视 器是 this 也就是该对象的本身(这里指的对象本身有点含糊,其实 就是调用该同步方法的对象)通过使用同步方法,可非常方便的将某 类变成线程安全的类,具有如下特征: 1, 所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而
相关文档
最新文档