文章列表
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 接口:InputStrea ...
几种常见的编码格式
为什么要编码
不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必须经过一次翻译,把它翻译成英语。这个翻译的过程就是编码。所以可以想象只要不是说英语的国家要能够使用计算机就必须要经过编码。这看起来有些霸 ...
接上文:JVM垃圾回收与内存分配浅析(一)
现在的内存回收大部分都指的是在堆中的内存回收,因为其内存空间最大,对象实例频繁的创建、销毁就容易产生更多的内存碎片,那么首先我们就要检测堆中是否存在需要回收的垃 ...
JVM垃圾回收与内存分配浅析(一)
- 博客分类:
- java
——读《深入理解Java虚拟机JVM高级特性与最佳实践》自我整理
熟悉Java的人都知道Java的一个特点:一次编译,到处运行。但是为什么只能Java实现这个特性,而比Java执行效率更高的c、c++没有这个特性呢?首先到处运行指的是不 ...
前几天我们公司C语言组的人需要一个基于socket的报文接收器来方便他们测试项目,我花了小半天给他们做了个多线程的socket服务端,我写好后在本机上测试后交给了他们,但是他们那边能连上服务器端,但是发送消息时没响应,后来我看到他们用的都是tcp/ip测试工具(一个c/s结构的socket调试工具)来测了,发送时我的后台也没有收到请求报文,但是他们的连接断了之后 我这边就收到了,又谷歌了一下,还真发现了问题,因为我的服务端 用的是serversocket类
这种是阻塞式的socket 当连接之后服务端就一直在读取流或者写出流 到缓存中,这种情况有两种方法解决,一是在客户端发送报文时末尾加个换 ...