分类目录 ‘Java’

前言:最近使用到了他人总结的一个基础类库。查看了下源码,发现String帮助类的一个辅助方法不是很严谨,重构之。

1、原来程序的写法

      public static string GetDomainName(string url)
        {
             reg = new (@"http(s)?://([\w-]+\.)+[\w-]+/?");
            string result = reg.Match(url, 0).Value;
            if (result.IndexOf("http://") > -1)
            {
                result = result.Replace("http://", string.Empty);
            }
            else if (result.IndexOf("https://") > -1)
            {
                result = result.Replace("https://", string.Empty);
            }
            return result.Replace("/", string.Empty);
        }

(全文 …)

相信MongoDB的名头不少人 已经听说过了,虽然已有针对它的Java驱动,但我敢打保票,只要你用过一次,很快就会怀念使用GORM的好时光。拜Grails的插件架构所赐,对于Grails项目来说,这不再是幻想。目前在Grails社区至少已经有两个针对MongoDB的插件:MongoDB ToolsGrails MongoDB plugin,我们该选择哪一个呢?

在查看了两个插件的信息后,我坚定地选择了后者:Grails MongoDB plugin。 原因无它:完全保留了GORM的使用习惯,而且特性几乎一样:

  • 实例方法:save、delete
  • 类方法:get、find、findAll、delete、deleteAll、exists、count、list
  • 诸如findAllByNameAndDegreeBetween(…)这样的动态查找器
  • 支持约束和验证
  • 支持自动时辍:dateCreated和lastUpdated
  • Gorm事件:beforeSave、afterSave、beforeDelete、afterDelete(还有Morphia支持的 afterLoad)
  • 支持MongoDB 1.4和1.5
  • 提供了注入所有必需字段和Morphia注解的AST Transformations
  • 支持延迟引用
  • 支持generate-all

(全文 …)

Java编程三十条规则

作者: seasun

(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字 母。例如:

ThisIsAClassName
thisIsMethodOrFieldName

若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。
Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu 等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。
(全文 …)

Java程序员十戒

作者: seasun

Java程序员有许多应遵循的守则或最佳实践方式。本文概述了每个开发者最应该遵循的10条守则或戒律,如果不遵循它们,将会导致灾难性后果。
(全文 …)

在开始研究 CMS之前,我们先要了解什么是CMS。 — Content Management Systems,内容管理系统,简单的说,就是一个帮助进行网站内容管理的系统。CMS通常包含两部分:内容管理程序(Content Management Application ,CMA)和内容发布程序(Content Delivery Application ,CDA),内容管理程序可以帮助网站管理员轻松的实现网站文章的创建、编辑和删除操作,内容发布程序则可以编辑文章并在网站上发布它们。

(全文 …)

Java正则表达式学习:
因为正则表达式是一个很庞杂的体系,此例仅举些入门的概念,更多的请参阅相关书籍及自行摸索。

\\ 反斜杠
\t 间隔 (‘\u0009′)
\n 换行 (‘\u000A’)
\r 回车 (‘\u000D’)
\d 数字 等价于[0-9]
\D 非数字 等价于[^0-9]
\s 空白符号 [\t\n\x0B\f\r]
\S 非空白符号 [^\t\n\x0B\f\r]
\w 单独字符 [a-zA-Z_0-9]
\W 非单独字符 [^a-zA-Z_0-9]
\f 换页符
(全文 …)

1 单例模式的日常应用

我们在浏览BBS、SNS网站的时候,常常会看到“当前在线人数”这样的一项内容。对于

这样的一项功能,我们通常的做法是把当前的在线人数存放到一个内存、文件或者数据库中,每次用户登录的时候,就会马上从内存、文件或者数据库中取出,在其基础上加1后,作为当前的在线人数进行显示,然后再把它保存回内存、文件或者数据库里,这样后续登录的用户看到的就是更新后的当前在线人数;同样的道理,当用户退出后,当前在线人数进行减1的工作。所以,对于这样的一个需求,我们按照面向对象的设计思想,可以把它抽象为“在线计数器”这样一个对象,具体实现如下:

(全文 …)