设计模式之结构型模式

这一次我们来学习结构型模式。结构型模式主要包括:

  • 适配器模式(Adapter Pattern)
  • 桥接模式(Bridge Pattern)
  • 过滤器模式(Filter、Criteria Pattern)
  • 组合模式(Composite Pattern)
  • 装饰器模式(Decorator Pattern)
  • 外观模式(Facade Pattern)
  • 享元模式(Flyweight Pattern)
  • 代理模式(Proxy Pattern)

这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。

设计模式之创建型模式

从现在起,我们开始学习设计模式。
实际上,在以前的学习中已经接触到了许多的设计模式。比如,IO的装饰者模式,String常量池中的享元模式,单例模式,简单工厂、静态工厂模式,GUI监测的观察者模式,Spring中的代理模式等等。在一本书上看过,设计模式不只是一套公式,为了设计模式而设计,而是来源于程序而高于程序的一套系统的方法论。可以说任意的程序都能找到设计模式的影子,可能是一个模式,也可能是很多设计模式杂糅在一起。
虽然之前接触过,也大概了解一些设计模式的含义,但是还没有经过系统的学习。学设计模式的意义在于了解大局观,能从架构上寻找合适的解决问题方法。
GOF的中介绍,设计模式大致分为3大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。在此基础之上,我们再来学习J2EE的几种设计模式。

Java多线程编程(四)

本文重点学习了java.util.concurrent包内的重点方法。JKD1.5增加了并发包,为并发编程提供了非常大的帮助,让我们更容易地使用并发技术。其中的阻塞队列、线程池、原子类、信号量等技术特别重要,值得我们深入学习。

Java多线程编程(三)

本文介绍了定时器Timer和线程的其他特性。
Timer是一个定时器,可以定时来做一次或重复任务。学习了Timer的源码,但是后来在effective java上看到Timer有一些问题,推荐DelayQueue来取代。
后面还介绍了线程的特性,比如线程的状态及其变化,还有线程组及对异常的处理等。

Java多线程编程(二)

本文主要分为两大章,线程间通信和Lock锁技术。
线程间通信主要通过wait和notify方法来实现。但effective java中推荐不要使用这两个方法,因为并发包的功能可以满足大部分的需求,而且实现起来比它们要简单的多。此外,介绍了中断、管道通信,以及深入学习了ThreadLocal的源码。
Lock锁是一个很重要的特性,相当于把synchronized解耦,提高了锁的灵活性。此外,还包括了Condition、ReentrantLocl和ReentrantReadWriteLock类的相关特性。

Java多线程编程(一)

最近在学习并发编程。准备学习路线是:《java多线程核心编程技术》(敲一遍)->《java并发编程实践》(理论掌握)->java.util.concurrent源码阅读。我将已经敲过的代码放入github仓库中,有兴趣的童鞋可以瞅瞅。
下面就记录一下我的一些心得体会~
本文介绍了多线程的基础,比如创建线程,以及synchronized和volatile关键字等。

Hello World

       欢迎来到我的博客!早就听说Hexo的鼎鼎大名,但是没有找到合适的连续时间,一直没能重新折腾github博客。今天跟随着先驱们的指引,经过惨不忍睹的折腾,两个多小时后终于跑了起来。下面简单介绍我建站的一些粗浅的经验,欢迎指正~~!

面试经历

从准备找工作到现在,看过了不少面经,收获很大。对于企业的技能要求、文化特点了解很多。在此,我也把我的面试经历记录下来,一来作为总结,查漏补缺,二来希望能给别人一点帮助,回馈社会~