dout java_Java基础

一、语言包

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()成为线程体。

1.jpg

构造线程体有两种方式:

◆ 定义一个线程类,它继承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流包括字节流和字符流

2.jpg

3.jpg

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为过滤流提供统一的接口,使得在读写数据的同时可以对数据进行处理。在后面,还要专门讲解过滤流。

4.jpg

5.jpg

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)提问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值