- 博客(9)
- 资源 (15)
- 问答 (1)
- 收藏
- 关注
原创 JVM——垃圾回收(GC)
GC简介java语言运行在java虚拟机(jvm)上,为了解决有限的空间和性能的保证这个矛盾体,jvm所具备的GC能力,可以有效的清除不用的对象,使空间的利用更加合理。下面介绍该机制的原理。判断对象已废弃引用计数法 给每一个对象都配备一个计数器,对于该对象,若增加一个指向它的引用,则计数器加1;每失效一个引用,则计数器减一。 但是,如果两个对象互相引用,但都对于外部都已失去用途,则这样的两个对
2015-03-16 23:36:46 970
原创 设计模式——适配器模式
场景设置 Ghost只会说英文,但是现在要跟我用中文交谈,因此他需要随身携带一个翻译,通过翻译才能与我进行有效沟通。明确上述要求中的一点:即Ghost说话的方法为英文,而我接收的方法为中文,因此我们之间必须有个能转化英文为中文的接口,这就是适配器的概念。 首先我们定义EnglishSpeaker和ChineseSpeaker接口:interface EnglishSpeaker{ p
2015-03-08 14:11:51 768
原创 设计模式——单例模式
单例模式是一种常用的设计模式。在JVM中,该模式能够保证该对象只有一个实例存在。好处:1.某些类创建频繁,对于大型系统是很大一笔开销。2.某些类只允许一个对象存在,相同的对象多于一个会引起系统混乱。3.去掉new,降低内存使用频率,减轻GC压力。往往很多时候用到单例模式会简简单单写几行类似于如下的代码了事:public class Singleton { private static Sin
2015-03-08 13:24:49 706
原创 设计模式——代理模式
场景设置 Boy 有一束鲜花要送给 Girl,但是又不好意思送,因此寻找Proxy将鲜花转交给Girl。首先定义鲜花持有者接口,实现该接口的类都具有送花的能力:interface FlowerKeeper{ public void sendFlower();}然后定义Boy类,能够拥有鲜花并且有送鲜花的能力(只是不亲自送而已):class Boy implements FlowerK
2015-03-08 11:54:25 940
原创 设计模式——观察者模式
场景设置 我班同学订阅了一些杂志,有杂质A,杂质B,订阅的同学有Ghost,Guang 现在每当杂质更新的时候就要向订阅了该杂志的同学发出通知以提醒他们。实现该逻辑的代码。首先定义接口,我们需要一个Magzine接口和Observer接口。 用来赋予杂质和观察者应有的行为。interface Observer{ public void update();}abstract
2015-03-07 12:49:09 810
原创 设计模式——装饰模式
从现实入手 我早上起床,光着身子。这时我要穿衣服,先穿裤子再穿上衣。 我该怎么实现这个过程呢?首先我是一个赤裸裸的人,并且我能被别人看到:class Person { protected String name; protected String body; public void show(){ System.out.println("身体");
2015-03-06 21:17:54 787
原创 设计模式——简单工厂模式
从现实入手 我想养一些小动物,把他们圈养在一起看着他们长大,我选择猫,狗,羊,鸡这四种动物。一般思想,无非建立4个动物类,实例化即可,如下:class Dog{ public void shout(){ System.out.prinltn("dog shout"); }}class Cat{ public void shout(){
2015-03-06 13:12:45 993
原创 设计模式——工厂模式
从现实入手还记得前面讲到过的简单工厂模式吗? 在客户端(main中)的时候仍然需要用到AnimalFactory.getAnimale(0) 来对动物种类进行选择,则当新增加动物种类的时候,不得不在原工厂类AnimalFactory 中进行代码的改动,这相当于在后台进行改 动。 现在我们要解决的就是去掉Factory中的switch语句和任何判断的逻辑,仅仅利用继承或者多态在客户端实现对动物的
2015-03-06 13:10:55 1131
原创 设计模式——策略模式
场景设置 设计一个计算器,有+、-、*、/。策略模式的主要思想在于,将所有的可供选择的算法封装,通过一个统一的容器传入予以调用。比如: 我有一个计算用的接口,往里面插入计算器,计算器中有加法器、减法器等等,这些就是策略,我把策略包装好,放入计算器进行调用,计算器再插入接口即可。 因此基于该模式的代码应如下: 计算接口:interface Operation{ public in
2015-03-06 13:10:21 636
spring4.0.0.RELEASE全套jar包
2015-06-05
lucene 3.0.1 jar包
2015-01-09
一个音乐网站爬虫
2014-08-27
ja v a 泛型中的擦除问题
2014-11-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人