摘要:
传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数量小于连接数量,所以每个线程进行IO操作时就不能阻塞,如果阻塞的话,有些连接就得不到处理,NIO提供了这种非阻塞的能力。 小量的线程如何... 阅读全文
摘要:
指的是可以于运行时加载,探知和使用编译期间完全未知的类. 程序在运行状态中, 可以动态加载一个只有名称的类, 对于任意一个已经加载的类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能调用他的任意一个方法和属性; 加载完类之后, 在堆内存中会产生一个Class类型的对象(一个类只有一个Class对象), 这个对象包含了完整的类的结构信息,而且这个Class对象就像一... 阅读全文
摘要:
输入输出字节流使用Inputstream、OutputStream来完成的,而输入输出字符流是用Reader和Writer完成的的; 字符流处理的是2个字节的Unicode,分别操作字符、字符数组、字符串;字节流处理单元为1个字节,操作字节和字节数组; 字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用缓冲区的,所以字节流在操作文件的时候,即使... 阅读全文
摘要:
为了理解Spring的IoC与DI从网上查了很多资料,作为初学者,下面的描述应该是最详细,最易理解的方式了。 首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里... 阅读全文
摘要:
request 请求对象 类型javax.servlet.ServletRequest 作用域Request response 响应对象 类型javax.servlet.ServletResponse 作用域Page pageContext 页面上下文对象 类型javax.s... 阅读全文