-
Spring IoC Context启动过程解析
ServletContextWeb容器在启动的过程中,会为每个Web应用程序创建一个对应的ServletContext对象,它代表了当前的Web应用,为Spring IoC容器提供宿主环境。在部署Web工程的时候,Web容器会读取web.xml,创建ServletContext,当前Web工程所有部分都共享这个Context。context-param为ServletContext提供键值对,即Servlet上下文的信息,这些信息Listener、Filter和Servlet都有可能使用到...
-
LinkedList源码分析
本文涉及的JDK源码版本为1.7.0_79。LinkedList类定义LinkedList是基于双向链表实现的,LinkedList除了被当做数组来使用,还可以作为栈、队列来使用。由于LinkedList内部采用链表的形式存储元素,因此随机访问会比较慢,但是插入、删除元素比较快。和ArrayList一样,LinkedList也是非线程安全的,只有在单线程下才可以使用。为了防止非同步访问,可以采用如下方式创建LinkedList。List list= Collections.synchron...
-
用机器指令和汇编指令编程(二)
物理地址CPU访问内存空间时,要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,将这个唯一的地址称为物理地址。CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址。而在CPU向地址总线上发出物理地址之前,必须要在内部形成这个物理地址。不同的CPU有不同的形成物理地址的方式,此处依旧讨论8086CPU如何在内部形成内存单元的物理地址。16位结构的CPU8086CPU是16位机,也可以说8086CPU是16位结构的CPU。...
-
用机器指令和汇编指令编程(一)
Debug的使用什么是DebugDebug是Dos、Windows提供的实模式(8086方式)程序的调试工具,可以使用它来查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。但是debug命令在64位操作系统下是不能使用的。在cmd中输入debug,会提示:不是内部或外部命令,也不是运行的程序或批处理文件。使用DOSBox在Win7_64下搭建汇编环境DEBUG.EXE,EDIT.COM,MASM.EXE,LINK.EXE等汇编工具,一般在32位的Windows操作系统下有...
-
ArrayList源码分析
源码版本为JDK1.7.0_79ArrayList不是线程安全的,只能应用在单线程环境下。ArrayList类定义从ArrayList的类定义可以看出它是支持泛型的,继承自AbstractList,AbstractList 实现了List接口,提供了List接口的默认实现。public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>ArrayL...
-
Why String is Immutable or Final in Java
引入问题Thinking in Java中写道:“String对象是不可变的,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的String对象则丝毫未动”。通过查看源代码,了解到String类被设计成final类型,那么String类被设计成final类型是出于哪些考虑?final关键字首先需要理解Java中final的含义,通常final指的是”这是无法改变的”。不想做改变可能出于两种原因:设计或效率。...
-
Spring Hibernate Template解析
在Spring中,如果选用Hibernate作为持久层框架,往往需要在beans.xml中配置好SessionFactory,然后将SessionFactory注入到对应的DAO类。当我们使用SessionFactory来进行CRUD,配合对应的异常处理,会使得真正有用的业务逻辑代码显得微不足道。而且,除了那部分业务逻辑,创建Session、开启事务、处理异常、关闭资源这一系列代码在大多数场景下都是重复的。为了解决这个问题,Spring引入Hibernate Template让我们专注于业...