代码改变世界

Java对文件的读、写随机访问,RandomAccessFile类的使用分析

2013-07-22 20:22 by java20130722, 373 阅读, 0 推荐, 收藏, 编辑
摘要:在网上看了一些关于java中的RandomAccessFile类的介绍,又经过查看Java API和自己编的测试程序,总算是对RandomAccessFile的使用有了一定的了解。自己做了以下比较详细的总结吧。 1.RandomAccessFile类的简单介绍 该类的实例支持对文件的随机读取和写入。随机存取文件的行为类似存储在文件系统中的一个大型字节数组。存在指向该隐含数组的光标或索引,称为文件指针。读取操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机存取文件以读取/写入模式创建,则写入操作也可用;写入操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针... 阅读全文

J2EE规范

2013-07-22 20:16 by java20130722, 176 阅读, 0 推荐, 收藏, 编辑
摘要:j2ee规范J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的 13种技术规范进行简单的描述JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。JNDI(Java Name and Directory Interface) JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文.. 阅读全文

深入分析 Java 中的中文编码问题

2013-07-22 20:08 by java20130722, 140 阅读, 0 推荐, 收藏, 编辑
摘要:几种常见的编码格式为什么要编码不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必须经过一次翻译,把它翻译成英语。这个翻译的过程就是编码。所以可以想象只要不是说英语的国家要能够使用计算机就必须要经过编码。这看起来有些霸道,但是这就是现状,这也和我们国家 阅读全文

深入分析 Java I/O 的工作机制

2013-07-22 20:04 by java20130722, 164 阅读, 0 推荐, 收藏, 编辑
摘要:Java 的 I/O 类库的基本架构I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性能瓶颈。正因如此,所以 Java 在 I/O 上也一直在做持续的优化,如从 1.4 开始引入了 NIO,提升了 I/O 的性能。关于 NIO 我们将在后面详细介绍。Java 的 I/O 操作类在包 java.io 下,大概有将近 80 个类,但是这些类大概可以分成四组,分别是:基于字节操作的 I/O 接口:InputStream 和 OutputStream基于 阅读全文

看科普片随感

2013-07-22 19:28 by java20130722, 146 阅读, 0 推荐, 收藏, 编辑
摘要:很多专业知识的科普片为什么能够让没有专业知识背景的人也能够看懂、并且印象深刻? 粗略总结以下4点。1、图、文、动画并茂。2、讲故事、“平民化“。3、用生活中的场景映衬一些专业知识。4、把复杂的东西简单化。如果我们传播一些专业知识的时候也能做到这样,那专业知识学起来就容易多了。加油! 阅读全文

Real differences between “java -server” and “java -client”-JVM Server和JVM Client的不同

2013-07-22 18:33 by java20130722, 210 阅读, 0 推荐, 收藏, 编辑
摘要:This is really linked toHotSpotand the defaultoption values(Java HotSpot VM Options) which differ between client and server configuration.FromChapter 2of the whitepaper (The Java HotSpot Performance Engine Architecture):The JDK includes two flavors of the VM -- a client-side offering, and a VM tuned 阅读全文

[置顶] 把长方形的构造函数写的文艺点儿

2013-07-22 18:07 by java20130722, 294 阅读, 0 推荐, 收藏, 编辑
摘要:文艺是一种感受,它来自路过看的人。代码也如此,代码文艺不文艺,首先要从client code看。假设我们想要实现一个长方形的构造函数,怎么能写的文艺点儿呢?1.普通青年直接用构造函数当你看到 new Rectangular(2.0, 4.0)的时候,你知道2.0和4.0是什么意思吗?幸运的是这个类只有两个构造参数,还不算太猛。如果类的field太多,只有进入Rectangular的类实现去看了。像我这种记性不好的,说不定一会儿就要看下,隔一会儿又要看下。public class Rectangular { private final double length; private final.. 阅读全文

基于事件的 NIO 多线程服务器

2013-07-22 17:39 by java20130722, 226 阅读, 0 推荐, 收藏, 编辑
摘要:JDK1.4 的 NIO 有效解决了原有流式 IO 存在的线程开销的问题,在 NIO 中使用多线程,主要目的已不是为了应对每个客户端请求而分配独立的服务线程,而是通过多线程充分使用用多个 CPU 的处理能力和处理中的等待时间,达到提高服务能力的目的。多线程的引入,容易为本来就略显复杂的 NIO 代码进一步降低可读性和可维护性。引入良好的设计模型,将不仅带来高性能、高可靠的代码,也将带来一个惬意的开发过程。线程模型NIO 的选择器采用了多路复用(Multiplexing)技术,可在一个选择器上处理多个套接字, 通过获取读写通道来进行 IO 操作。由于网络带宽等原因,在通道的读、写操作中是容易出现 阅读全文

黑马程序员--IO流

2013-07-22 17:20 by java20130722, 199 阅读, 0 推荐, 收藏, 编辑
摘要:---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------java的输出/输入是以流的方式来处理的,流是在计算机的输入、输出操作中流动的数据序列。流的分类:(1)按照操作数据分为字节流和字符流。(2)按照流向分为输入和输出流。输入输出流(IO流)常用基类:字节流基类:InputStream和OutputStream。字符流基类:Reader和Writer。注:由这四个类派生出来的子类名称都是以其父类名作为其子类名的后缀。 如,InputStream的子类FileInputStream R. 阅读全文

一致性哈希算法及其在分布式系统中的应用

2013-07-22 17:18 by java20130722, 246 阅读, 0 推荐, 收藏, 编辑
摘要:(转)一致性哈希算法及其在分布式系统中的应用(2011-11-12 22:11:39)转载▼标签:哈希杂谈Consistent hashing算法非常简洁,如果你有一系列服务器,需要把很多 keys (objects)映射到这些服务器上。这时Constent hashing就派上用场了。典型的例子包括 memcached 或者一些分布式系统。余数映射方法server = serverlist[ hash(key) % N ]余数计算的方法简单,数据的分散性也相当优秀,但也有其缺点。那就是当添加或者移除服务器时,缓存重组的代价相当巨大。现假设一台服务器宕机了,把它从列表中移除,为了填补空缺,后面 阅读全文