`
hacksin
  • 浏览: 10359 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
在编写Spring 时,会遇到循环依赖的问题,如下: <bean id="cycleA" class="di.cycledependency.CycleDependencyA"> <constructor-arg ref="cycleB"/> </bean> <bean id="cycleB" class="di.cycledependency.CycleDependencyB"> <constructor-ar ...
1.通过构造函数创建 <bean id='injectBean' class="di.InjectBean"></bean> <bean id="diConstruct" class="di.DependencyInjectConstruct"> <constructor-arg type="java.lang.String" value="Inject construct test"/> < ...
WeakHashMap包路径java.util.WeakHashMap,基于HashMap实现原理同时在保存键时引入了WeakReference(弱引用),这样可以达到引用但不影响gc回收此引用实例的目的,其可以尽量避免内存泄漏的情况出现。这里的弱引用简单解释下,相对于我们平时开发中用的引用关系(即强引用),弱引用不会影响gc对垃圾实例的判断,也就是弱引用中的实例如果不存在强引用是可以被gc的,但被gc回收的时机是不确定的,其依赖gc的运行。 应用场景举例: 如果一个实例键值已经存在强引用,同时我们也需要利用此键值建立其他的映射关系,当此键值无用时(即强引用消失后,那么后来建立的映射关系 ...
java在jdk1.3中推出了定时器类Timer,而后在jdk1.5后由Dou Lea从新开发出了支持多线程的ScheduleThreadPoolExecutor,从后者的表现来看,可以考虑完全替代Timer了。 Timer与ScheduleThreadPoolExecutor对比: 1.    Timer始于jdk1.3,其原理是利用一个TimerTask数组当作队列,将所有定时任务添加到此队列里面去。 然后启动一个线程,当队列为空时,此线程会阻塞,当队列里面有数据时,线程会去除一个TimerTask来判断  是否到时间需要运行此任务,如果运行时间小于或等于当前时间时则开始运行任 ...
锁的理解 锁产生于多线程并发应用,其作用是解决共享对象的同步同时也可以控制线程的行为。我认为锁不仅仅限于synchronize,ReentrantLock,ReadWriteLock.同时也包括CountDownLack, FutureTask, Semaphore, CyclicBarrier, Exchanger这些平时接触不多的并发控制类。后者经常会用在控制线程的运行行为。   1. CountDownLack 这种锁经常用来控制多个线程同时启动,并且能够及时感知这些线程是否全部运行结束。举例如下: 例子中m_begin用来为那10个线程发送启动指令,当m_begin.coun ...
摘自:http://yanguz123.iteye.com/blog/1934766 Jdk1.7的新特性: 1,switch中可以使用字串 Java代码: String s = "test";   switch (s) {     case "test" :        System.out.println("test");    case "test1" :       System.out.println("test1");     break ;     defaul ...
文章摘抄自:http://jingyan.baidu.com/article/ff41162582507512e5823763.html 前言     java中==、equals()、hashCode()都和对象的比较有关,在java中这三者各有什么用处呢,即java中为什么需要设计这三种对象的比较方法呢? 关于==     ==是容易理解的。java设计java就是要比较两个对象是不是同一个对象。     对于引用变量而言,比较的时候两个引用变量引用的是不是同一个对象,即比较的是两个引用中存储的对象地址是不是一样的。     对于基本数据类型而言,比较的就是两个数据是不是相等,没什么歧义。 ...
泛型,通配符 (1) 传参时要求类型为B,那么可以传入B或B的子类型 获取返回值时,如果返回的类型是B,那么接收他的类型可以是B或者B的父类型。 (2) <? extends T>表示其定义的泛型范围为T及其子类型 <? super T>表示其定义的泛型范围为T及其父类型 (3) object是所有类的父类,NULL代表所有类型 (4)举例: 设:B extends A, C extends B List<?  extends B> list = new ArrayList<B>();//表示list存放的是B或者B的子类。 //list.add( ...
Global site tag (gtag.js) - Google Analytics