Java语言程序设计教程 书本知识点汇总(3)
} // end class DivideByZeroTest
Java本科专业教程
看懂下面的例子:
class Plane {
static String s = “-”;
public static void main(String[] args){
new Plane().s1();
System.out.println(s);
}
void s1() {
try { s2(); } catch(Exception e) { s += “c”; } }
void s2() throws Exception {
s3(); s += “2”;
s3(); s += “2b”; }
void s3()throws Exception { throw new Exception(); } }
What is the result ? : -c
课后习题:
8. 比较throw与throws关键字之间的功能差异
第十一章 Java多线程程序
1. 线程的概念: 线程是比进程更小的执行单位,一个进程在执行过程中,可以产生多个线程,形成多条执行线索。线程间可以共享相同的内存单元(包括代码和数据)。
2. 线程的状态和生命周期
线程的5个状态: 新建、就绪、运行、阻塞、死亡。
3. 线程的调度和优先级
处于就绪状态的线程首先进入就绪队列等候处理器调度,同一时刻在就绪队列中的线程可能有几个,优先级高的线程排在前面,优先级低的线程只能等到高优先级的线程执行完毕后才能得到处理器。对于同优先级的线程,则遵循队列“先进先出”的原则。
3个优先级常量:
Thread.MAX_PRIORITY
Thread.MIN_PRIORITY
Thread.NORM_PRIORITY
4. 线程的两种创建方法
继承Thread类并重写run方法;在自己的类中实现Runnable方法。
两者都必须实现的方法是public void run() { ... }
5. 线程的方法
start()方法:调用完start()方法仅仅将线程放入调度队列,具体什么时候执行是未知的。不能保证调用完start()后线程就立即执行。
sleep()方法:sleep()使得线程放弃处理器资源,进入睡眠,但不释放拥有的锁。 yield()方法:使得正在执行的线程放弃处理器进入调度队列,重新参与调度竞争,使得其他线程有机会执行,即将处理器交给其他线程。
6. 线程的同步synchronized 加锁
synchronized可以修饰方法或定义同步代码块。
结合使用wait()、notify()、notifyAll()方法。
Java本科专业教程
7. 死锁
两个或多个线程无休止的相互等待的对象释放所占据的资源的过程。错误的同步容易引发死锁。防止死锁的方法:
课后习题:
2. 线程的状态有哪些? 描述相互转换的过程。
4. 创建线程的方式有哪几种?
12. 什么是死锁?多线程设计中如何防止死锁?
第十二章 文件和流
1. 流的概念
Java中的所有IO都是基于流的,分为字节流和字符流,从方向上看有输出流和输入流。对应四个抽象类: InputStream、OutputStream、Reader、Writer。
2. 常见的字节流及操作方法
FileInputStream, FileOutputStream,
ObjectOutputStream, ObjectInputStream,
BufferedInputStream, BufferedOutputStream,
DataInputStream, DataOutputStream
InputStream的方法:
long skip(long n) 跳过几个字节
int available() 可用字节数
read()方法:
int read();
int read(byte[] b);
int read(byte[] b, int off, int len)
OutputStream方法:
void flush()
write()方法:
void write(int x)
void write(byte[] b)
void write(byte[] b, int off, int len)
3. 常见的字符流及操作方法
InputStreamReader, OutputStreamWriter
BufferedReader, BufferedWriter
掌握字节流与字符流的连接操作,如使用System.in,接收用户输入:
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
String whatGet = br.readLine();
4. 文件流
使用FileOutputStream和DataOutputStream进行二进制文件的写操作【P230.例12.4, P231.例12.5】
5. 对象流和序列化流
序列化接口 java.io.Serializable。
如何进行对象的序列化。
课后习题:
Java本科专业教程
2. Java的基本输入输出流有哪些? 主要的功能如何?
3#. 利用基本输入输出流编写程序:从键盘输入一串字符,然后显示到屏幕上。
第十四章 Java网络编程
1. 套接字概念
2. TCP方式传接数据
3. UDP方式传接数据
看懂下面的程序:
import .*;
import java.util.Date;
import java.io.*;
public class TestSocket {
public static void main(String[] args) throws Exception {
new Server().start();
Thread.sleep(2000);
new Client().start();
Thread.sleep(2000);
Server.stopMe = true;
}
}
class Server extends Thread {
public static final int PORT = 44442;
public static boolean stopMe = false;
public void run() {
ServerSocket ss = null;
try {
ss = new ServerSocket(PORT);
while (!stopMe) {
Socket client = ss.accept();
new ServerWorker(client).start();
}
} catch (IOException e) {
} finally {
try {
ss.close();
} catch (Exception e) {
}
}
}
}
class ServerWorker extends Thread {
private Socket clientReq = null;
private OutputStream out = null;
private OutputStreamWriter w = null;
private PrintWriter pw = null;
public ServerWorker(Socket clientReq) {
this.clientReq = clientReq;
}
Java本科专业教程
public void run() {
try {
out = clientReq.getOutputStream();
w = new OutputStreamWriter(out);
pw = new PrintWriter(w, true);
} catch (IOException e) {
return;
}
try {
String s = new Date().toString();
System.out.println("server send:" + s);
pw.write(new Date().toString());
} catch (Exception e) {
return;
} finally {
pw.close();
}
}
}
class Client extends Thread {
public static final int PORT = 9999;
private Socket clientReq = null;
private InputStream in = null;
private BufferedReader br = null;
private String server = "192.168.2.244";// "127.0.0.1";
public void run() {
try {
clientReq = new Socket(server, PORT);
in = clientReq.getInputStream();
br = new BufferedReader(new InputStreamReader(in));
System.out.println("client get:" + br.readLine());
} catch (Exception e) {
System.out.println("can't connect to server" …… 此处隐藏:2306字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高中教育]电子线路高频非线性部分2.1
- [高中教育]中班美术活动——我的小手
- [高中教育]常用三极管参数大全
- [高中教育]计算机常见故障及解决办法
- [高中教育]风机基础环水平度控制方法探讨
- [高中教育]机械安全工程(专升本)阶段性作业3
- [高中教育]2009年安徽省高考语文考试说明刍议
- [高中教育]unit5 let's eat公开课教案设
- [高中教育]计算机网络原理课后习题答案
- [高中教育]2016-2022年中国新能源市场研究与投资
- [高中教育]2015-2020年中国会议行业市场评估及投
- [高中教育]经销商大会峰会主持人串词开场白
- [高中教育]2014新版北师大数学三年级上册小熊购物
- [高中教育]七年级第一学期体育与健康全套教案
- [高中教育]第三章:国际金融市场
- [高中教育]六年级下册数学单元测试-2.比例 北师大
- [高中教育]2016年上海海事大学法学院624刑法之《
- [高中教育]中国碳化钙产业竞争现状及未来五年投资
- [高中教育]网络时代,我们怎么玩
- [高中教育]圆锥曲线——高中数学基础知识与典型例
- 高集医院世界艾滋病宣传日活动方案
- 苏教版六年级英语上册期末试卷含答案
- 全民枪战生化英雄模式幽灵怎么玩 生化
- 灿烂的宋元文化一导学案
- 第2章货币资金与应收款项
- 北师大版八年级下册数学第三章《分式》
- 浅析高分子材料成型加工技术
- 华南理工大学2013年度共青团先进集体及
- 教师资格科目二小学教案模板(共合集)
- 工程扩建可研报告
- 中华人民共和国海事局2014年度招录公务
- 提高农村小学生作文能力的教学尝试
- 徒手心肺复苏术操作步骤
- 毛概试题库7-15章
- 2014-2015学年度(上)初中班主任工作计
- 企业驾驶员安全生产责任书
- 第07章 不等式测试题-2016年高考文科数
- 医疗器械经营企业工作程序
- 考研英语必背36篇_彩版_精华
- 初中9月13-15假期作业 (1)




