摘要: 在上一篇解惑中,我们提到了对象的初始化顺序。当我们创建一个子类的实例时,总是会先执行基类的构造函数,然后再执行子类的构造函数。那么实例字段是什么时候初始化的呢?静态构造函数和静态字段呢?今天我们就来研究一下这个话题。 阅读全文
posted @ 2016-02-29 00:02 麒麟.NET 阅读(2295) 评论(9) 推荐(1) 编辑
摘要: 大家都知道,ThoughtWorks的技术雷达每年都会发布两到三次,它不但是业界技术趋势的标杆,更提供了一种卓有成效的方法论,即打造自己的技术雷达。在这种思想的驱动下,我们诞生了自己的读书雷达(目前已推出最新版)。但这份雷达略显high level,缺乏某一具体领域的详细书单。又由于最近很多同事都跟我讨论过C#书籍的问题,于是突发奇想,“滥竽充数”地搞了这份C#读书雷达,权当是读书雷达于C#这一领域的补充。 阅读全文
posted @ 2016-02-02 13:45 麒麟.NET 阅读(5076) 评论(14) 推荐(35) 编辑
摘要: 在C#中,用`virtual`关键字修饰的方法(属性、事件)称为虚方法(属性、事件),表示该方法可以由派生类重写(override)。虚方法是.NET中的重要概念,可以说在某种程度上,虚方法使得多态成为可能。然而虚方法的使用却存在着很大学问,如果滥用的话势必对程序产生很大的负面影响。 阅读全文
posted @ 2016-01-26 00:24 麒麟.NET 阅读(2887) 评论(11) 推荐(8) 编辑
摘要: 去年有一次我去4S店A给车做保养,例行检查的时候师傅跟我说,车前轮的球笼套胶皮有点老化,有渗油的迹象,他已经帮我把裂开的部分做了处理,暂时不需要换件,但必须常观察,否则一旦油漏光,没有润滑,就需要换轴了,那样成本就高出10倍了。我一边迷茫球笼套是个什么玩意儿,一边点头哈腰感谢师傅不宰之恩。 阅读全文
posted @ 2016-01-16 12:06 麒麟.NET 阅读(1703) 评论(5) 推荐(9) 编辑
摘要: 现在的team里每个迭代都会做一次retro,回顾这两周的情况,有哪些做得好的地方,有哪些做得不足的地方,并制定出一系列action,以期望在下一个迭代中解决这些问题。我觉得这种形式挺不错。因此今年的个人总结我也想用这种retro的形式来做。 阅读全文
posted @ 2014-01-05 23:27 麒麟.NET 阅读(1427) 评论(8) 推荐(3) 编辑
摘要: 在运行某个集成测试的时候,出现下面这个PSQLException错误:对应的model有一个String类型的字段标注为@Lob,Hibernate会将其转换成CLob。但是在获取这个CLob时,发现EDB的getClob方法调用了getLong,然后试图将这个CLob转换成Long,自然会出现上面的错误。没有edb的源代码,于是只好到Github上找到了pg的源代码,找到了引发这个错误的方法toLong,与我的判断一致。(输出错误是本地化后的中文,这实在是不明智的。搜索“错误的Long”可能根本找不到什么东西,但搜索“bad value for type Long”结果就完全不一样了。)为什 阅读全文
posted @ 2013-05-29 14:03 麒麟.NET 阅读(3359) 评论(0) 推荐(0) 编辑
摘要: 马上就要过年了,年终总结又姗姗来迟。 阅读全文
posted @ 2013-02-05 15:26 麒麟.NET 阅读(891) 评论(7) 推荐(1) 编辑
摘要: 在用Apache做负载均衡器的时候,与应用服务器(Tomcat或JBoss)之间是通过AJP协议来通信的。这时需要修改应用服务器的编码配置,否则导致乱码问题。 阅读全文
posted @ 2012-11-09 10:53 麒麟.NET 阅读(789) 评论(0) 推荐(0) 编辑
摘要: 用Apache和JBoss5做负载均衡 阅读全文
posted @ 2012-11-09 10:33 麒麟.NET 阅读(1888) 评论(0) 推荐(0) 编辑
摘要: 吐槽一下Oracle的JDBC API,它们都不是标准的API,需要各种适配。另外,对于ArrayDescriptor这种Oracle特定的类,使用OracleConnection无可厚非,但传入参数的类型为java.sql.Connection,就有点蛋疼了…… 阅读全文
posted @ 2012-10-16 13:52 麒麟.NET 阅读(2550) 评论(1) 推荐(0) 编辑
摘要: 基于Spring的Java应用会通过ApplicationContext接口提供应用程序配置。我们常常需要在代码中获取当前的ApplicationContext。 阅读全文
posted @ 2012-10-11 16:57 麒麟.NET 阅读(5184) 评论(1) 推荐(0) 编辑
摘要: 只有当所判断的Type为参数且必须按引用传递的情况下,IsByRef才为true。 阅读全文
posted @ 2012-07-19 12:54 麒麟.NET 阅读(1267) 评论(0) 推荐(0) 编辑
摘要: 我们通常提到C#中的值和引用,大多数情况可能都是指值类型和引用类型,但实际上值和引用有着更加丰富的含义。我这两篇文章试图把这些概念总结出来,讲解了值类型和引用类型的值是什么,以及它们在按值传递和按参数传递时有什么相同和不同之处。 阅读全文
posted @ 2012-06-15 16:55 麒麟.NET 阅读(9185) 评论(16) 推荐(6) 编辑
摘要: 本文主要澄清关于C#值和引用的两个误区:值类型的存储位置和引用到底是不是地址。 阅读全文
posted @ 2012-06-12 14:30 麒麟.NET 阅读(14304) 评论(30) 推荐(11) 编辑
摘要: DbUnit是测试数据库的利器,不过要想弄明白还是需要一番研究。好在它的源代码不多,文档也还算全。我就在此做一个总结吧。 阅读全文
posted @ 2012-06-06 14:59 麒麟.NET 阅读(6405) 评论(0) 推荐(1) 编辑
摘要: Eclipse SDK 4.x基于E4孵化器项目,是新一代构建基于Eclipse的工具和富客户端桌面应用的平台。它使得开发和组装基于Eclipse平台的应用和工具要更加容易。第一个版本(4.0)发布于2010年7月28日,4.1发布于2011年6月22日,2012年将发布Eclipse 4.2。Eclipse 3.8将和4.2同时发布,同时3.x也将停止更新。 阅读全文
posted @ 2012-05-11 12:38 麒麟.NET 阅读(6200) 评论(3) 推荐(1) 编辑
摘要: 前两天我微博提到有个BUG出现了两个月却还没有头绪。这个BUG是这样的:在Hibernate中自定义UserType,从数据库中取值的时候,有时候这个UserType能取到值,但有时候即使数据库有值,取到的也是null。后来负责前端的同事偶然发现,当数据库中某些字段为null的时候,这个UserType就取不到值,如果把这些字段填上内容,就可以取到了。于是这个问题就莫名其妙地解决了。后来经过分析和... 阅读全文
posted @ 2012-03-26 16:07 麒麟.NET 阅读(1199) 评论(1) 推荐(0) 编辑
摘要: 这两天突然闲得蛋疼,逛了一下CSDN,发现了这篇帖子,于是引发了一场不大不小的关于方法应该返回接口or具体类,以及面向接口编程的讨论。 方法的返回类型应该更抽象还是更具体,没有确切的答案,唯一正确的答案是:It depends。要时情况而定。 阅读全文
posted @ 2012-03-08 14:16 麒麟.NET 阅读(5723) 评论(52) 推荐(2) 编辑
摘要: 十五也终于过完了,这个年算是结束了,节后综合症也该痊愈了,该开始执行一年的学习和工作计划了。就从去年的总结开始吧。这当然是一份迟到的年终总结。过去的一年对我来说实在是太重要了,以至于我多次因为懒惰想放弃总结,却最终因为不舍而提起笔来。 阅读全文
posted @ 2012-02-08 14:58 麒麟.NET 阅读(807) 评论(8) 推荐(0) 编辑
摘要: Manning出版社出版的很多图书,都用XXX in Action这样的方式来命名,如著名的Ajax in Action、专门介绍LINQ的LINQ in Action,以及jQuery in Action、PHP in Action等等。这些书偏重基础,并包含大量的代码示例,即使是初学者,读起来也会十分轻松。 阅读全文
posted @ 2011-12-28 12:46 麒麟.NET 阅读(3932) 评论(20) 推荐(14) 编辑
摘要: Eclipse的Template实在是太强大了,这是我最近才体会到的。以前一直没有发现,或者说没有在意,但是现在看来,Template使得Eclipse的代码编辑功能在某种程度上超越了Visual Studio。 阅读全文
posted @ 2011-12-23 13:33 麒麟.NET 阅读(728) 评论(2) 推荐(0) 编辑
摘要: 手头的项目目前是JDK4+WAS6,为了能用JDK5来开发,需要使用Retrotranslator将JDK5编写的代码转换为JDK4。你知道,没有泛型、迭代器、Annotation、自动装拆箱等语法特性,开发Java就恶上加恶了。以下是搜集的一些资料,先贴在这里,以防丢失。是否能真的使用J5,还不得而知,上帝保佑吧。 阅读全文
posted @ 2011-12-20 16:48 麒麟.NET 阅读(1283) 评论(1) 推荐(0) 编辑
摘要: 一年的时光悄然而逝,又到了快发布ASP.NET MVC新版本的时候了。本文档涵盖了ASP.NET MVC 4框架的高级路线图。 我们正处于开发ASP.NET MVC 4的早期阶段,而这份路线图是下一版本的计划文档,清楚这一点是十分重要的。它并不是新特性的规范。我们希望能够实现这里列出的大多数或所有特性,但却无法保证。计划可能会发生变化,你也可以协助我们改变计划!请访问Uservoice网站来提交反馈,这样我们就能清楚地知道你希望新版本包含哪些内容。 阅读全文
posted @ 2011-11-24 13:27 麒麟.NET 阅读(16294) 评论(38) 推荐(16) 编辑
摘要: 前两天换了块硬盘重新做了系统,昨天在安装Visual Studio 2010 SP1的时候,被卡死在最后一步安装NDP40-KB2468871.exe补丁的这个阶段,大概有两个多小时,最后无耐只好回滚。 阅读全文
posted @ 2011-11-15 16:45 麒麟.NET 阅读(3436) 评论(2) 推荐(1) 编辑
摘要: Eric Lippert是微软C#编译器和C#语言设计小组的重要成员,他还经常出没于Stack Overflow社区,解答开发者提出的问题。其中被问到最多的问题是:能否推荐一些学习C#的好书。最近,在接受InformIT采访时也被问到了这个问题,于是Eric列出了一份C#书单。 阅读全文
posted @ 2011-11-14 13:48 麒麟.NET 阅读(6443) 评论(10) 推荐(10) 编辑
摘要: 对于一个动态类型来说,你可以认为它包含任意成员,它们都能通过编译。但到了运行时,到底是否拥有这些成员,就真相大白了。 阅读全文
posted @ 2011-03-14 11:14 麒麟.NET 阅读(3609) 评论(9) 推荐(3) 编辑
摘要: 在编写LINQ时,为了保持代码清晰,我们通常会将多个Where进行连接。但多个Where是否意味着多次迭代呢?直觉告诉我们显然不是。因为Where只是生成一个可迭代的对象,在对该对象进行foreach之前,是不会真正执行迭代的。但编译器是如何处理这种Where连接的呢? 阅读全文
posted @ 2011-03-03 10:09 麒麟.NET 阅读(1262) 评论(5) 推荐(0) 编辑
摘要: 大半年没写博了,一写就是年终总结。 阅读全文
posted @ 2010-12-30 10:31 麒麟.NET 阅读(946) 评论(8) 推荐(2) 编辑
摘要: 我们知道,博客园几年来标志性的人物老赵最近开通了个人博客,准备单飞。虽然前期老赵的博客都会在博客园首页放一个简介,截断全文并关闭评论,希望将博客园用户引流到个人博客,但还是有人看不下去了,路见不平拔刀相助了。其实正如老赵所说,他和dudu之间肯定不存在什么利用关系,但在外人特别是对博客园的历史不了解的人看来,老赵这么做多少有些不妥。 阅读全文
posted @ 2010-05-17 10:05 麒麟.NET 阅读(3548) 评论(94) 推荐(12) 编辑
摘要: 自己来写一个类似的插件,对所有格式的文本都能将它们放到到一个中。在Windows Live Writer安装目录下有一个名为WindowsLive.Writer.Api.dll的程序集,我们只要在类库项目中引用这个程序集,就可以进行插件开发了。 阅读全文
posted @ 2010-05-14 14:37 麒麟.NET 阅读(2458) 评论(7) 推荐(4) 编辑