Java核心J2SE(四)

八---九章内容:

java.io包---流
输入流和输出流
字节流和字符流
节点流和处理流
抽象流类型:
 字节流     字符流
输入:InputStream  Reader
输出:OutputStream Writer

InputStream:数据的单位为字节(8bit)
方法:read(三种形式),close(),skip(long n)

OutputStream
方法:write(三种形式),cloes(),flush()--将输出流中缓冲的数据全部写到目的地,在close前调用。

Reader:数据的单位为字符(16bit)
方法:类似
Writer:
方法:writer(5种哦)

节点流:
File(文件):FileReader,FileWriter;FileInputStream,FileOutputStream
Memory Array:CharArrayReader,CharArrayWriter,ByteArrayInputStream
Memory String:StringReader,StringWriter--无字节流
Pipe(管道--线程)PipedReader,PipedWriter,PipedInputStream

处理流:
Buffering:
Filtering:
Converting between bytes and character:
Object Serialization:
Data conversion:
Counting:
Peeking ahead:
Printing:

常用:BufferReader,BufferWriter
 支持:mark,reset方法;
 BufferReader提供readLine方法读取一行字符串(/n或者/r分隔)
 BufferWriter提供newLine用于写入行分隔符
 输出的缓冲流,用flush方法将会使内存中的数据立刻写出

转换流:
 OutputStreamWriter,InputStreamReader
 FileOutStream("****",true),追加
 System.in---标准输入(键盘)
 System.out---命令行窗口 
 
数据流:
 DataInputStream,DataOutputStream
 ByteArrayOutputStream,ByteArrayInputStream
 可以写Unicode字符串(UTF-8)网络应用

Print流:
 PrintWriter,PrintStream ---不会抛异常,有自动flush功能。
 System.setOut();设置输出流目的地(log功能)
  
Object流:
 序列化(把object转换为字节存盘)
 关键字:transient--修饰成员变量,序列化的时候透明化,不予考虑。
 接口:externalizable---定义怎样序列化,自己控制。
   ---readExteral(ObjectInput in),writeExternal(ObjectOutput out)
 接口:Serizlizable(可以序列化的),标记性接口,无方法,不用自己实现
 类:ObjectOutputStream
 方法:writeObject(object o),readObject();

 

第九章:线程
java.lang.Thread类
 主方法,主线程main,创建Thread的实例来创建新的线程。
 run():线程体。
 通过start()方法来启动一个线程。
 接口:Runnable
 创建新的线程:
 1.定义线程类实现Runnable接口
 Thread myThread = new Thead(target)//tagrget为Runnable接口类型
 public static Thread currentThread()静态方法,获取当前线程的引用。
 2.定义Thread的子类并重写run方法
 class MyThread extends Thead {
   public void run(){***}
 }
 MyThread myThread = new MyThead();

 使用接口比较优,所以尽量使用实现接口,而不继承。

 线程控制基本方法:
 isAlive()---是否终止,
 getPriority(),setPriority()---获取及设置优先级,高的时间片会多点。
  Thread.MIN_PRIORITY=1 Thread.MAX_PRIORITY=10     Thread.NORM_PRIORITY=5
  默认是5,最高10,最低1.
 Thread.sleep()--静态方法--thorws InterruptedException
 join()--合并线程,相当于方法调用。
 yield()--让出CPU,当前线程进入就绪状态。只让一次。
 wait()--当前线程进入对象的wait pool
 notify()/notifyAll()--唤醒对象的wait pool中的一个/所有等待线程

 interrupt()---打断线程的执行,不是最好中止线程方法。
 stop()---废弃方法,一般不用。暴力中断线程执行。
 
 
线程同步:
 关键字:synchronized--互斥锁,锁定当前对象。
 锁定大括号包起来的部分。
 用法:
 1.synchronized(this){
    ***
 }
 2.可以在方法声明中表示为整个方法为同步方法。

 死锁。
 wait()---Object类的方法。线程等待,释放锁。
  与sleep方法区别:Thread类的方法,抱住锁不放开。
 notify()---Object类的方法。唤醒wait中的一个线程。
 notify()--同上方法,唤醒其他wait中的多个线程。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值