java教程第11章
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网络编程

14
第11章 Java网络编程 数据报套接字DatagramSocket有两个常用的构造函数,分
别是不带参数的DatagramSocket()和指定端口号的 DatagramSocket(int port)。由于UDP协议是面向无连接的,数 据报的接收方不关注数据报是由哪个端口发出的,因此无参数 的数据报套接字通常用于发送数据报,此时发送端口号由系统 分配。指定端口号的数据报套接字则常用于监听、接收数据报。
2
第11章 Java网络编程 1. 网络地址的表示 IPv4(Internet Protocol Version 4)使用4个字节(32比特)来表
示一个IP地址。为了阅读方便,我们通常将每个字节表示成一 个十进制数,字节间用“.”隔开。例如IP地址:
11001101 10110001 00001011 11001011 我们通常表示为 205 . 177 . 11 . 203
9
第11章 Java网络编程 System.out.println(remoteAddress); } catch(UnknownHostException e){ System.out.println(“获取不到主机地址”); } } } 程序运行结果如图11.2所示。
10
ห้องสมุดไป่ตู้
第11章 Java网络编程 图11.2 例11-2运行结果
3
第11章 Java网络编程 2. 获取本机地址 在Java中,使用InetAddress类的静态方法getLocalHost()
第11章输入输出ppt课件

11.1 输入/输出流
一组有序,有起点和终点的字节的数据序列。 包括输入流和输出流。
11.1.1 I/O流的概念
在Java中将信息的输入输出过程抽象为I/O流 输入是指数据流入程序 输出是指数据从程序流出
一个流就是一个从源流向目的地的数据序列 IO流类一旦被创建就会自动打开 通过调用close方法,可以显式关闭任何一个
通常被用来读写诸如图片、声音之类的二进 制数据
绝大多数数据是被存储为二进制文件的,世 界上的文本文件大约只能占到2%,通常二 进制文件要比含有相同数据量的文本文件小 得多
2) 面向字节的流
InputStream和OutputStream 是用来处理8位字节流的抽象基类,程序使 用这两个类的子类来读写8位的字节信息 分为两部分 节点流 处理流
如果文件可读,则返回真,否则返回假 如果文件可写,则返回真,否则返回假 如果 File 构造函数参数所指定的名称是指定路径中 的文件或目录,则返回真,否则返回假 如果文件不存在,则创建这个名字的空文件,并返 回真,如果文件存在,则返回假 如果 File 构造函数参数所指定的名称是一个文件, 则返回真,否则返回假 如果 File 构造函数参数所指定的名称是一个目录, 则返回真,否则返回假 如果 File 构造函数参数所指定的名称是一个文件或 目录的绝对路径,则返回真,否则返回假 删除文件或目录,如果是目录,必须是空目录才能 删除成功,删除成功返回真,否则返回假
指定与 File 对象关联的文件或目录的名称,name 可 以包含路径信息及文件或目录名 使用参数 pathToName(绝对路径或相对路径)来定 位参数 name 所指定的文件或目录 使用现有的 File 对象 directory(绝对路径或相对路 径)来定位参数 name 所指定的文件或目录 使用给定的统一资源定位符(uniform resource identifier,URI)来定位文件
Java基础第11章课件

11.2 Eclipse的安装与启动
– 2.启动Eclipse开发工具
让IT教学更简单,让IT学习更有效
– (1)在Eclipse安装文件中运行eclipse.exe文件即可
11.2 Eclipse的安装与启动
– 2.启动Eclipse开发工具
让IT教学更简单,让IT学习更有效
– (2)Eclipse启动完成后会弹出一个对话框,提示选择工作空间 (Workspace)
• 12.5.1 使用Eclipse工具导出jar文件 • 3.选择导出文件的格式
– 在弹出的【Export】对话框中选择要导出的文件格式,这里选择 Java文件夹下的JAR file,然后点击【next】按钮
11.5 使用Eclipse导入、 导出jar文件
让IT教学更简单,让IT学习更有效
• 12.5.1 使用Eclipse工具导出jar文件 • 4.定义导出文件的路径和名称
让IT教学更简单,让IT学习更有效
第十一章 Eclipse开发工具
• Eclipse的安装和配置 • Eclipse开发、运行、调试程序 • Eclipse中jar包的导出和导入
目录
Eclipse概述
让IT教学更简单,让IT学习更有效
Eclipse的安装与启动
Eclipse进行程序开发
Eclipse程序调试
11.2 Eclipse的安装与启动
• 12.2.2 Eclipse透视图
让IT教学更简单,让IT学习更有效
– 透视图(Perspective)是比视图更大的一种概念,用于定义工作台 窗口中视图的初始设置和布局,目的在于完成特定类型的任务或使 用特定类型的资源。Eclipse的开发环境中提供了几种常用的透视图
Java第十一章

2.画弧及扇形
弧是椭圆或圆的一部分,因而画弧的
方法就相当于先画一个椭圆,而后取该椭 圆中所需要的一部分。其调用格式如下。
( 1 ) drawArc(int x,int y,int width,int height,int startAngle,int arcAngle) 画一段弧,其前4个参数的含 义与画椭圆一样,它确定了弧所在的椭圆 的大小及位置,第5个参数startAngle表示 该弧开始位置的角度,第6个参数arcAngle 表示该弧转过的角度。角度的参照系统规 定水平向右为0°,逆时钟方向为正角度值, 顺时钟方向为负角度值。如图6-5所示。
11.3 文字的图形化输出
11.3.1 Font类
在Java中提供了一个font类,利用它 可 以 定 义 文 本的 字 体 、 风 格及 字 号 ( 大 小),其构造方法如下:
Font(String name, int style, int size)
其中第1个参数name为字体名称,如 中文的“宋体”、“楷体”,或是英文的 “TimesRoman”体、“Courier”体等;第3 个 参 数 size表 示字 体 的大 小 ;第 2个参 数 style表示字体的风格,Font类中已定义了 类 变 量 来 表 示 字 体 的 style 值 , 如 Font.BOLD( 表 示 粗 体 ) 、 Font.ITALIC ( 表 示 斜 体 ) 、 Font.PLAIN( 表 示 普 通 体)。
(1)drawRect(int x,int y,int width,int) 画出普通矩形,参数x和y是 矩形左上角顶点坐标,而参数width和 height表示所画矩形的宽和高。 (2)fillRect(int x,int y,int width, int height) 画出一个填充型风格的普通矩 形。
Java第11章

one.setPriority(Thread.MIN_PRIORITY); two.setPriority(Thread.NORM_PRIORITY); three.setPriority(Thread.MAX_PRIORITY);
one.start( ); two.start( ); three.start( ); } }
2
1 进程与线程的区别
文件 文件 各种系统资源 输入输出装置 各种系统资源 输入输出装置
数据区段
数据区段
程序区段
程序区段
只有一个地方在执行 传统的进程
同时有数个地方在执行 多线程的任务
3
2 多线程的优势
多线程编程简单,效率高。使用多线程可以在 线程间直接共享数据和资源,而多进程之间不 能做到这一点。 适合于开发服务程序 如Web服务、聊天服务等 适合于开发有多种交互接口的程序 如聊天程序的客户端、网络下载工具 适合于有人机交互又有计算量的程序 如字处理程序Word、Excel等
15
public class multThread { public static void main(String args[ ]) throws InterruptedException { Thread t1=new Thread(new UseThread(1)); Thread t2=new Thread(new UseThread(2)); t1.start( ); t2.start( ); } }
9
7. sleep(int n):使当前运行的线程睡n个毫秒, 然后继续执行,也是静态方法。 8. yield( ):临时中断当前运行的线程,切换到 其它线程,是一个静态方法。 9. isAlive( ): 判断线程是否处于执行的状态, 返回值true表示处于运行状态,false表 示停止。 10. interrupt( ):强行中断一个处于运行状态 的线程。
java11事件处理

ItemListener接口
• 在这个接口中定义了itemStateChanged()方 法,当一个项的状态发生变化时,它将被 调用。 • 方法:
– void itemStateChanged(ItemEvent ie);
KeyListener接口
• 与键盘动作相关的事件 • 方法
– void keyPressed(KeyEvent ke):键盘按下事件 – void keyReleased(KeyEvent ke):键盘释放事件 – void keyTyped(KeyEvent ke):键盘输入事件
事件类
事件类
ActionEvent
描述
通常在按下一个按钮,在文本框中按 回车,双击一个列表项或者选中一 个菜单项时发生
ItemEvent
当一个复选框或者列表项被点击时发 生 当一个选择框或者一个可选择菜单的 项被选择或取消时发生 当鼠标被拖动,移动,点击,按下, 释放时发生;或者在鼠标进入或者 退出一个组件时发生
KeyListener
8
ActionListener接口
• 在这个接口中定义了actionPerformed()方 法,当一个动作事件发生时,它将会被调 用 • 形式:
– void actionPerformed(ActionEvent ae);
• String ae.getActionCommand():返回与此 动作相关的命令字符串 • Object ae.getSource():获得事件源
使用授权事件模型
• 使用授权事件模型的步骤:
– 在监听器中实现相应的监听器接口,以便接受 相应的事件。 – 实现注册监听器的代码,以便可以得到事件的 通知。 一个事件源可能产生多种类型的事件。每一个事 件都必须分别注册。当然,一个对象可以注册 接受多种事件,但是它必须实现相应的所有事 件监听器的接口。
Java基础教程(第3版)_第11章_组件及事件处理资料

2020/7/18
第8页
例子2
例子2中我们在主类的main方法中,用JFrame的子 类创建一个含有菜单的窗口。 Example11_2.java,WindowMenu.java 效果如图11.3。
2020/7/18
第9页
11.3 常用组件与布局 11.3.1常用组件
1.文本框 2.文本区 3.按钮 4.标签 5.选择框 6.单选按钮 7.下拉列表 8.密码框
width,int
2020/7/18
第 16 页
11. 4 处理事件
学习组件除了要熟悉组件的属性和功能外,一个更重要的方 面是学习怎样处理组件上发生的界面事件。当用户在文本框中键 入文本后按回车键、单击按钮、在一个下拉式列表中选择一个条 目等操作时,都发生界面事件。
程序有时需对发生的事件作出反应,来实现特定的任务,例 如,用户单击一个名字叫“确定”或名字叫“取消”的按钮,程 序可能需要作出不同的处理。
HIDE_ON_CLOSE
隐藏当前窗口。
DISPOSE_ON_CLOSE
隐藏当前窗口,并释放窗体占有的其它资源。
EXIT_ON_CLOSE
结束窗口所在的应用程序。
例子1中,在主类的 main 方 法 中 , 用 JFrame 创 建了2个窗口。程序运行效 果如图11.2。
2020/7/18
第7页
11.2.2 菜单条、菜单、菜单项
5.null布局
空布局容器可以准确地定位组件在容器的位置和大小。 组 件 调 用 setBounds(int a,int b,int width,int height)方法可以设置本身的大小和在容器中的位置。 例如,p是某个容器p.setLayout(null);把p的布局设置为空布