祝女同胞们节日快乐

三八节,向包括我母亲大人在内的所有女同胞们道一声谢谢,没有你们就没有我们,没有我们就没有这世界…
没赶上班车,手机上来给大家讲个笑话,伢最喜欢听我讲笑话了,是不?
说:我去ATM存钱,排队的时候后面一美女问我是不是要存钱,我说是啊,她说“刚好我要取钱,我要取你要存,不如你直接把钱给我吧,这样咱俩都不用排队了”,我一想有道理哎,就把钱给她了。

自 WAP 发表

免费赠送图海VIP种子

收到了一封免费开通图海VIP的邮件,这个行动给我的第一印象就是,它在宣传,而且了解到近期图海正在大量发送VIP种子,很多个人博主应该都收到了吧。抱着试一试的心态注册了一个账号,小小编也如约为我开通了VIP,可以看出来他的回复邮件并不是群发,他们在用心的做这件事情,所以我也决定,我不要像其他所有人一样发一篇内容几乎一样的软文。

关于VIP用户和普通用户的区别我就不发了,只说我自己印象比较深的几处。

首先,这是一个在线相册,但是它是侧重于发布分享原创摄影作品的,所以打算用来当图床的还是免了,那不符合这个网站的风格。另外,它还支持压缩文件上传,邮件附件方式上传,一键上传等各种上传方式,这一点我认为做得非常不错,上传完毕后可以加上水印,支持外链。更多的特色还等你自己去发掘。

VIP种子一共3个,有需要的下面留言,我会发送给您。

2010-3-7 3个种子全部发送完毕。

最后,发几张秋天拍的向日葵,测试外链,看起来速度很不错。

腾讯微博今晚开放?

下午从围脖上看到消息,说今晚腾讯微博开放了,我还差点信以为真。

回来一看,只是t.qq.com换了个图片而已么,变成了今夜一亿人一起来。对啊,2010年3月5日19点52分58秒,qq在线用户突破一亿人,就这样而已啊,不知道是谁凭这么一句话就断定今晚微博开放?

这个消息几个小时内传得到处都是,我愣是没有看到任何腾讯微博要出现的迹象么。。。

不过也可见关注这个页面的人非常多,每天没事就守着刷啊!不就是个微博么,不就是能跟qq集成到一块儿么,激动个啥呀!

你们,不淡定的人,被利用了。腾讯微博的宣传效果达到了。

好吧,虽然我不怎么待见这家公司,可是它愣是学啥啥火,这玩意必定又得火一把了。不久的将来,我们桌上只有一台腾讯牌电脑,预装腾讯操作系统,全套腾讯软件,以后都跟企鹅过日子吧。

68条Java最佳实践

这里记录的实际上是《Practical Java》一书的目录,该书共总结了68条Java开发中的最佳实践(best practice)。我把这个目录敲到这里来也有助于自己加深印象,部分术语按照我自己的习惯做了调整。对Java有所了解的同学们看了这个目录大概也能知道它在说什么,毕竟这本书是在总结经验而非描述技术细节。这里面很多条也适用于大多数其它的面向对象语言。

一般技术

实践1:参数以 by value 方式而非 by reference 方式传递

实践2:对不变的 data 和 object reference 使用 final

实践3:默认情况下所有非静态方法都可被重载

实践4:在 arrays 和Vectors 之间慎重选择

实践5:多态优于 instanceof

实践6:必要时才使用 instanceof

实践7:一旦不再需要 object references,就将它设为 null

对象与相等性

实践8:区分 reference type 和 primitive type

实践9:区分 == 和 equals()

实践10:不要依赖 equals() 的缺省实现

实践11:实现 equals() 时必须深思熟虑

实践12:实现 equals() 时优先考虑使用 getClass()

实践13:调用 super.equals() 以唤起基类的相关行为

实践14:在 equals() 方法中谨慎使用 instanceof

实践15:实现 equals() 时需遵循某些规则

异常处理

实践16:认识“异常控制流”机制

实践17:绝对不可忽视异常

实践18:千万不要遮掩(hide)异常

实践19:明察 throws 子句的缺点

实践20:细致而全面地理解 throws 子句

实践21:使用 finallly 避免资源泄漏

实践22:不要从 try 块中返回

实践23:将 try / catch 块置于循环之外

实践24:不要将异常用于流程控制

实践25:不要每逢出错就使用异常

实践26:在构造函数中抛出异常

实践27:抛出异常之前先将对象恢复为有效状态

性能

实践28:先把焦点放在设计、数据结构和算法身上

实践29:不要依赖编译期优化技术

实践30:理解运行期代码优化技术

实践31:如欲进行字符串拼接,StringBuffer 优于 String

实践32:将对象的创建成本降至最小

实践33:慎防未用上的对象

实践34:将同步减至最低

实践35:尽可能使用 stack 变量

实践36:使用 static、final 和 private 方法以促成内联

实践37:instance 变量的初始化一次就好

实践38:使用基本类型(primitive types)使代码更快更小

实践39:不要使用 Enumeration 或 Iterator 来遍历 Vector

实践40:使用 System.arraycopy() 来复制 arrays

实践41:优先使用 array,然后才考虑 Vector 和 ArrayList

实践42:尽可能复用(reuse)对象

实践43:使用延迟求值(lazy evaluation)

实践44:以手工方式将代码优化

实践45:编译为本机代码(native code)

多线程

实践46:面对 instance 方法,synchronized 锁定的是对象而非方法或代码

实践47:弄清楚 synchronized statics 方法与 synchronized instance 方法之间的差异

实践48:以“private 数据 + 相应访问函数(accessor)” 替换 “public/protected数据”

实践49:避免无谓的同步控制

实践50:访问共享变量时请使用 synchronized 或 volatile

实践51:在单一操作中锁定所有用到的对象

实践52:以固定而全局性的顺序取得多个locks以避免死锁

实践53:优先使用 notifyAll() 而非 notify()

实践54:针对 wait() 和 notifyAll() 使用旋锁(spin locks)

实践55:使用 wait() 和 notifyAll() 替换轮询循环

实践56:不要对上锁对象的对象引用重新赋值

实践57:不要调用 stop() 或 suspend()

实践58:通过线程之间的协作来终止线程

类与接口

实践59:运用接口来实现多继承

实践60:避免接口中的方法发生冲突

实践61:如需提供部分实现,请似乎用抽象类

实践62:区分接口(interface)、抽象类(abstract class)和实体类(concrete class)

实践63:审慎地定义和实现不可变(immutable)类

实践64:欲传递或接受可变(mutable)对象的对象引用时,请实现 clone()

实践65:使用继承或委托来定义不可变类

实践66:实现 clone() 时记得调用 super.clone()

实践67:别只依赖于 finalize() 清理内存以外的资源

实践68:在构造函数内调用 non-final 方法时要当心

今天郑渊洁成了我的粉丝

正上班的时候,新浪微博MSN机器人通知我有一名新粉丝,我一看,乖乖哟,居然是郑渊洁老师。

我灰常的激动,我认识郑老师是因为那一套十二生肖通话,那时候一套书要60块,妈妈不肯给我买,我就天天缠着妈妈,我不要变形金刚,不要六神合体,也不要玩具水枪,我只是想看那一套童话,终于我拥有了这一套书。后来初中的时候借了几本给同学看,就再也没有拿回来过了,一度很难过。

郑老师的书应该说在我人生观价值观形成的时期对我起到了正面的影响,而且影响非常大。它不光是在讲故事,它在讲道理,教会你怎样思考,怎么做人。我想,一个人的成长只需要读几本正确的书,结交几个正确的朋友就足够了,他们足以把你引向正确的道路,我很庆幸,如今的我是一个有着独立思维的健康的社会人。

我的GR里面只订阅了2个名人博客,韩寒和郑渊洁。我的新浪微博里第一个名人是郑渊洁。

郑老师说,多少人是他的粉丝他就是多少人的粉丝,截至今天他有7万多名粉丝,每天只能加200个,要做到7万人的粉丝是一项巨大的工程,而且每天会被无数的信息淹没。但是我相信一个能坚持30年一个人写一本杂志的人一定能说到做到。一个能坚持做到这些事情的人,他的成功还需要理由么?

如果我能坚持把这个博客写下去,一直到我用不了电脑,打不了字的那一天,我也一定会是一个成功的人。