策略模式也叫政策模式。

这是一个关于策略模式的故事。假设 Mike某个时候开车超速,但是他不是总是这样做。他有可能被警察叫停。也许这个警察很好,不给他罚单或者警告。(让我们吧这样的警察叫做”NicePolice”)。也有可能被抓到让后给予罚单。(让我们叫这样的警察”HardPolice”)。他不知道什么警察会把他叫停,直到他被逮住,如果那样运行,那就是策略模式的关注点。

策略模式的类图

 Arrayin Memory

阅读全文

状态模式(State)主要是为了在运行时改变记录状态。

关于状态模式的故事

人们可以根据不同的财务生活。他们可以是富有或者是平穷。这是两种状态”富裕”和”平穷”,根据时间的流逝这个是状态是可以改变的。这个例子的想法是:通常平穷的人们都在非常努力的工作而富裕的人都在玩。他们做什么取决于他们的状态。状态可以改变他们的行为,否则,社会太不公平了。(努力可以改变平穷,富裕贪玩也能变成平穷)

阅读全文

Java Core API提供了Comparable 和 Comparator 两个接口。根据名称来看我们做到它们能以某种方式比较东西。但是它们究竟有什么不同呢?下面的两个例子就会说明。这个简单的例子是比较两个高清电视的大小。当你读完本文,你就会做到如何使用Comparable 和 Comparator。

阅读全文

Spring框架包含大约20个功能模块。这些模块被分为核心容器(Core Container),数据访问/集成(Data Access/Integration),Web(Spring MVC等),AOP(面向切面编程),Infrumentation和测试,如下面的图。

Spring Framework Runtime

核心容器(Core Container)

核心容器主要包括 Core, Beans, Context 和 Expression Language 模块。

核心容器主要完成的功能就是Ioc(控制反转)和DI(依赖注入)功能。

Core 和 Beans 是spring框架最基础的部分, 主要完成的功能就是Ioc(控制反转)和DI(依赖注入)功能。

Context构建在Core 和 Bean之上,提供类似JNDI的获取对象的方式。继承了Beans模块的所有功能,并在此基础上增加了国际化、事件传播(evnet-propagation)、资源加载等功能,支持透明创建其他context(如servlet容器),并支持EJB、JMX等J2EE特性。核心模块为ApplicationContext接口。

阅读全文

启动 Android SDK Manager ,打开主界面,依次选择「Tools」、「Options…」,弹出『Android SDK Manager - Settings』窗口;
在『Android SDK Manager - Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入mirrors.neusoft.edu.cn和80,并且选中「Force https://… sources to be fetched using http://...」复选框。设置完成后单击「Close」按钮关闭『Android SDK Manager - Settings』窗口返回到主界面;
依次选择「Packages」、「Reload」。

注释和共享

Hello World Web RTC

WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。是一个无插件实时通信。我们来看看如何使用。

阅读全文

作为一个前端优化来说压缩技术不可少,但是各个浏览器支持情况却又是不同。

浏览器支持的压缩编码分析

作为主流的PC浏览器来说主要是IE、Chrome、Firefox、Opera、Safari这几个,同时移动端的Chrome、Firefox、Opera、QQ、UC等,这么多的浏览器,它的压缩编码支持情况是怎么样的?(浏览器端主要是针对编码的解码)

解码类型 IE Chrome Firefox Opera Safari QQ UC
gzip
deflate
sdch x x x x
lzma x x x x x x
阅读全文

windows

http://download.java.net/openjdk/可以进行相应的版本的源码下载,但是打包是zip格式的。

linux下载

openjdk的源码是使用 Mercurial管理的,所以下载openjdk之前你需要先安装 Mercurial.

sudo apt-get install mercurial

然后执行下面的命令

sudo hg clone http://hg.openjdk.java.net/jdk8/jdk8/ openjdk8

执行获得源码的脚本(执行获得源码的脚本的时候需要权限)

sudo chmod 755 get_source.sh
sudo ./get_source.sh

注下载时间很久,如果为了方便最好下载zip打包好的版本。

阅读全文

系统总结学习了一下关于计算机中的原码, 反码和补码。并且生日讨论了这些二进制码的原理。

关于机器数

机器数是把符号”数字化”的数,是数字在计算机中的二进制表示形式。这和计算机内部的硬件有关,它只能表示两种物理状态(0和1),于是计算机就用二进制数。

在实际中数字是有符号的,通常在机器里就用一位二进制的0或1来区别。通常这个符号放在二进制数的最高位,称符号位,以0代表符号“+”,以1代表符号“-”。

带符号位的机器数对应的数值称为机器数的真值。 例如:机器数1011011的真值对应为-011011

阅读全文

Javy Liu

author.bio


author.job


beijing