摘要: 本节开始java多线程编程的学习,对于操作系统、进程、线程的基本概念不再赘述,只是了解java对于多线程编程的支持有哪些。 一、继承Thread类来创建线程 java语言中使用Thread类来代表线程,代表线程的类可以通过继承Thread类并重写run()方法来实现多线程开发,调用线程类实例的sta 阅读全文
posted @ 2017-09-22 13:20 The_shy 阅读(413) 评论(4) 推荐(1) 编辑
摘要: 一、Path、Paths、Files核心API Path接口代表一个平台无关的路径,Files类包含了大量静态的工具方法来操纵文件;Paths则包含了两个返回Path的静态工厂方法。下面试一试 输出为 输出 阅读全文
posted @ 2017-09-18 15:27 The_shy 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 在上一节提到的FileChannel中提供了lock()/tryLock()方法可以获得文件锁FileLock对象,从而锁定文件,这里的文件锁是进程级别的锁,而非线程锁。 lock()方法是阻塞试的,当调用该方法且无法得到文件锁,程序将一直阻塞。 tryLock()方法是非阻塞式的加锁方法,如果获得 阅读全文
posted @ 2017-09-18 13:36 The_shy 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 一、java新IO概述 javaIO中的输入流和输出流都是通过字节的移动来处理的,面向流的输入输出系统一次只能处理一个字节,因此效率不高,而且传统的输入输出流是阻塞试的,也就是说当无法读到数据时,当前线程会被阻塞直到读取到有效数据才会继续运行。 java1.4之后提供了一系列改进的输入输出类与方法, 阅读全文
posted @ 2017-09-18 13:21 The_shy 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 一、使用对象流实现序列化。 先定义一个可序列化的对象 然后将Persen类的实例使用对象流序列化 最后再反序列化 由上面代码可以看出,反序列化时必须进行downcasting,而且反序列化机制度区的仅仅是java对象的数据,而且没有使用对象构造器,这表明反序列化机制无需通过构造起来初始化java对象 阅读全文
posted @ 2017-09-17 15:28 The_shy 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 调用 Runtime.getRuntime.exec("javac") 可以运行javac进程,该方法回返回一个Process实例对象来代表被运行的进程(当前进程的子进程),通过实例的getXxxStream()方法可以获得子进程的IO流,下面看例子 读取进程输出: 因为错误使用命令,所以产生了错误 阅读全文
posted @ 2017-09-15 17:46 The_shy 阅读(806) 评论(0) 推荐(0) 编辑
摘要: javaIO框架对重定向标准输入输出也提供了方法 System.setIn(InputStream in) .setOut(PrintStream out) .setErr(PrintStream err) 三个简单的静态方法为流模型的IO提供重定向方法。 这个不做例子练习了。。 阅读全文
posted @ 2017-09-15 10:45 The_shy 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 推回输入流就是讲字节或字符数组内容推回到推回缓冲区里面,从而允许重复读取刚刚读取的内容 当程序创建一个推回输入流时需要指定推回缓冲区的大小,默认的推回缓冲区长度为一,如果程序推回到推回缓冲区的内容超出了推回缓冲区的大小,将会引发Pushback buffer overflow 异常。 下面看例子 输 阅读全文
posted @ 2017-09-15 10:39 The_shy 阅读(421) 评论(0) 推荐(0) 编辑
摘要: InputStreamReader 和 OutputStrramReader,分别是将字节流转化为字符流的输入流和输出流。 阅读全文
posted @ 2017-09-15 09:28 The_shy 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 一、javaIO的基本模型 IO流(stream) javaIO框架把不同的输入、输出源抽象称作stream,所有的可作为输入输出源的存在,不论是物理设备如同键盘、显示器,还是软件比如管道,还是数据结构比如数组,都抽象成为了“流”,java代码通过对流的统一的输入与输出操作,来完成对不同真实设备或者 阅读全文
posted @ 2017-09-13 17:31 The_shy 阅读(488) 评论(0) 推荐(0) 编辑