发给各个国光
2010年4月26日 星期一 第二十六天 小雨 01
1、文件访问:
java.io.file 只能表示、不能读写文件,可表示目录
File(String pathname)
文件:length()
getName()
getPath()
getAbsolutePath() 绝对路径
getCanonicalPath()返回规则的文件名,会抛出异常
isDirectory()
isFile()
exists()
目录:list()返回该目录下的所有目录名和文件名数组
listFiles()
2010年4月27日 星期二 第二十七天 晴 02
Stream流:
1、输出或输出
2、节点或处理
3、字节流和字符流
InputStream
int read()
void close()
OutputStream
write(int)
void close()
节点流:
FileInputStream
FileOutputStream
处理流:
作缓冲处理:
BufferedInputStream(InputStream())
BufferedOutputStream(OutputStream())
数据的读出与写入:
DataInputStream(InputStream())
DataOutputStream(OutputStream())
字符流:没有直接连接流的,没有节点流!!!
Reader
int read()读出是char型
Writer
write(int)写入也是char型
处理流:
InputStreamReader(InputStream(),”charset”)//每次读出的是字符
OutputStreamReader(OutputStream(),”charset”)
2010年4月28日 星期三 第二十八天 晴 03
FileReader//功能相当于 InputStreamReader+ FileInputStream
FileWriter//功能相当于 OutputStreamReader+ FileOutputStream
BufferedReader(Reader)//对字符进行擦作,读取有规律的文件
br.readLine()
BufferedWriter(Writer)
bw.write(“......”)
bw.newLine()
对象流:
ObjectInputStream
ObjectOutputStream
内存流:节点流
ByteArrayInputStream
ByteArrayOutputStream
2010年4月29日 星期四 第二十九天 晴 04
进程:一个正在运行的程序,需要占用一定的资源,由操作系统进行管理。
线程:轻量级的进程,线程之间共享同一个内存,cpu在线程之间进行切换
线程之间的切换比进程之间的切换小!
JVM中的线程:内存中分堆(对象)、栈(引用、一个线程用一个小栈(栈贞))、方法区(类、池)
java.lang.Thread
用来封装一个线程(运行中任务)的进本信息
Thread.sleep()
Thread.currentThread()
2010年4月30日 星期五 第三十天 晴 05
跟线程有关的类:
Timer
调度器,可以调度一个任务
TimerTask
被调度的任务
线程单例:
ThreadLocal tl=ThreadLocal();
set()
get()
1、可变对象和不可变对象
2、锁
同步:synchronized(obj){ 语句1;语句2。。。。}语法
用obj对象的锁把对象锁住
加过锁的类是线程安全类
一般用类的成员变量加锁,不能把范围扩大,
StringBuffer 线程安全
StringBuilder
Vector线程安全
HashTable
ArrayList
synchronized
总结:
1、Thread和Runnable
2、Thread API
Thread.sleep(long)
Thread.yield()
Thread.currentThread()
thread.gerName();
thread.getId();
thread.setPriotity(int)
thread.getPriotity()
thread.join()
thread.interrupt()
3、thread相关API
Timer TimerTask
ThreadLocal
4、synchronized关键字
1、线程安全类和线程不安全类
安全类:String、包装类、StringBuffer、Vector、HashTable
不安全的类:StringBuilder ArrayList LinkedList HashMap
2、如何创建线程安全类:
synchronized(obj){...............}
3、集合类型的线程安全问题
Object.wait();
当前线程已经获得该对象(obj)锁(moniter)
当前线程等待且释放obj的moniter
Object.notify();
通过被obj的wait方法等待的线程继续运行
Object.notify();
通知所有的等待线程
生产者和消费者问题:
java.util.concurrent;
2010年5月4日 星期二 第三十一天 晴 06
网络编程:
Client-Server
协议
网络API
IP Part(0-65535)
2010年5月5日 星期三 第三十二天 晴 07
反射reflect
java.lang.Class;
封装的是方法区中的一个类的信息