韩现龙的博客[本人在cnBlogs的博客镜像]

编程的孩子[为心找一个归宿]更多内容,请访问:http://www.cnblogs.com/hanxianlong

2009年06月03日

原创 基础知识提问:关于HashTable和List两个容器Add改变了属性的同一对象的问题

今天中午在北京博客园俱乐部中聊天时子秋同学的提问:     提问, 基础知识: 一个自定义类型t1, 一个集合list, list.add( t1 )后,  更改t1的属性name的值, 再list.add( t1 ). list中的两个值是否相等?此时list中是一个值还是两个值?脑袋兄马上给出了回答:    1.相等,2. 两个值且不说脑袋兄的答案是否正确,先摘录对话内容如下:子秋 说: 提问, 基础知识: 一个自定义类型t1, 一个集合list, list.add( t1 )后,  更改t1的属性name的值, 再list.add( t1 ). list中的两个值是否相等?子秋 说:此时list中是一个值还是两个值.Fan Shi(装配脑袋) 说:1.相等,2. 两个值子秋 说:脑袋基础真好.陈红卫 说:这个要看你ADD了两次还是一次。。。。。。[此后省略若干千字聊天记录]阅读全文>

发表于 @ 2009年06月03日 17:45:00|评论(loading...)|举报|收藏

2009年06月02日

原创 基础知识提问:关于HashTable和List两个容器Add改变了属性的同一对象的问题

今天中午在北京博客园俱乐部中聊天时子秋同学的提问:     提问, 基础知识: 一个自定义类型t1, 一个集合list, list.add( t1 )后,  更改t1的属性name的值, 再list.add( t1 ). list中的两个值是否相等?此时list中是一个值还是两个值?脑袋兄马上给出了回答:    1.相等,2. 两个值且不说脑袋兄的答案是否正确,先摘录对话内容如下:子秋 说: 提问, 基础知识: 一个自定义类型t1, 一个集合list, list.add( t1 )后,  更改t1的属性name的值, 再list.add( t1 ). list中的两个值是否相等?子秋 说:此时list中是一个值还是两个值.Fan Shi(装配脑袋) 说:1.相等,2. 两个值子秋 说:脑袋基础真好.陈红卫 说:这个要看你ADD了两次还是一次。。。。。。[此后省略若干千字聊天记录]阅读全文>

发表于 @ 2009年06月02日 16:24:00|评论(loading...)|举报|收藏

2009年02月27日

原创 再谈权限控制

 一个系统的权限控制严不严格,控制的合理不合理,从很大程序上决定了系统的稳定性程度与系统内部数据合法性程度。  我们今天不谈复杂的权限控制模型,仅就简单的权限控制做一些讨论。 一般网站的权限控制模型是这样的:一张菜单表,一张用户表,再来一张用户与菜单映射表。在用户登录后台时,通过用户-菜单映射表来查询出该用户所拥有的权限菜单并展示给用户,同时将该用户登录信息保存至Session中。在分角色的后台管理系统中,一般还会在上述权限模型的基础上再增加一个角色表,将菜单表与角色表关联起来,并根据这种关联方式实现其菜单可见性的控制。  那么再来看一下是如何判断用户是否合法的:  在ASP.NET 2.0 中,如果是使用Windows验证方式,那么在用户操作其他页面时,在页面Page_Onload之中去判断Session值是否为空,注意,仅仅是做了是否为空的判断。  在JSP之中,也可能是在页面init时进行Session值是否为空的判断。仅仅判断为空,会有什么安阅读全文>

发表于 @ 2009年02月27日 12:37:00|评论(loading...)|举报|收藏

2009年02月24日

原创 让程序更健壮,用错误还是抛异常?

很久没有在CSDN上活动过了,今日偶然有一小心得,便拿出与大家分享。记得很久以前,以以C#为主要工作内容时,曾经和同事们以及在cnBlogs中不下数次讨论关于如何用好异常处理的问题,当时得到的结论是:异常处理在程序正常运行时并不会在效率上有太大的影响,仅仅在程序抛出并捕获了异常时效率上才会显得有那么一点点的影响。今天我们不谈效率,仅就该如何提高程序的健壮性做一点讨论。依照以前的经验,异常处理应该遵守如下规则:1.在UI层捕获异常,并忽略可以忽略的异常,不可忽略的异常应该做出相应的处理,并将它程序给用户2.在BL层尽量不处理异常,如果非要处理,那么请保证该异常不会影响到系统正常的运行3.能够使用自定义异常的部分,请使用自定义异常,否则请一定要catch(Exception)如果遵照以上三个规则,并且很好的对产生的异常进行处理,那么我们的程序便会很大程度上提高其健壮性。如果你所使用的框架中为了提高程序的健壮性,使用阅读全文>

发表于 @ 2009年02月24日 12:36:00|评论(loading...)|举报|收藏

2009年01月15日

原创 Java:重写equals()和hashCode()

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhangjunhd.blog.51cto.com/113473/71571以下内容总结自《Effective Java》。1.何时需要重写equals()当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念)。2.设计equals()[1]使用instanceof操作符检查“实参是否为正确的类型”。[2]对于类中的每一个“关键域”,检查实参中的域与当前对象中对应的域值。[2.1]对于非float和double类型的原语类型域,使用==比较;[2.2]对于对象引用域,递归调用equals方法;[2.3]对于float域,使用Float.floatToIntBits(afloat)转换为int,再使用==比较;[2.4]对于double域,使用Double.doubleToLongBits(adouble)转换为int,再使用==比较;[2.5]对于数组域,调用Arrays.equals方法。3.当改写equals()的时候,总是要改写hashCode()阅读全文>

发表于 @ 2009年01月15日 11:48:00|评论(loading...)|举报|收藏

2008年12月23日

原创 NetBean6.5发布了!

NetBeans IDE 6.5 Release InformationThe NetBeans IDE is an award-winning Integrated Development Environment available for Windows, Mac, Linux, and Solaris. The NetBeans project consists of an open-source IDE and an application platform which enable developers to rapidly create web, enterprise, desktop, and mobile applications using the Java platform, as well as PHP, JavaScript and Ajax, Ruby and Ruby on Rails, Groovy, and C/C++. It is supported by a vibrant developer community and offers a阅读全文>

发表于 @ 2008年12月23日 17:02:00|评论(loading...)|举报|收藏

2008年12月08日

原创 小屋·小篮子·祭

我看到那座孤零零的小屋中你沉睡着 --就让我称呼您为“你”吧,不称呼您,因为,我和您在一起时也是称呼您为“你”的…… 我看到  那个饿得哇哇大哭的孩子在撕扯着你的头发--那个孩子,是我 夕阳下蹒跚的身影迈着小小的步伐一点一点,向前走去 --终于,到了我看不见的尽头 我又摸到了那个小篮子 伸手进去,是一些零碎但清晰的记忆每次的亲昵都给我带来你带着体温的爱意 我在遥远的地方读完了书大学要毕业了,于是想起以前我许给你的美好愿望就到他们城里人都叫做“超市”的市场中想再给你带去一些我的爱可是——可是我却无法再找到         找到那曾经的小篮子和          曾经的你 生时 受尽苦难的你就好好的  享受那独属于你的清静 ………………………… --纪念姥姥一周年阅读全文>

发表于 @ 2008年12月08日 13:19:00|评论(loading...)|举报|收藏

2008年11月25日

原创 硬盘出现坏道的征兆与修复办法[转]


转自:http://topic.csdn.net/u/20081118/18/84080B31-CE0B-4A2C-9B39-B22CFEA9D2E9.html
硬盘出现坏道的征兆

  硬盘坏道分为逻辑坏道和物理坏道两种,前者为软坏道,通常为软件操作或使用不当造成的,可用软件修复;后者为真正的物理性坏道,它表明你的硬盘磁道上产生了物理损伤,只能通过更改硬盘分区或扇区的使用情况来解决。出现下列情况也许你的硬盘有坏道了:

  首先,你在打开、运行或拷贝某个文件时硬盘出现操作速度变慢,且有可能长时间操作还不成功或表现为长时间死“啃”某一区域或同时出现硬盘读盘异响,或干脆Windows系统提示“无法读取或写入该文件”,这些都可表明你的硬盘某部分出现了坏道。

  其次,每次开机时,Scandisk磁盘程序自动运行,肯定表明你的硬盘上有需要修复的重要错误,比如坏道。你在运行该程序时如不能顺利通过,表明硬盘肯定有坏道。当然,扫描虽然也可通过,但出现红色的“B”标记,表明其也有坏道。

阅读全文>

发表于 @ 2008年11月25日 12:48:00|评论(loading...)|举报|收藏

2008年11月21日

原创 Oracle大批量数据导入,如何更快?[皱老大看到的话过来帮帮忙]

环境: oracle 9i
表rate中有4个字段:PayEndYear,InsureYear,AppYear,Amount
现在有一个大小为4.34MB的SQL文件,其中为大约2W条如下的插入语句:
insert into rate(PayEndYear,InsureYear,AppYear,Amount) values(1,2,2,300.00);
insert into rate(PayEndYear,InsureYear,AppYear,Amount) values(1,2,3,300.00);
insert into rate(PayEndYear,InsureYear,AppYear,Amount) values(1,3,2,300.00);
...
insert into rate(PayEndYear,InsureYear,AppYear,Amount) values(20,500,2,1000.00);
commit;

复制该文件文件内容到剪贴版中,阅读全文>

发表于 @ 2008年11月21日 17:25:00|评论(loading...)|举报|收藏

2008年11月19日

原创 Oracle对数据类型控制


Select TO_CHAR(0.9,'FM9999999999990.00') FROM DUAL;  结果为0.90

Select TO_CHAR(0.9,'FM9999999999999.00') FROM DUAL;结果为.90

前一种处理方式才应该是我们想要的,
注:FM为起到去掉前导空格的作用

以下是Oracle的“数据格式说明文档”:

PostgreSQL 格式化函数提供一套有效的工具用于把各种数据类型 (日期/时间,integer,floating point,numeric) 转换成格式化的字符串以及反过来从格式化的字符串转换成 指定的数据类型。 Table 9-20 列出了这些函数。 这些函数都遵循一个公共的调用习惯: 第一个参数是待格式化的值,而第二个是一个定义输出或输出格式的模板。
to_timestamp 函数也能接受一个 double precision 参数, 把它从 Unix 纪元转换成 timestamp with time 阅读全文>

发表于 @ 2008年11月19日 17:38:00|评论(loading...)|举报|收藏

2008年11月17日

原创 IEEE754标准规定的五种四舍五入方法

先看下如下Java代码:double dTest=82.545d;      DecimalFormat format=new DecimalFormat("0.00");      System.out.println(format.format(dTest));你觉得会输出什么?82.55?还是82.54?再试下这段代码:double dTest=82.535d;      DecimalFormat format=new DecimalFormat("0.00");      System.out.println(format.format(dTest));你觉得会输出什么?82.53?还是82.54?先别猜,自己运行下……或者有人认为这是DecimalFormat的一个BUG?不是的,这其实是IEEE754标准规定的一种“to even”的四舍五入的方法,即:该方法阅读全文>

发表于 @ 2008年11月17日 16:51:00|评论(loading...)|举报|收藏

2008年11月13日

转载 MySpace的六次重构

在每个里程碑,站点负担都会超过底层系统部分组件的最大载荷 ,特别是数据库和存储系统。接着,功能出现问题,用户失声尖叫。最后,技术团队必须为此修订系统策略。
虽然自2005年早期,站点账户数超过7百万后,系统架构到目前为止保持了相对稳定,但MySpace仍然在为SQL Server支持的同时连接数等方面继续攻坚,Benedetto说,"我们已经尽可能把事情做到最好"。

 里程碑一:50万账户
按Benedetto 的说法,MySpace最初的系统很小,只有两台Web服务器和一个数据库服务器。那时使用的是Dell双CPU、4G内存的系统。
单个数据库就意味着所有数据都存储在一个地方,再由两台Web服务器分担处理用户请求的工作量。但就像MySpace后来的几次底层系统修订时的情况一样,三服务器架构很快不堪重负。此后一个时期内,MySpace基本是通过添置更多Web服务器来对付用户暴增问题的。
但到在2004年早期,MySpace用户数增长到50万后,数据库服务器也已开始汗流浃背。
阅读全文>

发表于 @ 2008年11月13日 11:07:00|评论(loading...)|举报|收藏

2008年11月12日

原创 VBA 获取本周周一所在日期及周五所在日期




'获取本周一所在日期
Function FirstDayOfWeek() As String
     FirstDayOfWeek = DateAdd("d", -(Weekday(Date) - 2), Date)
End Function


'获取本周五所在日期
Function LastDayOfWeek() As String
    LastDayOfWeek = DateAdd("d", 6 - Weekday(Date), Date)
End Function
阅读全文>

发表于 @ 2008年11月12日 08:17:00|评论(loading...)|举报|收藏

2008年09月17日

原创 写给还在大学的兄弟姐妹


看到软件专业毕业生之一个月攻略 这篇文章之后,忽然想起了自己两个多月前找工作时的写的一篇文章,便拿出来与大家分享。
这仅是个人的一些看法,不正确之处还请各位指出,有砖尽管拍。

基础很重要

许多企业招聘,要求大学本科毕业生有一定的工作经验。而现实是,当阅读全文>

发表于 @ 2008年09月17日 17:30:00|评论(loading...)|举报|收藏

2008年07月26日

原创 让你的MyEclipse像Visual Studio 2008一样拥有强大功能智能感知功能

下载压缩包,解压出myeclipse6_5_intelligense.epf文件,在MyEclipse中选择File→Import→Preferences→next→选刚解压出来的myeclipse6_5_intelligense.epf文件→Finish。然后再在.java文件中编辑时就会能够像VisualStudio2008一样强大的智能感知功能了。阅读全文>

发表于 @ 2008年07月26日 19:42:00|评论(loading...)|举报|收藏

Csdn Blog version 3.1a
Copyright © 韩现龙