java基础知识回顾

1.异常处理:

1.  throws和throw关键字:

  a)  throws抛出异常,在方法中不处理任何的异常,而交给被调用处

  b)  throw人为抛出一个异常对象

  c)  问:try {}里有一个return语句,那么紧跟在这个try后的finally  {}里的code会不会被执行,什么时候被执行,在return前还是后? 答: 因为讲过遇到return关键字就是返回函数调用处,但是finally语句是一定要执行的.所以是先执行finally然后再执行return语句;

  d)  自定义异常类看: http://agan007.iteye.com/blog/1072705

2.      java io相关知识:

RandomAccessFile类:

随机读取, public void seek();单位是字节

和public int skipBytes(int n)起控制作用, 为了移动存取位置时的方便,通常在随机存取文件中会固定每一个数据的长度;

InputStream和OutputStream:

 

      ①FileInputStream和FileOutputStream常用方法:

       public int read()

       public int read(byte[] b)

       public int read(byte[] b, int off, int len)

       new  FileOutputStream(File file, boolean append),是否追加,其中/r/n是换行

       public void write(byte[] b)

       public void write(byte[] b, int off, int len)

      ②BufferedInputStream和BufferedOutputStream:

        BufferedInputStream是InputStream->FilterInputStream的子类

        BufferedOutputStream是OutputStream->FilterOutputStream的子类

        实际最后实现的InputStream和OutputStream实例,多了一个buf数据成员,减少硬盘存取次数.提高效率.为了缓冲区数据一定被写至目的地,建议最后执行flush();

     ③DataInputStream和DataOutputStream:

       DataInputStream是InputStream->FilterInputStream的子类

       DataOutputStream是OutputStream->FilterOutputStream的子类

       对java基本数据类型写入的方法,像int、double和boolean等的方法

      ④ObjectInputStream和ObjectOutputStream:

       直接将内存中整个对象存储至文件,

      ⑤: SequenceInputStream:

             文件分割合并上好用

      ⑥: PrintStream

  打印流,是OutputStream->FilterOutputStream的子类,可以自动进行字符转换的动作,默认会使用操作系统的编码来处理对应的字符转换动作,使用打印流输入最为方便,建议以后在输出的时候就使用打印流,jdk 1.5之后对print()方法更新,加入了格式化操作printf(),和C语言一样好像过时了.一般用PrintWrite

      ⑦ByteArrayInputStream和ByteArrayOutputStream:

       内存流, 流的来源或目的不是文件是内存空间

      ⑧PushbackInputStream:

       没有实际应用过

      ⑨PipedInputStream:管道流

      Reader和Writer:

      ① InputStreamReader和OutputStreamWriter

       对InputStream和OutputStream进行字符处理,字符和字节流之间的转换

      ②FileReader和FileWriter

       FileReader是Reader->InputStreamReader的子类

       FileWriter是Writer ->OutputStreamWriter-的子类

 FileInputStream 类以二进制输入 / 输出, I/O 速度快且效率高,但是它的 read ()方法读到的是一个字节,很不利于人们阅读。 而 FileReader 类弥补了这个缺陷,可以以文本格式输入/ 输出,非常方便;比如可以使用 while((ch = filereader.read())!=-1 ) 循环来读取文件;

      ③BufferedReader和BufferedWriter

      ④PrintWriter

       同样是打印流,同PrintStream不同的是PrintWriter还可以接受Writer对象作为输出的对象

      ⑤CharArrayReader和CharArrayWriter

      ⑥PushbackReader

      ps:记这些概念和容易晕的.好的方法是多敲几次代码,就记住了…

 3.      java多线程

实现方式:

a)      通过继承Thread类或者实现Runnable接口.首选实现接口 ,本身Thread也实现了Runnable接口,继承Thread多个线程间不能实现资源的共享,而实现Runnable接口之后可以实现多个线程之间资源的共享;

b)      start()和run()启动线程效果不同,run()是等一个线程执行完了再继续执行其它线程,start()是同时; Runnable接口没有start(),但是通过Thread类Thread(Runnable target)调用start();

c)      线程的状态:初始化,等待,执行,停止,卸载;线程的操作方法;线程的命名和取得

d)      线程休眠:public static void sleep(long millis)throws InterruptedException;线程优先级:public void sset Priority (int new Priority)

e)      线程同步:synchronized关键字的使用(当多个线程同时进行同一资源的操作,为了保证操作的完整性);死锁是(过多的同步操作,产生了死锁)

f)      Object 类对线程的支持:notify(),wait(),notifyAll()

4.      java类集:

 保存单个值的集合(collection):

a)      List:允许有重复的元素

                                i.              ArrayList:异步处理,新的类,只能用Iterator输出

                                ii.              Vector:同步处理,旧的类,能用Iterator和Enumeration同时输出

b)      Set :不允许有重复的元素

                                i.              HashSet:散列,无序

                               ii.              TreeSet:有序,按Comparable排序

 保存一对值(Map):

a)    HashMap:异步处理,新的类

b)    HashTable:同步处理,旧的类

c)    TreeMap:按KEY进行排序的集合

输出:

a)Iterator:新的输出类,遇到输出肯定用Iterator

b)Enumeration:旧的输出类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值