自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

superbeck的专栏

以小事始,方知大事之成败

  • 博客(93)
  • 收藏
  • 关注

原创 slf4j与LOGBack -- 学习笔记

slf4j和LOGBack是log4j的创建者Ceki Gülcü新创建出来的一个组合,它完全可以替代apache commons logging + log4j组合,并且在性能和架构方面有了不小的改进。

2011-04-12 11:18:00 4274

转载 线程同步

线程同步相关的一篇文章,逻辑很清楚,讲解的也很细致。

2011-02-24 15:06:00 1268

原创 Notepad++: Load langs.xml failed! — and how to fix it

I had been getting the “Load langs.xml failed!” dialog when I started up Notepad++.

2010-11-17 16:16:00 2329

原创 设计模式:Flyweight模式(享元模式)

记得在大学时,用当时的那台电脑玩魔兽,一旦视野内存在大量兵的时候,游戏就会暂时卡掉,无法进行任何操作。那就是因为系统new出来太多的兵,所需内存空间已经超出了硬件可提供的空间而导致游戏卡掉的。事实上,当遇到类似问题时,我们可以优先考虑一下Flyweight模式。

2010-11-02 10:19:00 1637

转载 VMWare中网络配置详解

VMWare为Guest系统提供了强大的网络功能,本身分为三种网络模式, bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。为我们组建自己的私有网络,实验测试环境等提供了很大的方便。刚开始接触VM的朋友常常对于VM怎么和宿主机通讯,怎么上网,Guest系统之间怎么互相通讯,感到一头雾水,下面将介绍VM的各种网络工作模式,以及虚拟网络配置工具的使用,希望看了能够对VM中各种联网模式的理解和应用有所帮助。

2010-10-28 18:08:00 2858

原创 VMware Player NAT模式无法自动获得IP地址的原因及解决方案(其中一个)

个人遇到的一个小问题,如果遇到同样问题并且尚不知道原因的,可以参考一下。

2010-10-27 18:47:00 9870 1

原创 设计模式:Bridge模式

如果你想要写一个游戏,并且想让这个游戏同时支持PC和手机,那么怎么样的设计可以避免写两套代码,并且不影响可扩展性呢?说起来还是比较简单的,只要把对平台的依赖部分抽取成抽象的接口(比如说绘图部分),并且针对抽取出来的接口,分别实现PC版和手机版就行了。系统的其他部分只要调用那套抽取出来的接口就可以完成所有的功能。这样来看,系统的其他部分是不依赖具体的平台的,也就具有了良好的扩展性。这个就是Bridge模式的应用。

2010-10-27 18:06:00 7363 2

转载 成为一名优秀程序员所需要知道的那些事

编程虽是复杂活,但成就优秀程序员的很多因素和我们在学校中最早学到的相差无几。

2010-10-21 13:44:00 931

原创 JavaScript:面向对象编程的模拟实现方法(三)

之前学习了JavaScript中模拟类和继承的多种方法,以及在选择模拟类和继承的方法时需要考虑的因素,接下来就该是具体的应用了。本篇是构建了一个简单的framework,为模拟类和继承提供了一个简单,易于理解的方式。

2010-10-07 18:02:00 1035

原创 JavaScript:面向对象编程的模拟实现方法(二)

本系列的上一篇中介绍了模拟类和模拟继承的多种方式,并且对各种方式做了一个简单的优缺点描述。本文主要是描述作者认为在选用哪一种方式的所考虑的一些具体方面及最终的方案。

2010-09-13 14:12:00 1161

原创 JavaScript:面向对象编程的模拟实现方法(一)

JavaScript本身是一门基于对象的语言,就是说这门语言本身存在对象的概念,但是它是不满足面向对象的三大基本特征的。不过语言是死的,代码是活的,我们还是可以使用一些方法来模拟JavaScript的面向对象开发的。

2010-09-09 11:06:00 1297

原创 设计模式:职责链模式(Chain of Responsibility)

链表,想必有太多人用过了,但是基于链表的设计模式?职责链模式正好是这样的一个。当然职责链模式可以有多种形式,并不是一定要求是一条单链的。关于这一点,我们后面会提到的。

2010-07-19 07:55:00 1418

原创 eclipse上的几个Velocity插件

最近在研究 XWiki,它是支持Velocity的,所以就顺便调查了一把支持Velocity的编辑器。不过由于用惯了eclipse,自然是以eclipse的插件为主要调查方向了。调查下来一共有三个插件,其中一个叫veloedit,另外两个都叫veloeclipse,不过确实是两个不同的插件,一个在google code上,一个在sourceforge上。详细信息可以看参考资料。

2010-07-08 16:48:00 32361 2

原创 面向对象设计的设计原则

在设计面向对象的程序的时,模式不是一定要套的,但是有一些原则最好是遵守。这些原则共有七个,包括:开闭原则、里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则,单一职责原则。

2010-06-11 16:59:00 3759

转载 为什么上传文件的表单里要加个属性 enctype

上传文件的表单中要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么写,知其然而不知其所以然。那到底为什么要添加这个属性呢?它是什么意思呢?它又有什么其他可选值呢?

2010-06-10 09:11:00 1059

原创 建立自己的版本控制服务器----SVN(subversion)的初级使用

有过编码经验的人都知道版本控制服务器的重要性。因此虽然公司一般都会提供版本控制服务器,但是那都是为项目准备的。而我们平时可能也会有一些练习的代码,也会有很多修改。所以,建立一个属于自己的版本控制服务器是必要的。从版权和易用性来看,Subversion(简称SVN)是个很不错的选择。

2010-06-04 17:39:00 2164

原创 设计模式:Command模式

Commad模式是一种对象行为模式,它可以对发送者(sender)和接收者(receiver)完全解耦(decoupling)。("发送者" 是请求操作的对象,"接收者" 是接收请求并执行某操作的对象。有了 "解耦",发送者对接收者的接口一无所知。)简单说明 简单来看,在对象A调用了对象B的一个方法,这样对象A就可以看做一个发送者,对象B就是

2010-05-07 14:07:00 1198

转载 Java 中 Vector、ArrayList、List 使用深入剖析

线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Has

2010-03-25 22:21:00 811

原创 设计模式:Proxy模式

Proxy(代理),字面意思很容易理解,简单来说,找个中间人来帮助完成某事情。从设计上来看,Proxy模式也是一个比较容易理解的模式。但是它有哪些种类,哪些优缺点,和其他的一些模式有什么区别呢?这就需要稍微的详细了解一下了。 定义 为其他对象提供一种代理以控制对这个对象的访问。  分类

2010-03-23 22:18:00 1214

原创 位运算符的一些用途

 虽然平时很少用到位运算符,但是在某些时候,这些小东西确实能够给我们提供很好的解决方案。 概述位运算是对二进制数进行运算。java中的位运算符有[&, |, ^, ~, >, >>>],其中[~]是一元运算符,其余为二元运算符,二元运算符还有相应的赋值运算操作符[&=, |=, ^=, >>=, >>>=,

2010-03-17 08:32:00 16992 3

原创 JSP/Servlet中的编码相关设置

在JSP和Servlet中有几个地方都可以设置编码,各个编码的功能也不一样,本文将对各个编码做一个小结。 各种编码一览A. JSP/Servlet都有的编码设置1. request.setCharacterEncoding("UTF-8")2. response.setCharacterEncoding("

2010-03-05 07:39:00 23357

原创 设计模式:Visitor模式

Visitor模式是一个用起来很简单,理解起来可能稍微有一点困难的模式。不过明白了之后就清楚了,其实也是非常的简单。问题需要向对象结构中增加新的方法,但是增加起来会很费劲或者会破坏设计。 案例举一个例子。假设我们有一组机器(Windows,Unix,Linux,Mac等),每种机器都有自

2010-02-25 14:02:00 13265 5

原创 用户体验到底有多重要?——说在支付宝年会后

在软件这个竞争日益激烈的行业中,用户体验到底有多重要?2010年年初,支付宝的年会上,支付宝的1000多名员工首先收到的不是对他们2009年巨大业绩的肯定,而是无数的客户对他们的产品的抱怨的电话录音。马云在随后对支付宝的用户体验的评价是:烂,太烂,烂到极点。其实,不用参照别人的经验,我们在自己做项目,做产品的过程中也能够完全体会的到这些。即便是一个非常成功的

2010-01-29 11:50:00 2328

原创 Windows XP的托盘上的图标总是时有时无的解决方法

近日遇到一个Windows XP的托盘上的图标总是时有时无的问题,着实把我困扰了一番。费了一番周折后终于解决,特地分享。我这次的问题是,无论是本地连接,还是QQ,又或者删除硬件的图标,都是时有时无的。最气人的就是,我要使用网上银行,却发现那个USB-Key的读取软件都出不来,结果几次操作都付不了款。后经过网上搜索,找到了好多种方法,不过试下来只有两种是有效的

2010-01-17 20:40:00 1054

原创 Java反编译利器-Jad, Jode, Java Decompiler等及其IDE插件

对于长年使用Java的程序员,大部分应该都会或多或少的使用到反编译软件。毕竟,不可能你所使用到的每一个包都会提供完善的javadoc,而且,有时候代码比javadoc更容易理解。这里将讲述笔者所了解的一些反编译软件以及它们各自的IDE插件版。简介现在业内的反编译软件据说有几十种。其中有jad,以及基于jad而开发的其他反编译软件(Fr

2010-01-14 11:57:00 6736

转载 网页制作:HTML代码编写的30条技巧

 本文总结了30条HTML代码编写指南,只要在编写HTML代码的过程中牢记它们,灵活运用,你一定会写出一手漂亮的代码,早日迈入专业开发者的行列。1. 一定要闭合HTML标签在以往的页面源代码里,经常看到这样的语句:Some text here.Some new text here.You get the idea.

2009-11-13 12:40:00 1622

翻译 Javascript Best Practices —— 14条Javascript最佳实践

 简介这个文档是基于Javascript社区众多开发者的意见和经验,在开发Javascript代码时的最佳实践和首选的方案的明细表。因为这是一个推荐的列表而非原则性的规则,经验丰富的开发者可能对下面的表达会略有不同的见解。内容提示总是使用"var"特性检测而非浏览器检

2009-11-13 12:37:00 1007

原创 基于java的程序OutOfMemory问题的解决及Xms/Xmx/Xss的解释和应用

长期以来一直都是做java应用的开发,所使用的开发工具基本上也都是基于java的,经常用的有eclipse, netbeans, ant, maven, cruisecontrol, tomcat, findbugs等。在使用这些工具的时候,有时候会碰到OutOfMemory的问题。 问题一般在遇到这个问题的时候,我们的第一印象是:一定是机器的内存不够用了。可是

2009-11-11 18:08:00 18928

原创 类图图解重写和重载的区别

重载和重写是面向对象设计和开发中常用的两个概念。 这两个概念其实还是非常容易区分的。如下面的类图所示,左边为Overriding(重写),右边为Overloading(重载)。 Overriding:是指在继承的情况下,子类中定义了与父类中型构一致,但方法体不一致的方法。这也是实现多态的必要步骤。 Overloading:是指在同

2009-10-07 17:45:00 5756

原创 设计模式:Observer模式

在做面向对象的软件开发过程中,有时候会碰到这样一种情况:某一个对象的变化会导致很多个对象同时发生变化,必须是及时的变化,而且受影响的对象也是未知的。Observer模式正好是解决这类问题的拿手方案。  定义观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。The Observer Patter

2009-10-02 08:05:00 1386

原创 设计模式:Prototype模式

在软件开发中,有时候可能会需要创建一些特别复杂的对象,如果系统中已经存在同样类型的对象,并且不同的属性个数相差不大的话,用Prototype模式可能是一个理想的选择。 定义:用原型实例指定创建物件的种类,并且通过拷贝这些原型创建新的物件。  Prototype 模式允许一个物件再创建另外一个可定制的物件,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型物件传给那个要发

2009-09-17 07:45:00 2250 1

原创 设计模式:Builder模式

Builder模式主要用于构建复杂的对象,对象的各个部件可能会有剧烈变化,而构建的过程是固定的。这个时候就可以使用Builder模式把对象的构建过程抽取出来。 作用:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。举例来讲,同样一批建筑工人,都会打地基,砌砖,贴瓷砖等等基本的建筑操作,也就是说,你可以用他们来盖商业楼,盖住宅

2009-09-14 07:25:00 1421

原创 python学习——初次接触(python,wxpython,Boa,py2exe)

 前言长期使用java做web开发,有时候需要做一些小工具的话,优先考虑的一般是写ant或bat等脚本,因为开发较快,并且很容易集成到IDE中。不过有时候一些桌面程序级别的工具也是需要的,比如说写一些文档生成相关的工具等。这个时候采用java是不太合算的,因为开发效率不高(虽然有netbeans,eclipse上也有swt designer),性能也有一点影响,而且还必须要有JRE

2009-09-08 18:23:00 8734 1

原创 HttpServletRequest.getParameter(String)和getAttribute()的区别

getParameter(String)和getAttribute()这两个方法都是从request对象中获得参数的方法。但实际上他们之间有着本质的区别。 1. getParameter()是指客户端和server端之间的数据传递。我们在从浏览器端发出一个请求到server端时(无论是GET和POST方式),所有的参数都是被包装成了String的形式之后才被传递到server端的。所以,我

2009-08-31 08:23:00 15565

原创 Struts1:options和optionsCollection的使用及区别

Struts1系列中关于标签的选择项标签的生成,提供了三种标签,分别是,和。其中用于生成单个的标签,而另外两个则是用于生成一组标签。三个标签可以同时出现在的body中。本文主要是记录和这两个标签的使用及区别。  术语知识在我们下面的内容中,将会使用到label和value两个术语。下面是一个select的sample code,其中1和2表示一个opti

2009-08-23 11:38:00 5789 1

原创 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别

简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。 简单工厂简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。  工厂

2009-08-14 12:56:00 82626 41

转载 深入理解JavaScript的变量作用域

在学习JavaScript的变量作用域之前,我们应当明确几点:    a、JavaScript的变量作用域是基于其特有的作用域链的。    b、JavaScript没有块级作用域。    c、函数中声明的变量在整个函数中都有定义。 1、JavaScript的作用域链首先看下下面这段代码:

2009-08-06 21:20:00 1259

原创 浏览器的下一步发展:tab嵌套?

浏览器从单窗口模式发展到单窗口多tab模式,似乎是必然的。因为随着带宽的飙升,网速已经不再是消费者的瓶颈,他们有足够的网速同时打开多个网页。同时多tab的浏览器在内存占用的处理和操作习惯上也更加具有优势。那么下一步应该是什么样子呢? 虽然现在IE的新版,safari等都有查看多个网页的微缩视图的功能(也就是可以在同一个窗口中同时查看9个或者更多个网页的微缩版),但是在笔者看来,这只是一

2009-08-06 07:28:00 1330

原创 Ant:给Ant脚本传递参数的最佳实践

Ant是一个Make Tool,主要用于代码的编译,构建。当然,也有很多Ant爱好者开发了很多外部任务扩展了它的功能。它无界面,跨平台的特性,正好适用于软件开发人员。Ant已经成为软件开发人员开发过程中的一道利器。在项目开发的过程中,Ant除了会被用来进行编译,打包,生成各种报告外,还可以被用来写开发中用到的工具。当然了,既然是开发中用到,参数的传递也少不了了。那么,怎么样做才是更好的方法

2009-07-18 16:42:00 21678 2

原创 写自己的JS框架 - 原理,原则篇

自从ajax技术兴起之后,开源界就出现了很多著名的JS框架。包括Google的Gmap等一系列,雅虎的YUI,还有就Jquery, Prototype等。使用这些框架就可以用简单的代码来实现丰富多彩的功能,有很多甚至是采用了类似面向对象的编程风格。其实只要了解了Javascript的相关基础知识,我们完全可以自己写一个JS框架出来。本文介绍了搭建JS框架的基本原则。(ITcast上的教程-构建

2009-07-15 22:09:00 9881

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除