文件锁定初看起来可能让人迷惑。它似乎指的是防止程序或者用户访问特定文件。事实上,文件锁就像常规的 Java 对象锁 ― 它们是 劝告式的(advisory) 锁。它们不阻止任何形式的数据访问,相反,它们通过锁的共享和获取赖允许系统的不同部分相互协调。 你可以锁定整个文件或者...
Continue reading分散/聚集 I/O 是使用多个而不是单个缓冲区来保存数据的读写方法。 一个分散的读取就像一个常规通道读取,只不过它是将数据读到一个缓冲区数组中而不是读到单个缓冲区中。同样地,一个聚集写入是向缓冲区数组而不是向单个缓冲区写入数据。 分散/聚集 I/O 对于将数据流划分为单独的...
Continue reading前面已经学习了使用缓冲区进行日常工作所需要掌握的大部分内容。我们的例子没怎么超出标准的读/写过程种类,在原来的 I/O 中可以像在 NIO 中一样容易地实现这样的标准读写过程。 下面将讨论使用缓冲区的一些更复杂的方面,比如缓冲区分配、包装和分片。我们还会讨论 NIO 带给 ...
Continue readingNIO 中两个重要的缓冲区组件:状态变量和访问方法 (accessor)。 状态变量是前一节中提到的"内部统计机制"的关键。每一个读/写操作都会改变缓冲区的状态。通过记录和跟踪这些变化,缓冲区就可能够内部地管理自己的资源。 在从通道读取数据时,数据被放入...
Continue reading简介 NIO始于JDK 1.4,NIO 弥补了原来的 I/O 的不足,它在标准 Java 代码中提供了高速的、面向块的 I/O。通过定义包含数据的类,以及通过以块的形式处理这些数据,NIO 不用使用本机代码就可以利用低级优化,这是原来的 I/O 包所无法做到的。 为什么要使...
Continue readingclass装载验证流程 加载 链接 验证 准备 解析 初始化 class装载验证流程 -加载 装载类的第一个阶段 取得类的二进制流 转为方法区数据结构 在Java堆中生成对应的java.lang.Class对象 class...
Continue reading串行收集器 最古老,最稳定 效率高 可能会产生较长的停顿 -XX:+UseSerialGC 新生代、老年代使用串行回收 新生代复制算法 老年代标记-压缩 0.844: [GC 0.844: [DefNew: 17472K->217...
Continue reading基本数据类型的包装类(Wrapper Class) 为什么需要包装类 Java并不是纯面向对象的语言.Java语言是一个面型对象的语言,但是Java中基本数据类型确实不面向对象的.但实际应用中经常需要将基本数据类型转化成对象,便于操作.比如:集合的操作中我们就需要将基本数据...
Continue reading