【java】日常记录

2017.10.31 - 2017.11.03

1、【java基础】String对象定义时,字符串长度是不可改变的。但String支持一些改变操作,区别是在改变字符串后,创建新的Stirng对象保存改变后的内容。
    因此可以用String的友类 StringBuffer,但是效率没有String高。
 
另:toString()。通过对创建类的toString()方法的覆盖,允许将得到的字符串集成到java程序环境中。例如: 重写的toString方法可以被用于print()和println()语句以及连接表达式(+)中
 
2、【java基础】异常处理时, RuntimeException及其派生的异常类,均不需要包装到throws列表中使用,被称为 未经检查的异常(unchecked exceptions)。
        必须包含在throws列表的异常,某些方法能产生的异常但不能自己处理,被称为 受检查的异常(checked exceptions)。
 
3、【java多线程】多线程优点在于取消了主循环/轮询机制。一个线程暂停不影响程序的其他部分。线程在某一操作(用户输入、读取网络数据)时产生的空闲时间可被利用到其他地方。
        线程状态:正在运行(Running) --> 挂起(Suspend) --> 恢复(Resume) --> 终止(terminate)。
        注意:线程只要获得CPU时间就可运行。挂起后线程临时中断,允许在其中断地方恢复。线程一旦终止就不可被恢复。
 
4、【java多线程】实现多线程方法:继承Thread类;实现Runnable接口。
 
5、【java多线程】wait():告知被调用线程放弃进入管程,进入睡眠,直到其他线程进入相同管程,并且调用notify()。
                           notify():恢复相同对象第一个调用wait()的线程。
                           notifyAll():恢复相同对象中所有wait()的线程,优先级最高的先运行。
                            上述三种方法仅在synchronize方法中才能被调用
 
6、【java输入/输出流】java通过流完成输入和输出,流中保存的实际上都是字节文件。
        流分为:字节流(byte stream)和字符流(character stream)。
               另:预定义流(system),in(键盘输入)、out、err(控制台输出)
        所用抽象类:字节流:输入用InputStream、输出用OutputStream;字符流:输入用Reader、输出用Writer
 
7、【java流】
        字符流和字节流比较:
        (1) 字符流处理单元为2个字节的Unicode字符,字节流处理单元1个字节。如果是音频文件、图片、歌曲,就用字节流;若关系到中文(文本),就用字符流。
        (2)字节流在操作时,本身不会用到缓冲区(内存)的。与文件本身直接操作。而字符流在操作时用到缓冲区。 字节流在操作文件时,即使不关闭资源,文件也能输出。但字符流如果不使用close方法的话,则不会输出任何内容;说明字符流用的缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能不close的情况下输出内容。
        (3)在所有的硬盘上保存文件或进行传输的时候都是以字节的方法进行的,包括图片也是按字节完成,而字符是只有在内存中才会形成的,所以使用字节的操作是最多的。

猜你喜欢

转载自www.cnblogs.com/liuxs13/p/9272483.html
今日推荐