Java
影子zZzZ
为兴趣,一如过往!为梦想,坚持不懈!
展开
-
volatile关键字解析
理解volatile关键字之前,建议先理解java内存模型(参考......)。在并发编程中,难免会遇到共享数据并发处理的问题,这些问题主要体现在了并发编程需要注意的几个特性:原子性,可见性,有序性(参考......)。volatile能够保证其中的可见性和有序性(一定程度上),但不能保证原子性。所以用volatile修饰一个共享变量A,那么对A就有了2层语义:原创 2015-10-28 09:18:54 · 342 阅读 · 0 评论 -
JVM锁机制之synchronized
概述:synchronized是java用于处理多线程同步的一个关键字,用于标记一个方法/代码块,使之成为同步方法/同步块。用synchronized可以避免多线程处理时的竞态条件问题。相关概念:在java中,所有对象都有一个锁(也叫对象监视器/内置锁),并且JVM会记录对象的加锁次数。内置锁的可重入性:当一个线程请求一个未被持有的锁时,JVM将记下锁的持有者,并且原创 2015-10-30 13:55:46 · 372 阅读 · 0 评论 -
Spring - BeanPostProcessor接口(后处理器)讲解
概述:BeanPostProcessor接口是众多Spring提供给开发者的bean生命周期内自定义逻辑拓展接口中的一个,其他还有类似InitializingBean,DisposableBean,BeanFactoryAware等。实现了BeanPostProcessor接口的Bean我们叫做后处理器。 BeanPostProcessor接口定义如下:p原创 2015-11-17 10:38:20 · 2480 阅读 · 0 评论 -
Spring - Bean的生命周期
在Spring中,bean默认是单例模式(Singleton),即在Web应用容器启动到关闭,每个bean只有一个实例。只有在配置bean的时候设置singleton=false(默认是true)时,每次获取bean的时候才会产生一个新的bean实例。如果应用中是用BeanFactory来生产、管理bean的话,那么bean从创建到销毁会经历几个阶段:1. 实例化原创 2015-11-17 10:54:34 · 457 阅读 · 0 评论 -
Spring - Spring容器概念及其初始化过程
引言工作4年多,做了3年的java,每个项目都用Spring,但对Spring一直都是知其然而不知其所以然。鄙人深知Spring是一个高深的框架,正好近期脱离加班的苦逼状态,遂决定从Spring的官方文档入手,结合Spring代码和实际项目,全面的学习Spring,并将学习内容记录在博客上,以便以后查阅并可以和众猿讨论分享。PS:文章中会有部分是官方原句翻译,例子也会有官方例子。原创 2015-11-18 15:46:17 · 838 阅读 · 0 评论 -
Spring - Bean的概念及其基础配置
概述bean说白了就是一个普通的java类的实例,我们在bean中写一些我们的业务逻辑,这些实例由Sping IoC容器管理着。在web工程中的spring配置文件中,我们用标签来配置一个bean。Bean ID没个bean都有至少一个ID,而且区别于其他bean的ID。在配置文件中,我们可以用 id 或者 name 来指定bean的ID。id属性只能设原创 2015-11-18 17:06:09 · 401 阅读 · 0 评论 -
设计模式-观察者模式
概述:观察者模式 有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式。 举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。实现方式:观察者设计模式定义了对象间的一种一对多的依赖关系,以便一个对象的状态发原创 2015-11-03 14:19:32 · 411 阅读 · 0 评论