一、语言包
Java语言包用java.lang表示,其中封装了很多Java类库中最低级的类,是整个Java语言的核心。Java系统自动将该包引入到用户程序中。语言包中主要的类有:Object类,数据类型封装类,数学类,字符串类,异常处理类,系统运行时类等。
数字类:Integer、Long、Float、Double类
字符类:Character
布尔类:Boolean
算术运算:Math
使用系统资源类:System(管理系统属性)、Runtime
System.getProperties()获得当前的系统属性列表
异常类:Throwable
Exception、Error、VirtualMachineError、LinkageError、RuntimeException、IllegalStateException、ArithmeticException、NullPointerException、IndexOutOfBoundsException
当我们在一个文件上建立文件输入流时,如果这个文件不存在,异常就会生成。如果把0作为除数,就会发生除0益处的异常事件。一个异常事件对应一个异常对象,这些异常对象都对应于类java.lang.Throwable及其子类。Java利用不同的类来表示不同类型的异常。所有的异常都是在程序运行的时侯产生的。Java的异常处理机制分为两部分:抛弃异常(throw)和捕获异常(catch)。
线程类:Thread
每个线程都是通过特定对象的run()方法来完成操作的。方法run()成为线程体。
构造线程体有两种方式:
◆ 定义一个线程类,它继承Thread类,并重写其中的run()方法。直接生成这个类的对象就可以构造一个线程。
class SimpleThread extends Thread
public void run(){ }
public static void main(String args[])
{
//生成两个线程并启动
new SimpleThread("First").start();
new SimpleThread("Second").start();
}
◆ 提供一个实现接口 Runnable的类作为线程的目标对象。在构造线程对象时,通过方法 Thread(Runnable target,String name)把目标对象传给这个线程实例。
class SimpleRunner implements Runnable
public void run(){ }
public static void main(String args[])
{
new Thread(new SimpleRunner(), "First").start();
new Thread(new SimpleRunner(), "Second").start();
}
可以使用Java.lang.Thread中定义的静态方法currentThread().获取运行中线程的句柄,返回一个线程对象,再使用getName(),获取线程的名字。Thread.currentThread().getName()
抢先式系统下,有高优先级的线程参与调度;时间片方式下,当前时间片用完,有同优先级的线程参与调度。
在多线程的同步中使用了wait()和notify()方法来同步线程的执行,对这些方法的说明如下:
1、Wait,notify ,notifyAll必须在已经持有锁的情况下执行,所以它们只能出现在synchronized作用的范围内。
2、wait的作用:释放已持有的锁,当前线程进入wait队列。
3、notify 的作用:唤醒wait队列中的第一个线程并把它移入锁申请队列。
4、notifyAll的作用:唤醒wait队列中的所有的线程并把它们移入锁申请队列。
二、实用程序包
Java实用程序包用java.util表示,它提供了很多具有实用价值的类,如:日期类,数据结构类,对象枚举,随机数类等。
接口:Enumeration(枚举)
类Vector
类Hashtable(散列表、哈希表)(继承抽象类Dictionary)
类Stack(类Vector的子类)
日期类:Date
程序属性类:Properties
三、输入/输出包
Java的输入输出包用java.io表示,它提供的类用于在不同的输入/输出设备上读写数据。I/O包中包括输入数据流类,输出数据流类,文件操作类等。
IO异常:IOException、FileNotFoundException、EOFException
对文件的操作:类File,FileDescriptor,FileInputStream,FileOutputStream,RamdomAccessFile(随机访问,直接继承Object)以及接口FilenameFilter。
File f=new File(“readFile”);
RandomAccessFile rafR=new RandomAccessFile(f,”r”);
指明打开文件读取”readFile”。
RandomAccessFile rafRW=new RandomAccessFile(“ReadWriteFile”,“rw”);
指明打开文件,读/写ReadWriteFile。
I/O流包括字节流和字符流
FileInputStream/FileOutputStream用于读/写本地系统中的文件。(顺序访问)
在生成FileInputStream对象时,如果指定的文件不存在,会生成例外FileNotFoundExce ption,它是非运行时例外,必须捕获或者声明抛弃。
在进行文件的读/写操作时,会产生IOException例外,属于非运行时例外,必须捕获或声明抛弃。
fin = new FileInputStream("aa.txt");
fout = new FileOutputStream("bb.txt");
(1)BufferedInputStream/BufferedOutputStream在读写数据的同时对数据进行缓存,从而减少对数据的访问,提高效率。
FileInputStream fin=new FileInputStream("aa.txt");
BufferedInputStream bin=new BufferedInputStream(fin);
FileOutputStream fout=new FileOutputStream("bb.txt");
BufferedOutputStream bout=new BufferedOutputStream(fout);
fin.read();
fout.flush();
(2)DataInputStream/DataOutputStream可以用与机器无关的方式读写Java的基本数据类型,java语言的内构类型:boolean,int,float等
dout.writeBoolean(v);
dout.writeInt(v);
din.readBoolean();
din.readInt();
(3)PushbackInputStream提供了一个方法可以把刚才读过的字节退回到输入流中。
(4)PrintStream打印流
ObjectInputStream/ObjectOutputStream用来直接进行对象的读写。
ObjectInputStream中使用readObject()方法可以直接读取一个对象,ObjectOutput Stream中用writeObject()方法可以直接将对象保存到流中。对象要先进行串行化,必须实现Serializable接口
FileOutputStream fout=new FileOutputStream("data1.ser");
ObjectOutputStream oout=new ObjectOutputStream(fout);//输出对象
oout.writeObject(stu);
oout.close();
stu=null;
FileInputStream fin=new FileInputStream("data1.ser");
ObjectInputStream oin=new ObjectInputStream(fin);//读入对象
stu=(Student)oin.readObject();
oin.close();
PipedInputStream/PipedOuputStream用来实现管道的输入/出。在使用管道前,管道输入流和管道输出流必须进行连接。
PipedInputStream (PipedOutputStream src)
PipedOutputStream (PipedInputStream snk)
ByteArrayInputStream/ ByteArrayOuputStream用来读写内存数据。
SequenceInputStream用来把多个输入流连接到一个输入流。
StringBufferInputStream使程序可以从一个StringBuffer类的可变字符串中读取数据。
FilterInputStream和FilterOutputStream为过滤流提供统一的接口,使得在读写数据的同时可以对数据进行处理。在后面,还要专门讲解过滤流。
InputStreamReader、OutputStreamWriter
FileInputStream fin=new FileInputStream("aa.txt");
InputStreamReader din=new InputStreamReader(fin);
FileOutputStream fout=new FileOutputStream("bb.txt");
OutputStreamWriter dout=new OutputStreamWriter(fout);
BufferedReader和BufferedWriter带有缓冲功能的字符流
FileInputStream is=new FileInputStream(filename);//按照缺省的编码规范把一个字节流转换成字符流
InputStreamReader ir=new InputStreamReader(is); //构造缓冲字符流
BufferedReader br=new BufferedReader(ir);//一次读入一行
while((s=br.readLine())!=null)
{System.out.println("Read:"+s); }
有问题到有问必答网(shenzhidao.com)提问!
本文出自 “网络人生博客” 博客,谢绝转载!