2013年3月23日
摘要: 4、不断重构 随着程序的不断修改,有些部分会不断的增长,原来看着清晰的架构可能因为问题的复杂而慢慢模糊,也可能被修正bug的权宜之计弄的面目全非。不信你找一个 经过多次修改的程序看看,是不是满目疮痍,是不是都很难认出是你自己的作品了。这在多人参与的项目中更加严重,每个人有不同的代码风格,经过多次杂交后, 你肯定认不出你的代码是骡子是马,还是四不像了。随着程序的慢慢成长,原来有些函数体会慢慢膨胀,需要拆分;有些原来简单的功能块四处都需要,应该被提炼 成函数或者方法,等等。现在不重构,未来等到代码复杂到无法控制的时候,重构的工作就会变得更加困难。我见过最强的案例是,一个几千行的电子辞典配套联机软. 阅读全文
posted @ 2013-03-23 10:59 sheldon.xie 阅读(159) 评论(0) 推荐(0) 编辑
  2013年3月20日
摘要: 在Core Java中有这样一段话“在Object类中,clone方法被声明为protected,因此无法直接调用anObject.clone()。子类只能直接调用受保护的clone方法克隆它自己。为此,必须重新定义clone方法,并将它声明为public,这样才能让所有的方法克隆对象”。但是不是所有的子类都可以访问受保护的方法吗?不是每个子类都是Object的之类吗?下面就用例子来说明下protected访问修饰符的问题。在package1中创建SuperClass.java文件,里面有一个protected方法,内容如下。[java] view plaincopyprint?package 阅读全文
posted @ 2013-03-20 18:46 sheldon.xie 阅读(296) 评论(0) 推荐(0) 编辑
  2013年1月21日
摘要: 如何debug没有源代码的class文件——eclipse+jad 施祖阳 http://hi.baidu.com/sylilzy2008-6-13 16:31:35 星期五 elipse的调试功能想必大家都已经很熟悉了,虽然通过jdb可以达到同样的目的,但可视化的调试工具会大大提高大家的效率。通过eclipse调试一般的应用程序或是调试基于服务器的程序都非常的方便,设置完断点后点击debug按钮就OK了。今天给大家介绍下如何通过eclipse+jad对没有源代码的class文件进行调试. jad工具是一个非常优秀的java反编译工具,通过jad可将classs文件反编译,但是通过ja... 阅读全文
posted @ 2013-01-21 10:21 sheldon.xie 阅读(1612) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.chinaunix.net/uid-143884-id-2815259.html用Eclipse Debug,当跟踪进jdk api里时(比如javax.swing包里的类),无法查看某些local filed的值。这是因为jdk里的代码在打包时删除了一些用于调试的信息,以减小安装包的体积。不过可以通过重新编译jdk源代码来恢复此功能。1.在Eclipse里新建一个java工程,把jdk_home/src.zip解压缩,复制java,javax两个目录的源代码到新建工程的src目录下。2.build整个工程。如果build报Access restriction错误 阅读全文
posted @ 2013-01-21 10:20 sheldon.xie 阅读(217) 评论(0) 推荐(0) 编辑
  2013年1月9日
摘要: 原文地址:http://www.cnblogs.com/figure9/archive/2011/07/10/2102613.htmlLucida——一门函数式程序设计语言的诞生起因自己从本科那会就开始想写一个编程语言,不过那会缺乏编译的功底。自从阅读了DSL和Language Implementation Patterns,并写了一个一定规模的Parser之后,对编译有了一个比较全的认识,大概也能想清一个语言的运行机理和实现过程。而且到现在自己用过的语言也不少了,过程的有C,OO的有C++、C#、Java,脚本的有Javascript、Python,函数式的有Scheme、Haskell,看 阅读全文
posted @ 2013-01-09 15:47 sheldon.xie 阅读(201) 评论(0) 推荐(0) 编辑
  2011年2月15日
摘要: JAVA语言的反射和内省 很多朋友在深入的接触 JAVA 语言后就会发现这样两个词:反射 (Reflection) 和内省 (Introspector) ,经常搞不清楚这到底是怎么回事,在什么场合下应用以及如何使用?今天把这二者放在一起介绍,因为它们二者是相辅相成的。 反射 <o:p> </o:p> 相对而言,反射比内省更容易理解一点。用一句比较白的话来概括,反射就是让你可以通过名称来得到对象 ( 类,属性,方法 ) 的技术。例如我们可以通过类名来生成一个类的实例;知道了方法名,就可以调用这个方法;知道了属性名就可以访问这个属性的值。 还是写两个例子让大家更直观的了解反 阅读全文
posted @ 2011-02-15 23:44 sheldon.xie 阅读(232) 评论(0) 推荐(0) 编辑