1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。
2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。 More …
Doug Lea的util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。Brian Goetz向您展示了用ConcurrentHashMap替换Hashtable或synchronizedMap,将有多少并发程序获益。 More …
默认适配器是怎样产生的呢?有时我们定义的接口中多个接口方法,如果直接实现此接口,那么需要在实现类中实现所有的方法,往往不同的需要,可能只用到接口中一个会几个方法,但显然用这样的实现类会造成资源的浪费,系统开销的加大。那么如何解决此问题,用适配器模式。 More …
一、什么是Java事务
通常的观念认为,事务仅与数据库相关。
事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。 More …
java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务。数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先前的操作….. More …
1. IOC Annotations
1.1 零配置使用场合
IOC Annotations 可以实现零配置,但也因为不用在applicationContext.xml中定义了,也就缺乏了灵活的,不修改代码的IOC手段,也无法做一些属性值的配置。
所以,IOC annotation 常用于Service,Dao,Controller 这些依赖关系比较固定,约定俗成大于配置的地方。
而XML 配置文件则用于如Database/SessionFactory,Spring Security这些需要配置的地方。 More …
简单的说,Web服务器提供的是在浏览器中浏览的网页,而应用程序服务器提供的是客户端应用可以调用的方法,一个更准确一点说法是:
Web服务器专门处理HTTP请求,而应用服务器可以通过任何协议向应用程序提供商业逻辑处理。
接下来让我们更深入一些。 More …