java培训 第十一天 笔记.doc_第1页
java培训 第十一天 笔记.doc_第2页
java培训 第十一天 笔记.doc_第3页
java培训 第十一天 笔记.doc_第4页
java培训 第十一天 笔记.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. IO包中的类的补充:(1) CharArrayReader:字符输入节点流,用于从一个char中读取数据(2) CharArrayWriter:字符输出节点流,用于向一个char中写出数据(3) InputStreamReader:字符输入包装流,包装一个字节输入流,用于将字节输入转换为字符输入(4) OutputStreamWriter:字符输出包装流,包装一个字节输出流,用于将字节输出转化为字符输出(5) RandomAccessFile:文件随机访问器,可以获取文件大小、读写/文件(readInt() readLong() readLine()(6) StringReader:字符输入节点流,用于从一个String对象中读取数据(7) StringWriter:字符输出节点流,用于向一个String对象中写出数据(8) PrintStream:字节输出节点/包装流,构造方法可以接收文件名或OutputStream,还提供了强大的print/printf/println系列方法(9) PrintWriter:字符输出节点/包装流,构造方法可以接收文件名或Writer或OutputStream,还提供了强大的print/printf/println系列方法(远比write好用)(10) Console:控制台输入流类,可以从键盘读取readLine() readPassword()练习:从键盘读取一行输入,将此字符串输出到一个文件中去输入流:(1) System.in.read()(2) System.console.readLine()(3) DataInputStream dis = new DataInputStream(System.in); dis.readLine();(4) DataInputStream dis = new DataInputStream(new BufferedInputStream(System.in);(5) InputStreamReader isr = new InputStreamReader(new BufferedInputStream(System.in);(6) Scanner sc = new Scanner(System.in)(7) Scanner sc = new Scanner(new BufferedInputStream(System.in)(8) BufferedReader br = new BufferedReader(new InputStreamReader(System.in);输出流:(1) FileWriter fw = new FileWriter(“d:/1.txt”);(2) BufferedWriter bw = new BufferedWriter(new FileWriter(“d:/1.txt”);(3) DataOutputStream dos = new DataOutputStream(new FileOutputStream(“d:/1.txt”)(4) OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(“”)(5) PrintStream ps = new PrintStream(“”);(6) PrintWriter pw = new PrintWriter(“”);(7) PrintWriter pw = new PrintWriter(new FileWriter(“”);(8) PrintWriter pw=new PrintWriter(new BufferedOutputStream(new FileOutputStream();字节数据的输入:BufferedInputStream bis = new BufferedInputStream(new FileInputStream(“文件”);byte data = new byte512;int count = bis.read(data);字节数据的输出:BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(“文件”);bos.write(data,0,count);字符数据的输入:BufferedReader br = new BufferedReader(new FileReader(“文件”);String s = br.readLine();字符数据的输出:PrintWriter pw = new PrintWriter(new FileWriter(“文件名”,true);pw.println();2. Java中的线程定义:Thread is running unit in a Process,线程是进程的执行单元进程:进程是程序调入内存,开始在CPU上获得执行的程序程序:程序是静止在永久存储设备上的可执行代码的集合进程与线程的区别和联系:进程是操作系统分配资源(内存和CPU)的基本单位加工厂线程是某个进程内部的一条可执行单元加工厂的生产线一个进程内部可以有多个线程并发(concurrently)执行,这些线程共用同一进程内的资源一个进程内部至少要有一个线程(单线程进程),也可以有多个线程并发执行(多线程进程)线程是进程内部的执行代码的基本单位,如果一个进程中没有任何的线程了,那么此进程也没有存在的必要了。3. 多线程编程多线程定义:在一个进程内部,同时存在多个可以运行的线程多个线程并发执行。区分: 并发执行:宏观都在执行,微观只有一个在执行 同时执行:宏观都在执行,微观也都在执行单核CPU不可能实现Java中实现多线程的方式:(1) 继承Thread类:run()方法内的变量每个线程对象都独立有一份(2) 实现Runnable接口警告:创建好线程对象后,决不能手动调用其run()(手动调用相当于在当前线程中执行另外一个方法),应调用start()通知JVM该线程可以运行了,接下来JVM在适当的时候会自动的运行该线程的run()方法。实现多线程的两种方式的比较:class MyThread extends Threadrun() new MyThread().start();class MyRun implements Runnablerun() new Thread(new MyRun().start();方式二更便于多个线程间共享同一个变量;同时由于Java“单继承、多实现”,推荐使用方式二。4. 线程的生命周期结论:(1) 程序员不能手动调用run(),它是有CPU调用的(2) CPU一次分配给线程的时间片比较短,往往不能执行完run()方法中的代码,线程再次进入就绪状态,等待再次被调用(3) 当多个线程都处于就绪态时,优先级高的线程将优先被CPU调度(4) 由上图可推测,线程间的执行顺序是不可预测的。(5) 只有待进程内的全部线程执行完毕了,进程才自动终止5. 线程间同步背景:铁路联网售票系统,如售D302 8月15号13:00票,多个网点“同时”售票,使用多线程程序来模拟该过程运行结果如下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论