<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>代码围城</title>
	<atom:link href="http://www.liruobing.cn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.liruobing.cn</link>
	<description>每天进步一点点</description>
	<lastBuildDate>Mon, 16 Apr 2012 01:39:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MyEclipse快捷键</title>
		<link>http://www.liruobing.cn/code-life/myeclipse-shortcut-key.html</link>
		<comments>http://www.liruobing.cn/code-life/myeclipse-shortcut-key.html#comments</comments>
		<pubDate>Mon, 16 Apr 2012 01:39:36 +0000</pubDate>
		<dc:creator>robin</dc:creator>
				<category><![CDATA[Code人生]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.liruobing.cn/?p=550</guid>
		<description><![CDATA[Ctrl+1 快速修复(最经典的快捷键),当代码中出现红叉时使用 Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+↓ 当前行和下面一行交换位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑ 当前行和上面一行交换位置 &#160; Alt+← 前一个编辑的页面 Alt+→ 下一个编辑的页面(当然是针对上面那条来说了) Alt+Enter 显示当前选择资源(工程,文件)的属性 Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后) Shift+Ctrl+Enter 在当前行插入空行(原理同上条) Ctrl+Q 定位到最后编辑的地方 Ctrl+L 定位在某行 (对于程序超过100的人就有福音了) Ctrl+M 最大化当前的Edit或View (再按则反之) Ctrl+/ 注释当前行,再按则取消注释 Ctrl+O 快速显示 OutLine Ctrl+T 快速显示当前类的继承结构 Ctrl+W 关闭当前Editer &#8230; <a href="http://www.liruobing.cn/code-life/myeclipse-shortcut-key.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://www.liruobing.cn/code-life/myeclipse-shortcut-key.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>针对 Node.js 初学者的入门资源汇总</title>
		<link>http://www.liruobing.cn/code-life/node-js-study.html</link>
		<comments>http://www.liruobing.cn/code-life/node-js-study.html#comments</comments>
		<pubDate>Tue, 10 Apr 2012 02:51:09 +0000</pubDate>
		<dc:creator>robin</dc:creator>
				<category><![CDATA[Code人生]]></category>
		<category><![CDATA[Node.js]]></category>

		<guid isPermaLink="false">http://www.liruobing.cn/?p=548</guid>
		<description><![CDATA[Node.js 官方网站和 WIKI 中提供了非常不错的资源，初学者可以从这里开始。另外，借助第三方社区、博客、书籍，可以加快学习的进度。 教程： Node.js guide Node tuts NodeCloud 视频： Introduction to Node.js with RyanDahl Node.js: Asynchronous Purity Leadsto Faster Development ParallelProgramming with Node.js Server-sideJavaScript with Node, Connect &#38; Express Node.jsCamp 书籍： The NodeBeginner Book Mastering Node.js Up and Running withNode.js &#8230; <a href="http://www.liruobing.cn/code-life/node-js-study.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://www.liruobing.cn/code-life/node-js-study.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>localhost 与 127.0.0.1 的区别</title>
		<link>http://www.liruobing.cn/code-life/localhost-and-127-0-0-1.html</link>
		<comments>http://www.liruobing.cn/code-life/localhost-and-127-0-0-1.html#comments</comments>
		<pubDate>Sat, 07 Apr 2012 08:01:41 +0000</pubDate>
		<dc:creator>robin</dc:creator>
				<category><![CDATA[Code人生]]></category>

		<guid isPermaLink="false">http://www.liruobing.cn/?p=544</guid>
		<description><![CDATA[localhost与127.0.0.1的区别是什么？相信有人会说是本地ip，曾有人说，用127.0.0.1比localhost好，可以减少一次解析。看来这个入门问题还有人不清楚，其实这两者是有区别的。 1、 localhost也叫local ，正确的解释是:本地服务器 127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器) 他们的解析通过本机的host文件，windows自动将localhost解析为127.0.0.1 2、 localhot(local)是不经网卡传输！这点很重要，它不受网络防火墙和网卡相关的的限制。 127.0.0.1是通过网卡传输，依赖网卡，并受到网络防火墙和网卡相关的限制。 本机IP 也是通过网卡传输的，依赖网卡，并受到网络防火墙和网卡相关的限制。 但是本机IP与127.0.0.1的区别是： 127.0.0.1 只能通过本机访问 本机IP 通过本机访问也能通过外部访问 一般设置程序时本地服务用localhost是最好的，localhost不会解析成ip，也不会占用网卡、网络资源。 有时候用localhost可以，但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时，系统带的本机当前用户的权限去访问，而用ip的时候，等于本机是通过网络再去访问本机，用的到网络用户的权限。]]></description>
		<wfw:commentRss>http://www.liruobing.cn/code-life/localhost-and-127-0-0-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]教你如何迅速秒杀掉：99%的海量数据处理面试题</title>
		<link>http://www.liruobing.cn/code-life/large-data-interview.html</link>
		<comments>http://www.liruobing.cn/code-life/large-data-interview.html#comments</comments>
		<pubDate>Wed, 28 Mar 2012 01:31:17 +0000</pubDate>
		<dc:creator>robin</dc:creator>
				<category><![CDATA[Code人生]]></category>

		<guid isPermaLink="false">http://www.liruobing.cn/?p=540</guid>
		<description><![CDATA[作者：July 出处：结构之法算法之道blog 前言 一般而言，标题含有“秒杀”，“99%”，“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌，但进一步来讲，如果读者读罢此文，却无任何收获，那么，我也甘愿背负这样的罪名，:-)，同时，此文可以看做是对这篇文章：十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限，本文将摒弃绝大部分的细节，只谈方法/模式论，且注重用最通俗最直白的语言阐述相关问题。最后，有一点必须强调的是，全文行文是基于面试题的分析基础之上的，具体实践过程中，还是得具体情况具体分析，且场景也远比本文所述的任何一种情况复杂得多。 OK，若有任何问题，欢迎随时不吝赐教。谢谢。 何谓海量数据处理？ 所谓海量数据处理，无非就是基于海量数据上的存储、处理、操作。何谓海量，就是数据量太大，所以导致要么是无法在较短时间内迅速解决，要么是数据太大，导致无法一次性装入内存。 那解决办法呢?针对时间，我们可以采用巧妙的算法搭配合适的数据结构，如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie树，针对空间，无非就一个办法：大而化小：分而治之/hash映射，你不是说规模太大嘛，那简单啊，就把规模大化为规模小的，各个击破不就完了嘛。 至于所谓的单机及集群问题，通俗点来讲，单机就是处理装载数据的机器有限(只要考虑cpu，内存，硬盘的数据交互)，而集群，机器有多辆，适合分布式处理，并行计算(更多考虑节点和节点间的数据交互)。 再者，通过本blog内的有关海量数据处理的文章：Big Data Processing，我们已经大致知道，处理海量数据问题，无非就是： &#160; 分而治之/hash映射 + hash统计 + 堆/快速/归并排序； 双层桶划分 Bloom filter/Bitmap； Trie树/数据库/倒排索引； 外排序； 分布式处理之Hadoop/Mapreduce。 下面，本文第一部分、从set/map谈到hashtable/hash_map/hash_set，简要介绍下set/map/multiset/multimap，及hash_set/hash_map/hash_multiset/hash_multimap之区别(万丈高楼平地起，基础最重要)，而本文第二部分，则针对上述那6种方法模式结合对应的海量数据处理面试题分别具体阐述。 &#160; 第一部分、从set/map谈到hashtable/hash_map/hash_set 稍后本文第二部分中将多次提到hash_map/hash_set，下面稍稍介绍下这些容器，以作为基础准备。一般来说，STL容器分两种， 序列式容器(vector/list/deque/stack/queue/heap)， 关联式容器。关联式容器又分为set(集合)和map(映射表)两大类，以及这两大类的衍生体multiset(多键集合)和multimap(多键映射表)，这些容器均以RB-tree完成。此外，还有第3类关联式容器，如hashtable(散列表)，以及以hashtable为底层机制完成的hash_set(散列集合)/hash_map(散列映射表)/hash_multiset(散列多键集合)/hash_multimap(散列多键映射表)。也就是说，set/map/multiset/multimap都内含一个RB-tree，而hash_set/hash_map/hash_multiset/hash_multimap都内含一个hashtable。 所谓关联式容器，类似关联式数据库，每笔数据或每个元素都有一个键值(key)和一个实值(value)。当元素被插入到关联式容器中时，容器内部结构(RB-tree/hashtable)便依照其键值大小，以某种特定规则将这个元素放置于适当位置。 &#160; set/map/multiset/multimap set，同map一样，所有元素都会根据元素的键值自动被排序，因为set/map两者的所有各种操作，都只是转而调用RB-tree的操作行为，不过，值得注意的是，两者都不允许两个元素有相同的键值。 不同的是：set的元素不像map那样可以同时拥有实值(value)和键值(key)，set元素的键值就是实值，实值就是键值，而map的所有元素都是pair，同时拥有实值(value)和键值(key)，pair的第一个元素被视为键值，第二个元素被视为实值。 至于multiset/multimap，他们的特性及用法和set/map完全相同，唯一的差别就在于它们允许键值重复，即所有的插入操作基于RB-tree的insert_equal()而非insert_unique()。 hash_set/hash_map/hash_multiset/hash_multimap hash_set/hash_map，两者的一切操作都是基于hashtable之上。不同的是，hash_set同set一样，同时拥有实值和键值，且实质就是键值，键值就是实值，而hash_map同map一样，每一个元素同时拥有一个实值(value)和一个键值(key)，所以其使用方式，和上面的map基本相同。但由于hash_set/hash_map都是基于hashtable之上，所以不具备自动排序功能。为什么?因为hashtable没有自动排序功能。 &#8230; <a href="http://www.liruobing.cn/code-life/large-data-interview.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://www.liruobing.cn/code-life/large-data-interview.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git/Github使用方法小记</title>
		<link>http://www.liruobing.cn/soft/gitgithub-use.html</link>
		<comments>http://www.liruobing.cn/soft/gitgithub-use.html#comments</comments>
		<pubDate>Fri, 16 Mar 2012 02:44:48 +0000</pubDate>
		<dc:creator>robin</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.liruobing.cn/?p=536</guid>
		<description><![CDATA[1、下载安装桌面端git。 Windows请至：http://code.google.com/p/msysgit/ 安装的时候最好还是允许在shell嵌入git的命令，相对还是比较方便的。 2、git的初始设置 1 2 git config --global user.name "Your Real Name" git config --global user.email you@email.address 3、建立仓库 在git bash里找到你的项目目录。（或直接用shell右键里的git bash here） 1 git init 这样在你的项目目录下就会有一个.git的隐藏目录（类似于.svn） 。 4、初始化项目 1 git add . 留心后面的一个 “.”  ， 这是添加所有文件的情况，如果愿意，你也可以添加特定的几个文件，比如git add readme.txt等等。 之后就可以做我们的first &#8230; <a href="http://www.liruobing.cn/soft/gitgithub-use.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://www.liruobing.cn/soft/gitgithub-use.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>盛大网络正式退出纳斯达克</title>
		<link>http://www.liruobing.cn/itworld/snda-quid-nasdaq.html</link>
		<comments>http://www.liruobing.cn/itworld/snda-quid-nasdaq.html#comments</comments>
		<pubDate>Thu, 16 Feb 2012 00:56:39 +0000</pubDate>
		<dc:creator>robin</dc:creator>
				<category><![CDATA[IT业界]]></category>
		<category><![CDATA[互联网]]></category>

		<guid isPermaLink="false">http://www.liruobing.cn/?p=533</guid>
		<description><![CDATA[盛大网络昨天宣布，已经完成了此前宣布的，日期标注为2011年11月22日的合并协议及计划所筹划的合并交易，盛大多数股东已经批准陈天桥23亿美元的全额收购要约。同时，公司将从2012年2月15日开始停止在纳斯达克交易。这意味着，盛大网络已经成功实现私有化，目前只待各方尽快地完成收购要约。 交易完成后，盛大网络将成为PremiumLeadCompanyLimited的全资子公司。Premium是一家注册于英属维京群岛的商业公司，其联合 所有人包括盛大网络董事长、CEO兼总裁陈天桥、陈天桥的妻子，盛大网络非执行董事雒芊芊以及陈天桥的弟弟，盛大网络COO(首席运营官)兼董事陈大年。 昨天，盛大网络召开特别股东大会，批准了上述合并协议。根据协议，在合并交易生效以前发售和流通的盛大网络普通股和美国存托凭证(每股美国存托凭证代表两股普通股)，均已被取消每股普通股20.675美元现金，或每股美国存托凭证41.35美元现金的收益权。 文：开源中国社区]]></description>
		<wfw:commentRss>http://www.liruobing.cn/itworld/snda-quid-nasdaq.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Annotation 高级应用</title>
		<link>http://www.liruobing.cn/code-life/java-annotation-advance.html</link>
		<comments>http://www.liruobing.cn/code-life/java-annotation-advance.html#comments</comments>
		<pubDate>Fri, 30 Dec 2011 02:30:05 +0000</pubDate>
		<dc:creator>robin</dc:creator>
				<category><![CDATA[Code人生]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.liruobing.cn/?p=526</guid>
		<description><![CDATA[前言： 前不久在matrix上先后发表了《java annotation 入门》、《java annotation 手册》两篇文章，比较全面的对java annotation的语法、原理、使用三方面进行了阐述。由于《入门》中的简单例程虽然简单明了的说明了annotation用法，但给大家的感觉可能是意犹未见，所以在此行文《java annotation高级应用》，具体实例化解释annotation和annotation processing tool（APT）的使用。望能对各位的有所帮助。 一、摘要： 《java annotation高级应用》具体实例化解释annotation和annotation processing tool（APT）的使用。望能对各位的有所帮助。本文列举了用于演示annotation的BRFW演示框架、演示APT的apt代码实例，并对其进行较为深度的分析，希望大家多多提意见。 二、annotation实例分析 1．BRFW（Beaninfo Runtime FrameWork）定义： 本人编写的一个annotation功能演示框架。顾名思义，BRFW就是在运行时取得bean信息的框架。 2．BRFW的功能： A．源代码级annotation：在bean的源代码中使用annotation定义bean的信息； B．运行时获取bean数据：在运行时分析bean class中的annotation，并将当前bean class中field信息取出，功能类似xdoclet； C．运行时bean数据的xml绑定：将获得的bean数据构造为xml文件格式展现。熟悉j2ee的朋友知道，这个功能类似jaxb。 3．BRFW框架： BRFW主要包含以下几个类： A．Persistent类：定义了用于修饰类的固有类型成员变量的annotation。 B．Exportable类：定义了用于修饰Class的类型的annotation。 C．ExportToXml类：核心类，用于完成BRFW的主要功能：将具有Exportable Annotation的bean对象转换为xml格式文本。 D．AddressForTest类：被A和B修饰过的用于测试目的的地址bean类。其中包含了地址定义所必需的信息：国家、省级、城市、街道、门牌等。 E．AddressListForTest类：被A和B修饰过的友人通讯录bean类。其中包含了通讯录所必备的信息：友人姓名、年龄、电话、住址（成员为AddressForTest类型的ArrayList）、备注。需要说明的是电话这个bean成员变量是由字符串类型组成的ArrayList类型。由于朋友的住址可能不唯一，故这里的住址为由AddressForTest类型组成的ArrayList。 从上面的列表中，可以发现A、B用于修饰bean类和其类成员；C主要用于取出bean类的数据并将其作xml绑定，代码中使用了E作为测试类；E中可能包含着多个D。 在了解了这个简单框架后，我们来看一下BRFW的代码吧！ 4．BRFW源代码分析： A．Persistent类： 清单1： package &#8230; <a href="http://www.liruobing.cn/code-life/java-annotation-advance.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://www.liruobing.cn/code-life/java-annotation-advance.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Annotation手册</title>
		<link>http://www.liruobing.cn/code-life/java-annotation-manual.html</link>
		<comments>http://www.liruobing.cn/code-life/java-annotation-manual.html#comments</comments>
		<pubDate>Fri, 30 Dec 2011 02:27:59 +0000</pubDate>
		<dc:creator>robin</dc:creator>
				<category><![CDATA[Code人生]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.liruobing.cn/?p=524</guid>
		<description><![CDATA[前言： 在上篇文章《Java Annotation入门》中概要性的介绍了Annotation的定义、使用，范围涵盖较广，但是深度不够。所以作者在《Java Annotation入门》后，继续整理了Annotation的概念和知识点，与喜欢research的朋友们共享。 阅读提示：文中提到的程序成员或者程序元素是一个概念，指组成程序代码的单元：如类、方法、成员变量。 一、Annotation究竟是什么？ Annotation 提供了一条与程序元素关联任何信息或者任何元数据（metadata）的途径。从某些方面看，annotation就像修饰符一样被使用，并应用于包、类 型、构造方法、方法、成员变量、参数、本地变量的声明中。这些信息被存储在annotation的“name=value”结构对中。 annotation类型是一种接口，能够通过java反射API的方式提供对其信息的访问。 annotation能被用来为某个程序元 素（类、方法、成员变量等）关联任何的信息。需要注意的是，这里存在着一个基本的潜规则：annotaion不能影响程序代码的执行，无论增加、删除 annotation，代码都始终如一的执行。另外，尽管一些annotation通过java的反射api方法在运行时被访问，而java语言解释器在 工作时忽略了这些annotation。正是由于java虚拟机忽略了annotation，导致了annotation类型在代码中是“不起作用”的； 只有通过某种配套的工具才会对annotation类型中的信息进行访问和处理。本文中将涵盖标准的annotation和meta- annotation类型，陪伴这些annotation类型的工具是java编译器（当然要以某种特殊的方式处理它们）。 由于上述原 因，annotation在使用时十分简便。一个本地变量可以被一个以NonNull命名的annotation类型所标注，来作为对这个本地变量不能被 赋予null值的断言。而我们可以编写与之配套的一个annotation代码分析工具，使用它来对具有前面变量的代码进行解析，并且尝试验证这个断言。 当然这些代码并不必自己编写。在JDK安装后，在JDK/bin目录中可以找到名为“apt”的工具，它提供了处理annotation的框架：它启动后 扫描源代码中的annotation，并调用我们定义好的annotation处理器完成我们所要完成的工作（比如验证前面例子中的断言）。说到这里， annotation的强大功能似乎可以替代XDoclet这类的工具了，随着我们的深入，大家会更加坚信这一点。 注：详细描述请参看jsr250规范： http://www.jcp.org/aboutJava/communityprocess/pfd/jsr250/ 二、Annotation的定义： 这 段文字开始介绍annotation相关技术。在此大家将看到java5.0的标准annotation类型，这种标准类型就是前文中所说的“内建”类 型，它们可以直接被javac支持。可喜的是，在java6.0beta版中的javac已经加入了对自定义annotation的支持。 1。Annotation的概念和语法： 首先，关键的概念是理解annotation是与一个程序元素相关联信息或者元数据的标注。它从不影响java程序的执行，但是对例如编译器警告或者像文档生成器等辅助工具产生影响。 下面是常用的annotation列表，我们应该注意在annotation和annotation类型之间的不同： A.annotation： annotation 使用了在java5.0所带来的新语法，它的行为十分类似public、final这样的修饰符。每个annotation具有一个名字和成员个数 &#62;=0。每个annotation的成员具有被称为name=value对的名字和值（就像javabean一样），name=value装载了 annotation的信息。 B.annotation类型： annotation 类型定义了annotation的名字、类型、成员默认值。一个annotation类型可以说是一个特殊的java接口，它的成员变量是受限制的，而声 明annotation类型时需要使用新语法。当我们通过java反射api访问annotation时，返回值将是一个实现了该annotation类 &#8230; <a href="http://www.liruobing.cn/code-life/java-annotation-manual.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://www.liruobing.cn/code-life/java-annotation-manual.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Annotation入门</title>
		<link>http://www.liruobing.cn/code-life/java-annotation-base.html</link>
		<comments>http://www.liruobing.cn/code-life/java-annotation-base.html#comments</comments>
		<pubDate>Fri, 30 Dec 2011 02:23:25 +0000</pubDate>
		<dc:creator>robin</dc:creator>
				<category><![CDATA[Code人生]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.liruobing.cn/?p=521</guid>
		<description><![CDATA[摘要： 本 文针对java初学者或者annotation初次使用者全面地说明了annotation的使用方法、定义方式、分类。初学者可以通过以上的说明制作简 单的annotation程序，但是对于一些高级的annotation应用（例如使用自定义annotation生成javabean映射xml文件） 还需要进一步的研究和探讨。涉及到深入annotation的内容，作者将在后文《Java Annotation高级应用》中谈到。 同时，annotation运行存在两种方式：运行时、编译时。上文中讨论的都是在运行时的annotation应用，但在编译时的annotation应用还没有涉及， 一、为什么使用Annotation： 在JAVA应用中，我们常遇到一些需要使用模版代码。例如，为了编写一个JAX-RPC web service，我们必须提供一对接口和实现作为模版代码。如果使用annotation对远程访问的方法代码进行修饰的话，这个模版就能够使用工具自动生成。 另 外，一些API需要使用与程序代码同时维护的附属文件。例如，JavaBeans需要一个BeanInfo Class与一个Bean同时使用/维护，而EJB则同样需要一个部署描述符。此时在程序中使用annotation来维护这些附属文件的信息将十分便利 而且减少了错误。 二、Annotation工作方式： 在5.0 版之前的Java平台已经具有了一些ad hoc annotation机制。比如，使用transient修饰符来标识一个成员变量在序列化子系统中应被忽略。而@deprecated这个 javadoc tag也是一个ad hoc annotation用来说明一个方法已过时。从Java5.0版发布以来，5.0平台提供了一个正式的annotation功能：允许开发者定义、使用 自己的annoatation类型。此功能由一个定义annotation类型的语法和一个描述annotation声明的语法，读取annotaion 的API，一个使用annotation修饰的class文件，一个annotation处理工具（apt）组成。 annotation并不直接影响代码语义，但是它能够工作的方式被看作类似程序的工具或者类库，它会反过来对正在运行的程序语义有所影响。annotation可以从源文件、class文件或者以在运行时反射的多种方式被读取。 当然annotation在某种程度上使javadoc tag更加完整。一般情况下，如果这个标记对java文档产生影响或者用于生成java文档的话，它应该作为一个javadoc tag；否则将作为一个annotation。 三、Annotation使用方法： 1。类型声明方式： 通常，应用程序并不是必须定义annotation类型，但是定义annotation类型并非难事。Annotation类型声明于一般的接口声明极为类似，区别只在于它在interface关键字前面使用“@”符号。 annotation 类型的每个方法声明定义了一个annotation类型成员，但方法声明不必有参数或者异常声明；方法返回值的类型被限制在以下的范围： primitives、String、Class、enums、annotation和前面类型的数组；方法可以有默认值。 下面是一个简单的annotation类型声明： 清单1:     /**      &#8230; <a href="http://www.liruobing.cn/code-life/java-annotation-base.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://www.liruobing.cn/code-life/java-annotation-base.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jodd 3.3 发布，Java常用工具包</title>
		<link>http://www.liruobing.cn/code-life/jodd-3-3.html</link>
		<comments>http://www.liruobing.cn/code-life/jodd-3-3.html#comments</comments>
		<pubDate>Fri, 30 Dec 2011 01:18:12 +0000</pubDate>
		<dc:creator>robin</dc:creator>
				<category><![CDATA[Code人生]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.liruobing.cn/?p=518</guid>
		<description><![CDATA[Jodd 3.3发布了，该版本新增了一个Lagarto HTML解析器和Decora页面修饰器以及Jerry和一些小的改进。 Jodd是一个普通开源Java包。你可以把Jodd想象成Java的“瑞士军刀”，不仅小，锋利而且包含许多便利的功能。 Jodd提供的功能有： 1. 提供操作Java bean 2. 可以从各种数据源加载Bean 3. 简化JDBC的接连与代码 4. 剖析SQL查询 5. 处理时间与日期 6. 操作与格式化String 7. 搜索本地硬盘上的文件 8. 帮助处理Servlet请求等 除此之外还包含一个很小，但实用的基于JSP的MVC框架。 文章出自：开源中国社区]]></description>
		<wfw:commentRss>http://www.liruobing.cn/code-life/jodd-3-3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

