java编程思想-java IO系统】的更多相关文章

33.JAVA编程思想--JAVA IO File类 RandomAccessFile用于包括了已知长度记录的文件.以便我们能用 seek()从一条记录移至还有一条:然后读取或改动那些记录. 各记录的长度并不一定同样:仅仅要知道它们有多大以及置于文件何处就可以. 首先.我们有点难以相信RandomAccessFile 不属于InputStream 或者OutputStream 分层结构的一部分.除了恰巧实现了DataInput 以及DataOutput(这两者亦由 DataInputStream…
二.共享受限资源 有了并发就可以同时做多件事情了.但是,两个或多个线程彼此互相干涉的问题也就出现了.如果不防范这种冲突,就可能发生两个线程同时试图访问同一个银行账户,或向同一个打印机打印,改变同一个值等诸如此类的问题. 1. 不正确地访问资源 考虑下面的例子,其中一个任务产生偶数,而其他任务消费这些数字.这里,消费者任务的唯一工作就是检查偶数的有效性. 首先,我们定义EvenChecker,即消费者任务,因为他将在随后所有的示例中被复用.为了将EvenChecker与我们要试验的各种类型的生成器…
一.基本的线程机制 并发编程使我们可以将程序划分为多个分离的.独立运行的任务.通过使用多线程机制,这些独立任务中的每一个都将由执行线程来驱动. 线程模型为编程带来了便利,它简化了在单一程序中同时jiao'zhi'zai'yi'qi交织在一起的多个操作的处理.在使用线程时,CPU将轮流给每个任务分配其占用时间.每个人物都觉得自己在一直占用CPU,但事实上CPU时间是划分成片段分配给所有的任务.线程的一大好处就是可以使你从这个层次抽身出来,即代码不必知道他是运行在具有一个还是多个CPU的机器上.所以…
五. 新类库中的构件 Java SE5的java.util.concurrent引入了大量设计用来解决并发问题的新类.学习使用它们将有助于编写出更加简单而强壮的并发程序. 1. CountDownLatch 他被用来同步一个或多个任务,强制他们等待由其他任务执行的一组操作完成. 你可以向CountDownLatch对象设置一个初始计数值,任何在这个对象上调用wait()方法都将阻塞,直至这个计数值到达0.其他任务在结束其工作时,可以在该对象上盗用countDown()来减小这个计数值.Count…
一.输入和输出 编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象."流"屏蔽了实际的I/O设备中处理数据的细节. Java类库中的I/O类分成输入和输出两部分.通过继承,任何自Inputstream或Reader派生而来的类都含有名为read()的基本方法,用于读取单个字节或者字节数组.同样,任何自OutputStream或Writer派生而来的类都含有名为write()的基本方法,用于写单个字节或字节数组.但是,我们通常…
一.什么是IO io在本质上是单个字节的移动.而流能够说是字节移动的载体和方式,它不停的向目标处移动数据.我们要做的就是依据流的方向从流中读取数据或者向流中写入数据. 二.java中支持IO操作的库类 1.依照数据类型分为两类: (1)字节类型:InputStream和OutputStream (2)字符类型:Writer和Reader 2.依照数据的流动方向,主要分为两类: (1)基于磁盘操作的io接口:File (2)基于网络的io接口:socket 三.字节流.字符流的io接口说明 字节流…
1.java 容器类类库的用途是"保存对象",并将其划分为两个不同的概念: 1)Collection.一个独立元素的序列,这些元素都服从一条或多条规则.List 必须按照插入的顺序保存元素,而Set不能有重复元素.Queue 按照排队规则来确定对象产生的顺序(通常与他们被插入的顺序相同). 2)Map.一组成对的"键值对"对象,允许使用键来查找值.ArrayList允许使用数字来查找值.因此在某种意义上讲,他将数字和对象关联在了一起.映射表允许我们使用另一个对象来查…
三.终结任务 1. 在阻塞时终结 线程状态 一个线程可以处于以下四种状态之一: 1)新建(new):当线程被创建时,他只会短暂的处于这种状态.此时,他已经分配了必须的系统资源,并执行了初始化.此刻线程已经有资格获得CPU时间了,之后调度器将把这个线程转变为可运行zhuang't状态或阻塞状态. 2)就绪(Runnable):在这种状态下,只要调度器把时间片分配给线程,线程就可以运行.也就是说,在任意时刻,线程可以运行也可以不运行.只要调度器能分配时间片给线程,他就可以运行,这不同于死亡和阻塞状态…
注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便的使用这些数据. 一.定义注解 注解的定义看起来很像接口的定义.事实上,与其他任何Java接口一样,注解也将会编译成class文件. import java.lang.annotation.*; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Test() ///;~ 除了@符号外,…
1.java 运算符 主要是逻辑运算符和按位运算符;移位运算符-name tecmint.txt 逻辑运算符:And(&&) ; OR(||);Not(!) 按位运算符:And(&); OR(|); XOR(^);Not(~) 移位运算符:>> ; << ; >>> 按位运算符: public void test_and(){         int a = 128;     // 0000 0000 0000 0000 0000 0000…