前言 装饰模式(decorator pattern)又名装饰器模式或包装器模式(wrapper pattern)。 同样地,在初次学习一个从未接触过的设计模式,我们最好首先是从字面意思去进行思考:装饰很明显是个动作,抽象来说指的是给一个事物附加上另外一些事物。在生活中,“装饰”这种动作的具体形式 ...
初次使用IntelliJ IDEA
一直听说IntelliJ IDEA很好用,是最棒的Java IDE了,所以我也来学着用用了。网上教程还是很多的,不过还是要把那些我认为重要的记下来才行,那些新东西并不是只看一遍就能永远记住的。以前用习惯了Eclipse、MyEclipse这2个IDE,我也知道要用新东西,那肯定不能套用旧思维。初 ...
Git学习笔记 - 基础
什么是Git?Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。我相信很多人都用过SVN这一个版本控制系统,很多中小型公司都喜欢用这个工具的。在很早以前我就听说过Git,但由于工作需求,也就没深入接触了,现在有空就来学习学习这个强大的工具。版本控制系统可以分为2大类: ...
JavaSE学习笔记 - 注解基础
注解(Annotation)是元数据的一种形式,它提供描述程序但不属于程序本身的数据。注解没有直接作用于所标注的代码本身的功能。 注解是在Java SE 5时引入的一个新特性,很多时候它被称为元数据特性。注解有以下几种功能: 提供信息给编译器 —— 注解能够编译器用来检测错误或抑制警告 编译时 ...
Java中的协变与逆变
“协变”一词我并不是第一次见到了,在以前我学习C++的时候就碰到过,而到后来学习Java的时候也遇到了,而在学习Java泛型时更是碰到“逆变”一词。不过我见得最多的是“协变返回类型”,想必大多数人也跟我差不多。“协变”、“逆变”这些概念性的名词看起来就十分高大上的样子,但是很多基础书籍并没有明确 ...
JavaSE学习笔记 - 泛型进阶
在很久之前,我自己写了一篇关于Java泛型基础的文章,里面介绍了最基本的Java泛型知识,我们只要熟悉一下里面的内容,就可以把泛型应用起来。然而,泛型在Java中算是一个比较大的课题,所以,光是掌握之前所习得的基础知识是不足以让自己灵活运用泛型特性的。Java泛型有很多坑与细节需要我们深入地了解。 ...
设计模式学习笔记 - 代理模式(Proxy)
概述 代理,我们在各式各样的技术博客文章、书籍、框架中都见到过。这说明代理模式的运用是十分频繁。 从字面意思上去理解十分简单:代表某事某物进行某种动作、行为。而这个词在不同的领域中,描述不同的事物。生活中与代理相关的事物是挺常见的,比如:代购商,房产中介,XXX代言人,VPN,网游代练等等。 我 ...
Eclipse全键盘流---不定时更新
无论使用什么IDE编程都好,熟悉它的快捷键可以极大地加快开发速度。而这里只介绍一些最实用最常用的快捷键。 在详细介绍快捷键之前,对于Eclipse也好,MyEclipse也好,我们都要先进行一些设置: 先进入到Window > Pregerences > Java > Edito ...
JavaEE学习笔记 - 分页
分页技术在Java Web开发中是必须要用到的,虽然它不难,但长时间不接触渐渐就会对其淡忘了,毕竟这种轮子在项目开发中并不会经常被重造。 原理分析平常,我们就使用到各种搜索引擎、论坛,里面也有分页功能,那大可以模仿它们的来做出属于我们自己的分页功能。 在动手做之前,首先是根据分页功能推理出它内部底 ...
使用Eclipse调试JDK源码时无法查看局部变量的问题
问题某次我在使用Eclipse调试Java代码时,突然遇到了一个问题: 在调试模式下查看变量的窗口Variables中无法查看方法中的局部变量;虽然还可以看到方法参数的值,但参数名信息全都丢失了。 我发现以前调试的时候也没出现这种情况,所以我还翻出了以前的代码进行调试,也没出现出这种奇怪的问题,这 ...