<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>心静自然凉</title>
    <description></description>
    <link>http://linxizeng.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>转【一刻钟精通正则表达式】</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/208171" style="color:red;">http://linxizeng.javaeye.com/blog/208171</a>&nbsp;
          发表时间: 2008年06月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          来自： http://java.chinaitlab.com<br /><br />　　开篇，还是得说说 ^ 和 $ 他们是分别用来匹配字符串的开始和结束，以下分别举例说明：<br /><br />　　"^The"： 开头一定要有"The"字符串；<br /><br />　　"of despair$"： 结尾一定要有"of despair" 的字符串；<br /><br />　　那么，<br /><br />　　"^abc$"： 就是要求以abc开头和以abc结尾的字符串，实际上是只有abc匹配。<br /><br />　　"notice"： 匹配包含notice的字符串。<br /><br />　　你可以看见如果你没有用我们提到的两个字符（最后一个例子），就是说 模式（正则表达式） 可以出现在被检验字符串的任何地方，你没有把他锁定到两边。<br /><br />　　接着，说说 '*'， '+'，和 '？'，<br /><br />　　他们用来表示一个字符可以出现的次数或者顺序。 他们分别表示：<br /><br />　　"zero or more"相当于{0，}，<br /><br />　　"one or more"相当于{1，}，<br /><br />　　"zero or one."相当于{0，1}， 这里是一些例子：<br /><br />　　"ab*"： 和ab{0，}同义，匹配以a开头，后面可以接0个或者N个b组成的字符串（"a"， "ab"， "abbb"， 等）；<br /><br />　　"ab+"： 和ab{1，}同义，同上条一样，但最少要有一个b存在 （"ab"， "abbb"， 等。）；<br /><br />　　"ab？"：和ab{0，1}同义，可以没有或者只有一个b；<br /><br />　　"a？b+$"： 匹配以一个或者0个a再加上一个以上的b结尾的字符串。<br /><br />　　要点， '*'， '+'，和 '？'只管它前面那个字符。<br /><br />　　你也可以在大括号里面限制字符出现的个数，比如<br /><br />　　"ab{2}"： 要求a后面一定要跟两个b（一个也不能少）（"abb"）；<br /><br />　　"ab{2，}"： 要求a后面一定要有两个或者两个以上b（如"abb"， "abbbb"， 等。）；<br /><br />　　"ab{3，5}"： 要求a后面可以有2-5个b（"abbb"， "abbbb"， or "abbbbb"）。<br /><br />　　现在我们把一定几个字符放到小括号里，比如：<br /><br />　　"a（bc）*"： 匹配 a 后面跟0个或者一个"bc"；<br /><br />　　"a（bc）{1，5}"： 一个到5个 "bc."<br /><br />　　还有一个字符 '│'， 相当于OR 操作：<br /><br />　　"hi│hello"： 匹配含有"hi" 或者 "hello" 的 字符串；<br /><br />　　"（b│cd）ef"： 匹配含有 "bef" 或者 "cdef"的字符串；<br /><br />　　"（a│b）*c"： 匹配含有这样多个（包括0个）a或b，后面跟一个c的字符串；<br /><br />　　一个点（'.'）可以代表所有的单一字符，不包括"\n"<br /><br />　　如果，要匹配包括"\n"在内的所有单个字符，怎么办？<br /><br />　　对了，用'[\n.]'这种模式。<br /><br />　　"a.[0-9]"： 一个a加一个字符再加一个0到9的数字<br /><br />　　"^.{3}$"： 三个任意字符结尾 .<br /><br />　　中括号括住的内容只匹配一个单一的字符<br /><br />　　"[ab]"： 匹配单个的 a 或者 b （ 和 "a│b" 一样）；<br />"[a-d]"： 匹配'a' 到'd'的单个字符 （和"a│b│c│d" 还有 "[abcd]"效果一样）； 一般我们都用[a-zA-Z]来指定字符为一个大小写英文<br /><br />　　"^[a-zA-Z]"： 匹配以大小写字母开头的字符串<br /><br />　　"[0-9]%"： 匹配含有 形如 x% 的字符串<br /><br />　　"，[a-zA-Z0-9]$"： 匹配以逗号再加一个数字或字母结尾的字符串<br /><br />　　你也可以把你不想要得字符列在中括号里，你只需要在总括号里面使用'^' 作为开头 "%[^a-zA-Z]%" 匹配含有两个百分号里面有一个非字母的字符串。<br /><br />　　要点：^用在中括号开头的时候，就表示排除括号里的字符。为了PHP能够解释，你必须在这些字符面前后加''，并且将一些字符转义。<br /><br />　　不要忘记在中括号里面的字符是这条规路的例外？在中括号里面， 所有的特殊字符，包括（''）， 都将失去他们的特殊性质 "[*\+？{}.]"匹配含有这些字符的字符串。<br /><br />　　还有，正如regx的手册告诉我们： "如果列表里含有 ']'， 最好把它作为列表里的第一个字符（可能跟在'^'后面）。 如果含有'-'， 最好把它放在最前面或者最后面， or 或者一个范围的第二个结束点[a-d-0-9]中间的‘-’将有效。<br /><br />　　看了上面的例子，你对{n，m}应该理解了吧。要注意的是，n和m都不能为负整数，而且n总是小于m. 这样，才能 最少匹配n次且最多匹配m次。 如"p{1，5}"将匹配 "pvpppppp"中的前五个p.<br /><br />　　下面说说以\开头的<br /><br />　　\b 书上说他是用来匹配一个单词边界，就是……比如've\b'，可以匹配love里的ve而不匹配very里有ve<br /><br />　　\B 正好和上面的\b相反。例子我就不举了<br /><br />　　……突然想起来……可以到http://www.phpv.net/article.php/251 看看其它用\ 开头的语法<br /><br />　　好，我们来做个应用：<br /><br />　　如何构建一个模式来匹配 货币数量 的输入<br /><br />　　构建一个匹配模式去检查输入的信息是否为一个表示money的数字。我们认为一个表示money的数量有四种方式： "10000.00" 和 "10，000.00"，或者没有小数部分， "10000" and "10，000". 现在让我们开始构建这个匹配模式：<br /><br />　　^[1-9][0-9]*$<br /><br />　　这是所变量必须以非0的数字开头。但这也意味着 单一的 "0" 也不能通过测试。 以下是解决的方法：<br /><br />　　^（0│[1-9][0-9]*）$<br /><br />　　"只有0和不以0开头的数字与之匹配"，我们也可以允许一个负号在数字之前：<br /><br />　　^（0│-？[1-9][0-9]*）$<br /><br />　　这就是： "0 或者 一个以0开头 且可能 有一个负号在前面的数字。" 好了，现在让我们别那么严谨，允许以0开头。现在让我们放弃 负号 ， 因为我们在表示钱币的时候并不需要用到。 我们现在指定 模式 用来匹配小数部分：<br /><br />　　^[0-9]+（\.[0-9]+）？$<br /><br />　　这暗示匹配的字符串必须最少以一个阿拉伯数字开头。 但是注意，在上面模式中 "10." 是不匹配的， 只有 "10" 和 "10.2" 才可以。 （你知道为什么吗）<br /><br />　　^[0-9]+（\.[0-9]{2}）？$<br /><br />　　我们上面指定小数点后面必须有两位小数。如果你认为这样太苛刻，你可以改成：<br /><br />　　^[0-9]+（\.[0-9]{1，2}）？$<br /><br />　　这将允许小数点后面有一到两个字符。 现在我们加上用来增加可读性的逗号（每隔三位）， 我们可以这样表示：<br /><br />　　^[0-9]{1，3}（，[0-9]{3}）*（\.[0-9]{1，2}）？$<br /><br />　　不要忘记 '+' 可以被 '*' 替代 如果你想允许空白字符串被输入话 （为什么？）。 也不要忘记反斜杆 ‘\’ 在php字符串中可能会出现错误 （很普遍的错误）。<br /><br />　　现在，我们已经可以确认字符串了， 我们现在把所有逗号都去掉 str_replace（"，"， ""， $money） 然后在把类型看成 double然后我们就可以通过他做数学计算了。<br /><br />　　再来一个：<br /><br />　　构造检查email的正则表达式<br /><br />　　在一个完整的email地址中有三个部分：<br /><br />　　1. 用户名 （在 '@' 左边的一切），<br /><br />　　2.'@'，<br /><br />　　3. 服务器名（就是剩下那部分）。<br /><br />　　用户名可以含有大小写字母阿拉伯数字，句号 （'.'）， 减号（'-'）， and 下划线 （'_'）。 服务器名字也是符合这个规则，当然下划线除外。<br /><br />现在， 用户名的开始和结束都不能是句点。 服务器也是这样。 还有你不能有两个连续的句点他们之间至少存在一个字符，好现在我们来看一下怎么为用户名写一个匹配模式：<br /><br />　　^[_a-zA-Z0-9-]+$<br /><br />　　现在还不能允许句号的存在。 我们把它加上：<br /><br />　　^[_a-zA-Z0-9-]+（\.[_a-zA-Z0-9-]+）*$<br /><br />　　上面的意思就是说： "以至少一个规范字符（除了。）开头，后面跟着0个或者多个以点开始的字符串。"<br /><br />　　简单化一点， 我们可以用 eregi（）取代 ereg（）。eregi（）对大小写不敏感， 我们就不需要指定两个范围 "a-z" 和 "A-Z" ？ 只需要指定一个就可以了：<br /><br />　　^[_a-z0-9-]+（\.[_a-z0-9-]+）*$<br /><br />　　后面的服务器名字也是一样，但要去掉下划线：<br /><br />　　^[a-z0-9-]+（\.[a-z0-9-]+）*$<br /><br />　　好。 现在只需要用“@”把两部分连接：<br /><br />　　^[_a-z0-9-]+（\.[_a-z0-9-]+）*@[a-z0-9-]+（\.[a-z0-9-]+）*$<br /><br />　　这就是完整的email认证匹配模式了，只需要调用<br /><br />　　eregi（‘^[_a-z0-9-]+（\.[_a-z0-9-]+）*@[a-z0-9-]+（\.[a-z0-9-]+）*$ ’，$eamil）<br /><br />　　就可以得到是否为email了。<br /><br />　　正则表达式的其他用法<br /><br />　　提取字符串<br /><br />　　ereg（） and eregi（） 有一个特性是允许用户通过正则表达式去提取字符串的一部分（具体用法你可以阅读手册）。 比如说，我们想从 path/URL 提取文件名 ？ 下面的代码就是你需要：<br /><br />　　ereg（"（[^\\/]*）$"， $pathOrUrl， $regs）；<br /><br />　　echo $regs[1]；<br /><br />　　高级的代换<br /><br />　　ereg_replace（） 和 eregi_replace（）也是非常有用的： 假如我们想把所有的间隔负号都替换成逗号：<br /><br />　　ereg_replace（"[ \n\r\t]+"， "，"， trim（$str））；<br /><br />　　最后，我把另一串检查EMAIL的正则表达式让看文章的你来分析一下。<br /><br />　　"^[-！#$%&\'*+\\./0-9=？A-Z^_`a-z{|}~]+'.'@'.'[-！#$%&\'*+\\/0-9=？A-Z^_`a-z{|}~]+\.'.'[-！#$%&\'*+\\./0-9=？A-Z^_`a-z{|}~]+$"<br /><br />==============================================================<br />"^\d+$"　　//非负整数（正整数 + 0） <br />"^[0-9]*[1-9][0-9]*$"　　//正整数 <br />"^((-\d+)|(0+))$"　　//非正整数（负整数 + 0） <br />"^-[0-9]*[1-9][0-9]*$"　　//负整数 <br />"^-?\d+$"　　　　//整数 <br />"^\d+(\.\d+)?$"　　//非负浮点数（正浮点数 + 0） <br />"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"　　//正浮点数 <br />"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"　　//非正浮点数（负浮点数 + 0） <br />"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"　　//负浮点数 <br />"^(-?\d+)(\.\d+)?$"　　//浮点数 <br />"^[A-Za-z]+$"　　//由26个英文字母组成的字符串 <br />"^[A-Z]+$"　　//由26个英文字母的大写组成的字符串 <br />"^[a-z]+$"　　//由26个英文字母的小写组成的字符串 <br />"^[A-Za-z0-9]+$"　　//由数字和26个英文字母组成的字符串 <br />"^\w+$"　　//由数字、26个英文字母或者下划线组成的字符串 <br />"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"　　　　//email地址 <br />"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"　　//url<br />/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   //  年-月-日<br />/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/   // 月/日/年<br />"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"   //Emil<br />"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"     //电话号码<br />"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"   //IP地址<br /><br />匹配中文字符的正则表达式： [\u4e00-\u9fa5]<br />匹配双字节字符(包括汉字在内)：[^\x00-\xff]<br />匹配空行的正则表达式：\n[\s| ]*\r<br />匹配HTML标记的正则表达式：/&lt;(.*)>.*&lt;\/\1>|&lt;(.*) \/>/<br />匹配首尾空格的正则表达式：(^\s*)|(\s*$)<br />匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br />匹配网址URL的正则表达式：^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$<br />匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br />匹配国内电话号码：(\d{3}-|\d{4}-)?(\d{8}|\d{7})?<br />匹配腾讯QQ号：^[1-9]*[1-9][0-9]*$<br /><br />匹配中文字符的正则表达式： [u4e00-u9fa5]<br />匹配双字节字符(包括汉字在内)：[^x00-xff]<br />匹配空行的正则表达式：n[s| ]*r<br />匹配HTML标记的正则表达式：/&lt;(.*)>.*&lt;/1>|&lt;(.*) />/ <br />匹配首尾空格的正则表达式：(^s*)|(s*$)<br />匹配Email地址的正则表达式：w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*<br />匹配网址URL的正则表达式：http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?<br /><br />利用正则表达式限制网页表单里的文本框输入内容：<br />用正则表达式限制只能输入中文：onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"<br />用正则表达式限制只能输入全角字符： onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"<br />用正则表达式限制只能输入数字：onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"<br />用正则表达式限制只能输入数字和英文：onkeyup="value=value.replace(//g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/208171#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 26 Jun 2008 11:37:29 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/208171</link>
        <guid>http://linxizeng.javaeye.com/blog/208171</guid>
      </item>
      <item>
        <title>验证页面值是否修改了</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/168554" style="color:red;">http://linxizeng.javaeye.com/blog/168554</a>&nbsp;
          发表时间: 2008年03月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          JS验证页面的值有没有修改过...<br /><pre name="code" class="java">
function initPage()   
{
 for(i=0;i&lt;document.all.tags("select").length;i++)       
 {   
	  var select = document.all.tags("select").item(i);
	  if(select.defaultValue == undefined)
	  	select.defaultValue = select.options[select.selectedIndex].value;  
 }   
}

function isModified(objID)   
{
	isChange = false;
	
	if(document.getElementById(objID) == undefined || document.getElementById(objID) == null)
	{
		return false;
	}
	
	var clInput = document.getElementById(objID).all.tags("input");        
	var clArea  = document.getElementById(objID).all.tags("textarea");
	var clSelect= document.getElementById(objID).all.tags("select");
	
	for (i=0;i&lt;clInput.length;i++)       
	{
		if (isChange == true) {   
			break;           
		}              
	
		switch (clInput.item(i).type)               
		{                     
			case "text" :
				if (clInput.item(i).value != clInput.item(i).defaultValue)                       
				{               
					isChange = true;                               
					break;                          
				}                         
			case "radio" :                          
				if (clInput.item(i).checked != clInput.item(i).defaultChecked)                      
				{                               
					isChange = true;                               
					break;
				}                    
			case "checkbox" :                          
				if (clInput.item(i).checked != clInput.item(i).defaultChecked)
				{
					isChange = true;                                
					break;                           
				}                 
		}        
	}                
	
	for (i=0;i&lt;clArea.length;i++)       
	{             
		if (isChange ==true) {
			break;  
		}                           
		 
		if (clArea.item(i).value != clArea.item(i).defaultValue)           
		{                   
			isChange = true;                   
			break;              
		}        
	}
	
	for (i=0;i&lt;clSelect.length;i++)       
	{             
		if (isChange ==true) {
			break;
		}
		
		if (clSelect[i].defaultValue != clSelect[i].options[clSelect[i].selectedIndex].value)           
		{                   
			isChange = true;                   
			break;              
		}        
	}

	return isChange;
}
</pre><br />HTML调用 ：<br /><pre name="code" class="java">
 &lt;script> isModified(document.forms[0].name)  &lt;/script>   
  &lt;BODY onload="initPage()">
</pre><br /><br />Java验证form的值是否被修改过....<br /><br /><pre name="code" class="java">
	public boolean isChange(Form preForm, Form curForm) {
		Class  form = Form.class;
        Method[] method = form.getMethods();  
        String pre;
        String cur;
        for(int i=0; i&lt;method.length; i++)  
        {  
        	String n = method[i].getName();
        	if (n != null && n.length() >3 && n.substring(0,3).equals("get") 
        			&& !n.equals("getClass") &&  !n.equals("getTimestamp")
        			//不需要比较的方法最加...
        			){
        		try {
        			if(preForm != null && curForm != null) {
        				pre = (String)method[i].invoke(preForm, new Object[0]);
    	        		cur = (String)method[i].invoke(curForm, new Object[0]);
    	        		 if(isNotBlank(pre) && isNotBlank(cur)) {
    	        			 if (!pre.equals(cur)) {
    	        				 return true;
    	        			 }
    	        		 }
    	        		 else if((isBlank(pre) && isNotBlank(cur)) || (isNotBlank(pre) && isBlank(cur))){
    	        			 return true;
    	        		 }
        			}
        		} catch(Exception e) {
        			e.printStackTrace();
        		}
        	 }
         }  
        
		return false;
	}
	
	public  boolean isBlank(String target) {
		if (target == null || target.equals("")) {
			return true;
		}
		return false;
	}
	
	public boolean isNotBlank(String target) {
		//target = trim(target);
		if (target == null || target.equals("")) {
			return false;
		}
		return true;
	}
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/168554#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Mar 2008 09:50:47 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/168554</link>
        <guid>http://linxizeng.javaeye.com/blog/168554</guid>
      </item>
      <item>
        <title>进制转换</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/168553" style="color:red;">http://linxizeng.javaeye.com/blog/168553</a>&nbsp;
          发表时间: 2008年03月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          java中进行二进制，八进制，十六进制，十进制间进行相互转换<br /><br />十进制转成十六进制：<br />Integer.toHexString(int i)<br />十进制转成八进制<br />Integer.toOctalString(int i)<br />十进制转成二进制<br />Integer.toBinaryString(int i)<br />十六进制转成十进制<br />Integer.valueOf("FFFF",16).toString()<br />八进制转成十进制<br />Integer.valueOf("876",8).toString()<br />二进制转十进制<br />Integer.valueOf("0101",2).toString()<br /><br />java.lang.Integer类可以直接将2,8,16进制直接转换为10进制<br />Integer.parseInt(String s, int radix)<br /><br />使用第二个参数指定的基数，将字符串参数解析为有符号的整数。<br /><br />examples<br />parseInt("0", 10) returns 0<br />parseInt("473", 10) returns 473<br />parseInt("-0", 10) returns 0<br />parseInt("-FF", 16) returns -255<br />parseInt("1100110", 2) returns 102<br />parseInt("2147483647", 10 ) returns 2147483647<br />parseInt("-2147483648", 10 ) returns -2147483648<br />parseInt("2147483648", 10 ) throws a NumberFormatException<br />parseInt("99", 8 ) throws a NumberFormatException<br />parseInt("Kona", 10 ) throws a NumberFormatException<br />parseInt("Kona", 27 ) returns 411787<br /><br />进制转换如何写（二，八，十六）不用算法<br />Integer.toBinaryString<br />Integer.toOctalString<br />Integer.toHexString<br /><br /><br />例一<br /><pre name="code" class="java">public class Test{
   public static void main(String args[]){

    int i=100;
    String binStr=Integer.toBinaryString(i);
    String otcStr=Integer.toOctalString(i);
    String hexStr=Integer.toHexString(i);
    System.out.println(binStr);
</pre><br /><br /><br />例二<br /><pre name="code" class="java">public class TestStringFormat {
   public static void main(String[] args) {
    if (args.length == 0) {
       System.out.println("usage: java TestStringFormat &lt;a number>");
       System.exit(0);
    }

    Integer factor = Integer.valueOf(args[0]);

    String s;

    s = String.format("%d", factor);
    System.out.println(s);
    s = String.format("%x", factor);
    System.out.println(s);
    s = String.format("%o", factor);
    System.out.println(s);
   }
}
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/168553#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Mar 2008 09:50:05 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/168553</link>
        <guid>http://linxizeng.javaeye.com/blog/168553</guid>
      </item>
      <item>
        <title>JDK版本下载</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/166088" style="color:red;">http://linxizeng.javaeye.com/blog/166088</a>&nbsp;
          发表时间: 2008年02月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          JDK:      http://java.sun.com/products/archive/<br />Eclipse:  http://archive.eclipse.org/eclipse/downloads/index.php
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/166088#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Feb 2008 11:44:45 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/166088</link>
        <guid>http://linxizeng.javaeye.com/blog/166088</guid>
      </item>
      <item>
        <title>I think</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/151801" style="color:red;">http://linxizeng.javaeye.com/blog/151801</a>&nbsp;
          发表时间: 2007年12月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          と思います...<br />
I think...<br />
&rdquo;と&rdquo;　接在简体句里面，表示内容.<br />
と言います....我说...
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/151801#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 29 Dec 2007 15:00:02 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/151801</link>
        <guid>http://linxizeng.javaeye.com/blog/151801</guid>
      </item>
      <item>
        <title>cocky</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/151728" style="color:red;">http://linxizeng.javaeye.com/blog/151728</a>&nbsp;
          发表时间: 2007年12月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Cocky ：自高自大<br />
<br />
Are you in danger of being so confident you become cocky<br />
<br />
－－Prime Minister
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/151728#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 29 Dec 2007 11:18:42 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/151728</link>
        <guid>http://linxizeng.javaeye.com/blog/151728</guid>
      </item>
      <item>
        <title>不断的困惑</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/151575" style="color:red;">http://linxizeng.javaeye.com/blog/151575</a>&nbsp;
          发表时间: 2007年12月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          生活<br />
就是有不断的困惑<br />
亲情、爱情、友情、工作....<br />
感觉到天伦之乐了吗<br />
能牵手到老吗<br />
有知己分享你的秘密吗<br />
知道下一步计划吗<br />
也许<br />
把每次的困惑都看成是成长<br />
那么<br />
也许不是困惑了...<br />
但是<br />
总还是有不断的困惑
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/151575#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 28 Dec 2007 18:09:27 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/151575</link>
        <guid>http://linxizeng.javaeye.com/blog/151575</guid>
      </item>
      <item>
        <title>巧言令色</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/151419" style="color:red;">http://linxizeng.javaeye.com/blog/151419</a>&nbsp;
          发表时间: 2007年12月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="color: rgb(64, 64, 64);">子曰：&ldquo;巧言令色，鲜仁矣。&rdquo;<br />
-----</span>花言巧语，装出和颜悦色的样子，这种人的仁心就很少了<br />
<br />
说好听的是不是就是懂得人情世故<br />
难听的就是圆滑<br />
<span style="color: rgb(64, 64, 64);"><br />
所以 ----<br />
</span>君子欲讷于言而敏于行-------君子就要言词笨拙而行动敏捷<br />
<br />
这是这年头不善于言辞，吃亏可大了....<br />
<br />
<br />
<span style="color: rgb(64, 64, 64);"></span>
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/151419#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 28 Dec 2007 10:53:02 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/151419</link>
        <guid>http://linxizeng.javaeye.com/blog/151419</guid>
      </item>
      <item>
        <title>关于换行</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/145877" style="color:red;">http://linxizeng.javaeye.com/blog/145877</a>&nbsp;
          发表时间: 2007年12月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          java取消换行，CSS强制换行...竟然忘记了....汗！ <br />
<div class="code_title">java 取消换行代码
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;Formatter&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;main(String...args)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">try</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;reader&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;BufferedReader(</span><span class="keyword">new</span><span>&nbsp;FileReader(</span><span class="string">&quot;D://in.txt&quot;</span><span>));&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sReadLine&nbsp;=&nbsp;reader.readLine();&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder&nbsp;sAllContext&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;StringBuilder();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">while</span><span>(sReadLine!=</span><span class="keyword">null</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sAllContext.append(sReadLine);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sReadLine&nbsp;=&nbsp;reader.readLine();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.close();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter&nbsp;pw&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;PrintWriter(</span><span class="keyword">new</span><span>&nbsp;FileOutputStream(</span><span class="string">&quot;D://out.txt&quot;</span><span>));&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(format(sAllContext.toString()));&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.close();&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">catch</span><span>(Exception&nbsp;e){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">static</span><span>&nbsp;String&nbsp;format(String&nbsp;str){&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;reStr&nbsp;=&nbsp;str.replaceAll(<span class="string">&quot;\t&quot;</span><span>,&nbsp;</span><span class="string">&quot;&nbsp;&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reStr&nbsp;=&nbsp;reStr.replaceAll(<span class="string">&quot;\r\n&quot;</span><span>,&nbsp;</span><span class="string">&quot;&nbsp;&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;reStr;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<div class="dp-highlighter">
<div class="bar"> </div>
</div>
</div>
<br />
<div class="code_title">CSS强制换行代码</div>
<div class="dp-highlighter">
<div class="bar"> </div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span><font color="#3366ff">-&gt;div 便签解决方法</font>    </span></span></li>
    <li class=""><span>    </span><br />
    </li>
    <li class="alt"><span>white-space:normal; word-<span class="keyword">break</span><span>:</span><span class="keyword">break</span><span>-all;这里前者是遵循标准。    </span></span></li>
    <li class=""><span>（如果直接加在TD 则：style=<span class="string">&quot; word-break: break-all;&quot;</span><span>）    </span></span></li>
    <li class="alt"><span>#wrap{white-space:normal; width:200px; }    </span></li>
    <li class=""><span>或者    </span></li>
    <li class="alt"><span>#wrap{word-<span class="keyword">break</span><span>:</span><span class="keyword">break</span><span>-all;width:200px;}    </span></span></li>
    <li class=""><span>    </span><br />
    </li>
    <li class="alt"><span>&lt; div id=<span class="string">&quot; wrap &quot;</span><span> width=</span><span class="string">&quot;80&quot;</span><span>&gt;将我换行&lt; /div&gt;    </span></span></li>
    <li class=""><span>    </span><br />
    </li>
    <li class="alt"><span><font color="#3366ff">-&gt;table 标签解决方法</font>    </span></li>
    <li class=""><span>    </span><br />
    </li>
    <li class="alt"><span>&lt; style&gt;    </span></li>
    <li class=""><span>.tb{table-layout:fixed}    </span></li>
    <li class="alt"><span>&lt; /style&gt;    </span></li>
    <li class=""><span>    </span><br />
    </li>
    <li class="alt"><span>&lt; table <span class="keyword">class</span><span>=</span><span class="string">&quot;tbl&quot;</span><span> width=</span><span class="string">&quot;80&quot;</span><span>&gt;    </span></span></li>
    <li class=""><span>&lt; tr&gt;&lt; td&gt;将我换行 &lt; /td&gt;&lt; /tr&gt;    </span></li>
    <li class="alt"><span>&lt; /table&gt;    </span></li>
    <li class=""><span>    </span><br />
    </li>
    <li class="alt"><span>&lt; table <span class="keyword">class</span><span>=</span><span class="string">&quot;tb&quot;</span><span> width=</span><span class="string">&quot;80&quot;</span><span>&gt;    </span></span></li>
    <li class=""><span>&lt; tr&gt;&lt; td  nowrap&gt;将我换行&lt; /td&gt;&lt; /tr&gt;    </span></li>
    <li class="alt"><span>&lt; /table&gt;    </span></li>
    <li class=""><span>    </span><br />
    </li>
    <li class="alt"><span>&lt; table <span class="keyword">class</span><span>=</span><span class="string">&quot;tb&quot;</span><span> width=</span><span class="number">80</span><span>&gt;    </span></span></li>
    <li class=""><span>&lt; tr&gt;    </span></li>
    <li class="alt"><span>&lt; td width=<span class="number">25</span><span>% nowrap&gt;将我换行&lt; /td&gt;    </span></span></li>
    <li class=""><span>&lt; td nowrap&gt;将我换行&lt; /td&gt;    </span></li>
    <li class="alt"><span>&lt; /tr&gt;    </span></li>
    <li class=""><span>&lt; /table&gt;    </span></li>
</ol>
</div>
<span lang="EN-US"></span>
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/145877#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 04 Dec 2007 14:56:47 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/145877</link>
        <guid>http://linxizeng.javaeye.com/blog/145877</guid>
      </item>
      <item>
        <title> Tiger学习 之 Thread</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/143104" style="color:red;">http://linxizeng.javaeye.com/blog/143104</a>&nbsp;
          发表时间: 2007年11月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          处理未捕获的异常...见 Thread.UncaughtExceptionHandler.<br /><br />Thread-Safe的Collection，见java.util.conurrent包下<br />1.ConcurrentHashMap，不同步化所有的读取方法.处理掉很多锁定与threading的问题，将内部的hashtable区段间隔开来，可以在不同的线程写入不同的区段，同时对不同区段操作，使用与HashMap相同<br /><br />2.CopyOnWriteArrayList，解决不常被更新但是常读取的array的方法，解除了同步化，能够允许任意数目的并发读取，对于写入实际是创建一个新的array拷贝，然后在分配给原版本<br /><br />3.CopyOnWriteArraySet,类似CopyOnWriteArrayList<br /><br />4.BlockingQueue:ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue、DelayQueue、SynchronousQueue<br /><br />指定Blocking的Timeout，定义四个值的enum，SECONDS、MILLISECONDS、MICROSECONDS、NANOSECONDS，指定thread睡一下下，如<br /><div class="quote_title">引用</div><div class="quote_div"><br />TimeUnit.SECONDS.sleep(30);<br /></div><br />还有很多方法...看API，还有强大的Executors和ExecutorService<br /><div class="quote_title">引用</div><div class="quote_div"><br />Executors.newSingleThreadExecutor();<br /></div><br /><br />下面列出一些还需要关注的东东<br />1.使用Callable对象...<br />2.无ExecutorService的执行任务<br />3.任务安排<br />4.高等Synchronizing（semaphore、countDowLatch、Exchanger、CyslicBarrier）<br />5.使用Atomic类型<br />6.Locking与Synchronization<br /><br />现在没有怎么用到，了解一下，需要是学习学习...
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/143104#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 23 Nov 2007 17:01:28 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/143104</link>
        <guid>http://linxizeng.javaeye.com/blog/143104</guid>
      </item>
      <item>
        <title> Tiger学习 之 Formatter</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/142738" style="color:red;">http://linxizeng.javaeye.com/blog/142738</a>&nbsp;
          发表时间: 2007年11月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          关于Formatter,参照API...Formatter类<br />通过创建Formatter的示例进行...<br /><pre name="code" class="java">
//Formatter f = new Formatter("FileName");
StringBuilder s = new StringBuilder();
Formatter f = new Formatter(s);
f.format("hello: %s", s);
</pre><br />撰写格式化的输出...见farmat方法....<br />一些便利的format方法:<br /><div class="quote_title">引用</div><div class="quote_div"><br />String.format(format, args);<br />System.out.printf(format, args);<br />... ...<br /></div>
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/142738#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 22 Nov 2007 17:08:44 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/142738</link>
        <guid>http://linxizeng.javaeye.com/blog/142738</guid>
      </item>
      <item>
        <title> Tiger学习 之 import static</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/142717" style="color:red;">http://linxizeng.javaeye.com/blog/142717</a>&nbsp;
          发表时间: 2007年11月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          静态的import，没什么好说的...不过建议在使用超出三次时才使用<br /><pre name="code" class="java">
//可以是静态类、枚举、方法、成员
import static java.lang.System.out;
import static java.util.Arrays.sort;
import static java.lang.Math.*;//多个成员，不建议使用，除非是Enum...
</pre><br /><br />importing多个member<br />如果是相同的名字的类,成员，那是不行的...编译出错.<br />但是如果是method，例如重载...那么编译器会根据参数判断调用那一个方法...很cool（如果参数一样-->NG）
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/142717#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 22 Nov 2007 16:34:39 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/142717</link>
        <guid>http://linxizeng.javaeye.com/blog/142717</guid>
      </item>
      <item>
        <title>Tiger学习 之 for/in</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/140690" style="color:red;">http://linxizeng.javaeye.com/blog/140690</a>&nbsp;
          发表时间: 2007年11月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong>一.抛弃Iterator</strong><br />for/in语句排除了使用Iterator类的使用。<br /><pre name="code" class="java">
		List&lt;String> list = new ArrayList&lt;String>();
		list =getList();
		for(String string: list){
			System.out.println("======: "+ string );
		}

		for(Iterator i = list.iterator(); i.hasNext();){
			String string = (String)i.next();
			System.out.println("======: "+ string );
		}
</pre><br />语法<br /><div class="quote_title">引用</div><div class="quote_div"><br />for(declaration : expression)<br />	statment<br /></div><br /><br />其实编译器会把它编译成普通的for循环处理的，因此，Tiger的for/in仅仅是让你少打点字，没有什么其他的优势....but注意：<br /><br />expression必须是Array或者一个实现Iterable接口的对象，且能分配兼容于declaration中声明的变量类型(之执行一次)<br /><br />declaration是由类型和变量组成的（必须在循环中声明）。可以采用annotation和final修饰符（防止循环变量采用任何非循环做指点的expression值和强调expression值不能通过循环变量来修改）<br /><br /><strong>二. Over array</strong><br />很简单..<br /><div class="quote_title">引用</div><div class="quote_div"><br />		int[] array = new int[]{1,2,3,4,5,6,7,8,9,0};<br />		for(int i :array){<br />			System.out.println("======: "+ i );<br />		}<br /></div><br />当然，对象数组一样可以...<br /><br /><strong>三. Over Collection</strong><br />跟over rarray一样...仅仅多了需要转换类型..那么<br /><br />避免不需要的类型转换----声明collection的时候使用generic(泛型)吧！<br /><br /><strong>四. 让自己的Class也可以for/in</strong><br />一、 继承之Array或Collection类吧..<br /><div class="quote_title">引用</div><div class="quote_div">public class myList extends LinkedList{...}</div><br />二、实现Iterable接口吧，这个需要你手动处理iteration...<br /><div class="quote_title">引用</div><div class="quote_div">public class myList implements Iterable{...}</div><br /><br /><strong>五. 一写for/in无法办到的事情</strong><br />for/in很方便，but<br />1.无法判断访问list位置，（例如字符串合并时，最后一个连接字符的处理）<br />2.无法访问list本身变量，（例如在循环时removme某一元素）<br />3.反向array或collection元素<br />4.调用get而不是调用iterator来iterate list的元素<br />5......
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/140690#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 16 Nov 2007 17:20:00 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/140690</link>
        <guid>http://linxizeng.javaeye.com/blog/140690</guid>
      </item>
      <item>
        <title>25 Skills Every Man Should Know</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/140269" style="color:red;">http://linxizeng.javaeye.com/blog/140269</a>&nbsp;
          发表时间: 2007年11月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          《大众机械》列举了<a href="http://www.popularmechanics.com/blogs/technology_news/4221635.html">25项每个男人都应该会的技能</a><br />
<span name="intelliTxt" id="intelliTXT"><strong>1.</strong> Patch a radiator hose<br />
<font color="#000000"><strong> 2.</strong> Protect your computer</font><br />
<strong> 3.</strong> Rescue a boater who has capsized<br />
<strong> 4.</strong> Frame a wall<br />
<strong> 5.</strong> Retouch digital photos<br />
<strong> 6.</strong> Back up a trailer<br />
<strong> 7.</strong> Build a campfire<br />
<strong> 8.</strong> Fix a dead outlet<br />
<strong> 9.</strong> Navigate with a map and compass<br />
<strong> 10.</strong> Use a torque wrench<br />
<strong>11.</strong> Sharpen a knife<br />
<strong> 12.</strong> Perform CPR<br />
<strong> 13.</strong> Fillet a fish<br />
<strong> 14.</strong> Maneuver a car out of a skid<br />
<strong> 15.</strong> Get a car unstuck<br />
<strong> 16.</strong> Back up data<br />
<strong> 17.</strong> Paint a room<br />
<strong> 18.</strong> Mix concrete<br />
<strong> 19.</strong> Clean a bolt-action rifle<br />
<strong> 20.</strong> Change oil and filter<br />
<strong> 21.</strong> Hook up an HDTV<br />
<strong> 22.</strong> Bleed brakes<br />
<strong>23.</strong> Paddle a canoe<br />
<strong> 24.</strong> Fix a bike flat<br />
<strong> 25.</strong> Extend your wireless network<br />
<br />
你会几样？</span>
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/140269#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 Nov 2007 15:21:01 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/140269</link>
        <guid>http://linxizeng.javaeye.com/blog/140269</guid>
      </item>
      <item>
        <title>Tiger学习 之 Annotate</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/139495" style="color:red;">http://linxizeng.javaeye.com/blog/139495</a>&nbsp;
          发表时间: 2007年11月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          主要有四种的标准的meta-annotation，都在java.lang.annotation的package中...<br /><br />1.@Target指定那个程序单元可以有其所定义的annotation<br />(程序单元:class.interface,enum,field,method,parameter,constructor,variable package,annotation。参看ElementType类)<br /><br />需要import（java.lang.annotation.ElementType;java.lang.annotation.Target;）两个类<br /><div class="quote_title">引用</div><div class="quote_div"><br />//只能用于TYPE和METHOD的程序单元<br />@Target({ElementType.TYPE,ElementType.METHOD})<br />public @interface MyAnnotation {}<br />//只能用于自己<br />@Target({ElementType.ANNOTATION_TYPE})<br />public @interface MyAnnotation {}<br />//适用于所有，不要定义Targer<br />public @interface MyAnnotation {}<br /></div><br /><br />2.@Retention告诉Java编译器如何对待annotation，有三种情况(参见RetentionPolicy类)<br />需要import（java.lang.annotation.Retention;java.lang.annotation.RetentionPolicy;）两个类<br />SOURCE：Annotation会被编译器丢弃，如SuppressWarnings这个annotation<br />CLASS：保留在class的文件中，但会被VM忽略，默认的annotation<br />RUNTIME：保留在class的文件中且由VM读取<br /><div class="quote_title">引用</div><div class="quote_div"><br />@Retention(RetentionPolicy.CLASS)<br />public @interface MyAnnotation {}<br /></div><br /><br />3.@Documented定义annotation是否被视为注释在JavaDoc出现<br />需要import（java.lang.annotation.Documented）这个类<br /><br /><div class="quote_title">引用</div><div class="quote_div"><br />@Documented<br />@Retention(RetentionPolicy.RUNTIME) <br />//使用@Documented就必须使用@Retention(RetentionPolicy.RUNTIME)<br />public @interface MyAnnotation {}<br /></div><br /><br />4.@Inherited，继承父类的annotation，仅仅用在subclass，且superclass的annotation全部继承下来。<br />需要import（java.lang.annotation.Inherited）这个类<br /><div class="quote_title">引用</div><div class="quote_div"><br />@Inherited<br />public @interface MyAnnotation {}<br /><br />@MyAnnotation<br />public class Anno {<br />}<br />//SubAnno 会把Anno 的annotation继承下来<br />public class SubAnno extends Anno {<br />}<br /></div><br />当然，如果子类的方法的覆盖父类带有annotation的方法是，改annotation是不会被继承的。<br />可以通过JavaDoc看效果...<br /><br /><br />关于Reflenting，annotation的自我减产工具，判断某个类具有什么也的annotation<br />如:判断时候是MyAnnotation类型的annotation）<br /><div class="quote_title">引用</div><div class="quote_div"><br />Class c = SubAnno.class;<br />System.out.println(c.isAnnotationPresent(MyAnnotation.class));<br /></div><br />还要学习AnnotatedElement类...
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/139495#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 09 Nov 2007 15:35:29 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/139495</link>
        <guid>http://linxizeng.javaeye.com/blog/139495</guid>
      </item>
      <item>
        <title>Tiger学习 之 自定义Annotation</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/139471" style="color:red;">http://linxizeng.javaeye.com/blog/139471</a>&nbsp;
          发表时间: 2007年11月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          创建自己的Annotation通过@interface关键字来实现，如<br /><div class="quote_title">引用</div><div class="quote_div"><br /><span style="color: blue">//没有member的Annotation</span><br />public @interface MyAnnotation {}<br /><br /><span style="color: blue">//有member的Annotation</span><br />public @interface MyAnnotation {<br />	String value();<span style="color: blue">//创建一个隐含没有且主体的abstract方法，编译器同时创建一个同名的member变量。</span><br />}<br /><span style="color: blue">//有多个memberAnnotation</span><br />public @interface MyAnnotation {<br />	public enum Type {CLASS, INTERFACE,ENUM}<br />	Type type();<br />	String value();<br />}<br /><span style="color: blue">//有默认值的Annotation</span><br />public @interface MyAnnotation {<br />	public enum Type {CLASS, INTERFACE,ENUM}<br />	Type type() default Type.CLASS;<br />	String value();<br />}<br /><span style="color: blue">//调用例子</span><br />@MyAnnotation(type=MyAnnotation.Type.CLASS,value="annotation")<br />public void doSomething(){}<br /></div><br /><br />Anotation不能继承其他的interface或其他的annottation，但是可以继承并实现annotation(这样将不会被当作annotation类型)
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/139471#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 09 Nov 2007 13:47:46 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/139471</link>
        <guid>http://linxizeng.javaeye.com/blog/139471</guid>
      </item>
      <item>
        <title>Tiger学习 之 Annotation介绍</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/139462" style="color:red;">http://linxizeng.javaeye.com/blog/139462</a>&nbsp;
          发表时间: 2007年11月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Annotation是通过定义好了的metadata机制来陈述类、方法、变量的各种变化的方法.<br /><br />在 Tiger中有三种标准的annotation类型<br /><br />Override：java.lang.Override是用来指示有一个method，它override掉它自己的superclass的method<br /><div class="quote_title">引用</div><div class="quote_div"><br />	@Override<br />	public String toString(){...}<br /></div><br /><span style="color: blue">确保你override某个方法...如果方法加上可@Override，但是没有override某个方法...那么编译器提示错误</span><br /><br />Deprecated：java.lang.Deprecated是指出某一个method或是element类型的使用是被阻止的<br /><div class="quote_title">引用</div><div class="quote_div"><br />@Deprecated public class Annotation {...}<br /></div><br /><span style="color: blue">如果使用了@Deprecated过的类或方法，编译器将会给予警告.</span><br /><br />SupressWarnings:Deprecated：java.lang.SupressWarnings会关掉class、method、field与variable初始的编译器警告<br /><div class="quote_title">引用</div><div class="quote_div"><br />	@SuppressWarnings("uncheck")<br />	public String toString(){...}<br /></div><br /><span style="color: blue">可以去掉一些Tiger编程规范的警告信息</span>，如方法前加上@SuppressWarnings("unchecked")，那么<br /><div class="quote_title">引用</div><div class="quote_div"><br />		List list =  new ArrayList();<br />		list.add("1");<br /></div><br />也就不会提示警告了（泛型的警告）<br /><br />annotation类型将一些信息与java的class、method、variable相关联起来<br /><br />另外三种annotation类型<br />Marker annotation：给没有定义member的annotation或所有memeber都有默认值的annotation使用,例子..<br /><div class="quote_title">引用</div><div class="quote_div"><br />@MarkerAnnotation<br /></div><br /><br />Single-value annotation：只有一个member，称为value。例子..<br /><div class="quote_title">引用</div><div class="quote_div"><br />@SingleValueAnnotation<br /></div><br /><br /><br /><br />Full annotation：后面跟括号，所有的member都被赋值,例子..<br /><div class="quote_title">引用</div><div class="quote_div"><br />@Reviews(...)<br /></div>
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/139462#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 09 Nov 2007 13:20:09 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/139462</link>
        <guid>http://linxizeng.javaeye.com/blog/139462</guid>
      </item>
      <item>
        <title>XP 下的 Oracle 9i 卸载</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/138020" style="color:red;">http://linxizeng.javaeye.com/blog/138020</a>&nbsp;
          发表时间: 2007年11月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          环境: Windows XP  + oracle 9i<br /><br />1.停止所有Oracle服务：在控制面板 -> 管理工具 -> 服务 -> 停止所有 oracle 服务<br />2.卸载程序：在开始菜单选择oracle的 Universal Installer选项 卸载所有oracle 产品（Universal Installer本身不能被删除）<br />3.清除注册表信息：运行 regedit，进入注册表编辑<br />1>选择 HKEY_CLASSES_ROOT,删除所有 oracle 入口，如以oracle，orcl，ora开头的<br />2>选择 HKEY_LOCAL_MACHINE\SOFTWARE ，删除Oracle目录<br />3>选择 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001(或者ControlSet002、ControlSet003)\Services ，删除所有Oracle项<br />4>选择 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下，删除所有Oracle项<br />5>选择 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application删除所有Oracle项<br />4.删除环境变量：在控制面板 ->系统 -> 高级 -> 环境变量 -> 删除环境变量CLASSPATH和PATH中有关Oracle的设定<br />5.删除文件：删除在 C:\Program Files 目录下的 oracle 文件夹，删除安装目录下的oracle安装文件夹，删除所有有关Oracle的组和图标，删除所有Oracle相关的ODBC的DSN和到事件查看器中删除Oracle相关的日志（如果有）。<br />       <br />以上的步骤，如果有些删除不了的话，就重启你的计算机再继续删除....
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/138020#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 05 Nov 2007 11:41:09 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/138020</link>
        <guid>http://linxizeng.javaeye.com/blog/138020</guid>
      </item>
      <item>
        <title>Tiger学习 之 可变参数</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/137637" style="color:red;">http://linxizeng.javaeye.com/blog/137637</a>&nbsp;
          发表时间: 2007年11月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          可变参数，解决Method有不同个数参数的overload问题...<br />如何创建一个可变长度的参数，看代码：<br /><div class="quote_title">引用</div><div class="quote_div"><br />public void vararg(String varOne, String varTwo, String...strings ) {}<br /></div><br />编译器会把它解析为"public void vararg(String varOne, String varTwo, String[] strings) {}",将"..."创建成一个&lt;argument type>的array。<br /><br />调用很简单...（零或以上多个参数）<br /><div class="quote_title">引用</div><div class="quote_div"><br />vararg("one","tow");<span style="color: blue"> //可以不传参数</span><br />vararg("one","tow","three"); <span style="color: blue">//可以传入一个参数</span><br />vararg("one","tow","three",four); <span style="color: blue">//可以传入多个参数</span><br /></div><br />当然，也可以传入一个数组作为参数,如：<br /><div class="quote_title">引用</div><div class="quote_div"><br />	public void vararg(int... i) {<br />		for (int ivalue : i) {<br />			System.out.println("the i value is: " +ivalue);<br />		}<br />	}<br /></div><br /><div class="quote_title">引用</div><div class="quote_div"><br />//调用<br /><br />		int[] i = {1,2,3,4,5,6};<br />		new ObjectB().vararg(i);<br /></div><br />输出<br /><br /><div class="quote_title">引用</div><div class="quote_div"><br />the i value is: 1<br />the i value is: 2<br />the i value is: 3<br />the i value is: 4<br />the i value is: 5<br />the i value is: 6<br /></div><br />当然，如果是接受到一个零长度的list，最好做一个判断，可以抛出IllegalArgumentException异常。<br /><br /><span style="color: blue">But，有些限制：<br />1.一个方法只能有一个可变参数（一个省略号）<br />2.省略号只能写在方法参数列表的最后一个。</span><br /><br />迭代可变参数List<br />将vararg当array来使用...如：<br /><div class="quote_title">引用</div><div class="quote_div"><br />public void vararg(String...strings ) {<br />		for (String str : strings) {<br />			System.out.println("the vararg value is: " +str);<br />		}<br />	}<br /></div><br />输出<br /><div class="quote_title">引用</div><div class="quote_div"><br />the vararg value is: One<br />the vararg value is: Two<br />the vararg value is: Three<br /></div><br />也可以将可变参数存在变量中...<br /><div class="quote_title">引用</div><div class="quote_div"><br />	public void vararg(String...strings ) {<br />			String[] arr = strings;[color]<span style="color: blue">//存在数组当中，因为自动将String... strings转成String[] strings.</span><br />			List list = Arrays.asList(strings);<span style="color: blue">//存在list当中</span><br />	}<br /></div><br />由于Tiger是autoboxing和auto-unboxing,所以，当我们需要使用primitive参数的时候，我们也可以在Method中使用wrapper类型，由于wrapper都是Object类型，因此用Object... object作为参数最好了.<br /><div class="quote_title">引用</div><div class="quote_div"><br />	public void vararg(Object... object) {<br />		for (Object o : object) {<br />			System.out.println("the object value is: " +o.toString());<br />		}<br />	}<br /></div><br />//调用<br /><div class="quote_title">引用</div><div class="quote_div"><br />		Integer[] i = {1,2,3};<span style="color: blue">//只能用Integer，如果用int，print不出来具体的值。。。</span><br /><br />		String[] str = {"A","B","C"};<br />		ObjectB b = new ObjectB();<br />		b.vararg(i);<br />		b.vararg(str);<br /></div><br />结果<br /><div class="quote_title">引用</div><div class="quote_div"><br />//Integer类型<br />the object value is: 1<br />the object value is: 2<br />the object value is: 3<br />//String类型<br />the object value is: A<br />the object value is: B<br />the object value is: C<br /></div><br /><br />还有一个情况出现...例如<br /><div class="quote_title">引用</div><div class="quote_div"><br />		String[] str = {"A","B","C"};<br />		System.out.printf("the array values are: %s " , str);<br /></div><br />输出是：<br /><div class="quote_title">引用</div><div class="quote_div"><br />the array values are: A <br /></div><br />因为只会取str的第一个元素的值...可以这样写<br /><div class="quote_title">引用</div><div class="quote_div"><br />System.out.printf("the array values are: %s " ,(Object)str);<br /></div>
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/137637#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 02 Nov 2007 18:27:41 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/137637</link>
        <guid>http://linxizeng.javaeye.com/blog/137637</guid>
      </item>
      <item>
        <title>Tiger学习 之 Conditional 与Unboxing</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/137568" style="color:red;">http://linxizeng.javaeye.com/blog/137568</a>&nbsp;
          发表时间: 2007年11月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Conditional=ternary operator（三目运算符）...用"？"来表示，那么Tiger有什么不一样呢？<br /><div class="quote_title">引用</div><div class="quote_div"><br />Boolean case1 = true;<br />int s = case1? new Integer(1) : 1;<br /></div><br />在Tiger之前，以上代码是不会通过的...因为在":"的两边的数值类型必须是一样的...<br />在Tiger，是OK的，因为是会unbox的..并且只要两个对象有交集，就可以了...如:<br /><div class="quote_title">引用</div><div class="quote_div"><br />CharSequence cs = case1? (CharSequence)"Hello" : (CharSequence)new StringBuffer("Goodbye");<br /></div><br />CharSequence 是String和StringBuffer的交集，因此，这是可以的...这样的话..除了primitive；类型，只要是对象都可以，因为都是来自Object...<br />如，这里仅仅是例子..<br /><div class="quote_title">引用</div><div class="quote_div"><br />Object cs = case1? (Object)"Hello" : (Object)new Integer(100);<br /></div><br /><br />关于控制语句...原本只能通过primitive的现在都支持他们相对的wrapper...例如switch也支持（Integer、Short、Char...）,因为unboxing!<br /><br />about Method OverLoad...下面代码结果是什么？<br /><div class="quote_title">引用</div><div class="quote_div"><br />	public void doSomething(double dbl){<br />		System.out.print("double value");<br />	}<br />	public void doSomething(Integer dbl){<br />		System.out.print("Integer value");<br />	}<br /><br />//调用的代码<br />	int i = 100;<br />	new ObjectB().doSomething(i);<br /></div><br />结果：<br /><div class="quote_title">引用</div><div class="quote_div"><br />double value<br /></div><br />如果按照aotuBoxing来说的话应该会输出"Integer value"...But,Tiger的Method解释是按照一下顺序的...<br /><span style="color: blue">1.不做任何boxing、unboxing或者启用vararg来确定method，根据Tiger之前的版本调用。<br />2.如果第一不失败，再度解析Method，但是会允许boxing和unboxing.不考虑vararg。<br />3.如果第二步也失败，最后尝试,允许boxing和unboxing.考虑vararg。</span><br />所以输出的值是"double value"<br /><br />vararg:可变参数...
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/137568#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 02 Nov 2007 14:04:26 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/137568</link>
        <guid>http://linxizeng.javaeye.com/blog/137568</guid>
      </item>
      <item>
        <title>Tiger学习 之 primitive and wrapper&lt;boxing&gt;</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/137542" style="color:red;">http://linxizeng.javaeye.com/blog/137542</a>&nbsp;
          发表时间: 2007年11月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          java 99% 是对象处理的，还有1%是primitive（int，short，char...等字面值）的处理，与之相对的wrapper class 是Integer,Short,Character...等，因此，总需要要在primitive和wrapper之间不断的转换...<br /><br />Tiger来使用boxing和unboxing来解决这个问题...自动执行这些转换...即autoboxing和auto-unboxing..<br /><br />1.primitive to wrapper<br /><div class="quote_title">引用</div><div class="quote_div"><br /><span style="color: blue">//Tiger之前定义个Integer必须如下</span><br />Integer i = new Integer(100);<br /><span style="color: blue">//Tiger只需这样</span><br />Integer i = 100;<br />int j = 100；<br />Integer x  = j；<br /></div><br />还有，JVM将特定primitive都给box成相同的不可变的wrapper对象（ture，false -128——127,部分char）,放在缓存...高效率。<br />看下面两个例子..<br /><div class="quote_title">引用</div><div class="quote_div"><br />		Integer counter1 = 100;<br />		Integer counter2 = 100;<br />		System.out.print("counter1 == counter2: " ); <br />		System.out.println(counter1 == counter2);<br /><br />		Integer counter3 = 256;<br />		Integer counter4 = 256;<br />		System.out.print("counter3 == counter4: ");<br />		System.out.println(counter3 == counter4);<br /></div><br />结果输出：<br /><div class="quote_title">引用</div><div class="quote_div"><br />counter1 == counter2: true<br />counter3 == counter4: false<br /><br /></div><br />Why？<br /><span style="color: blue">因为counter1 和counter2 的值在-128——127之间,是不可变的wrapper，所以会将Integer boxing 成int类型，然后进行比较，所以是相等的。</span><br /><span style="color: blue">因为counter3 和counter4 的值不在-128——127之间,没有将Integer进行boxing因此比较的还是对象（两个对象是在不同的内存空间），所以不相等的。</span><br />2.wrapper to primitive<br /><div class="quote_title">引用</div><div class="quote_div"><br />		Integer j = 100;<br />		int i = j;<span style="color: blue">//自动将wrapper转换为primitive</span><br /></div><br />但是如果是这样..<br /><div class="quote_title">引用</div><div class="quote_div"><br />		Integer j = null;<br />		int i = j;<span style="color: blue">//将抛出NullPointerExcepion异常，所以建议初始换wrapper对象的值.</span><br /></div><br /><br />3.wrapper的递增与递减<br />wrapper对象也可以递增与递减，如<br /><div class="quote_title">引用</div><div class="quote_div"><br />		Integer counter = 1;<br />		counter++;<br />		--counter;<br /><span style="color: blue">//先把Integer先unboxing成int，递增或递减，然后再boxing回去</span><br /></div><br /><br />4.Boolean and boolean<br />通过Boolean 也可以直接使用逻辑运算符(||、&&、!....)，先unboxing成primitive(不可变的wrapper),再做比较...如<br /><div class="quote_title">引用</div><div class="quote_div"><br />		Boolean case1 = true;<br />		Boolean case2 = true;<br />		Boolean case3 = false;<br /><span style="color: blue">//Boolean对象先会被unboxing成primitive，然后进行比较,再boxing最后值成为Wrapper对象赋值给result</span><br />		Boolean result = (case1 || case2) && case3;<br /></div>
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/137542#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 02 Nov 2007 11:46:19 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/137542</link>
        <guid>http://linxizeng.javaeye.com/blog/137542</guid>
      </item>
      <item>
        <title>Tiger学习 之 Enum加入Method&lt;Enumerated&gt;</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/137267" style="color:red;">http://linxizeng.javaeye.com/blog/137267</a>&nbsp;
          发表时间: 2007年11月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在Enum加方法跟在class中加方法的是摸一样的..<br /><div class="quote_title">引用</div><div class="quote_div"><br />public enum AntStatus {<br />	INSERT,<br />	DELETE,<br />	UPDATE;<span style="color: blue">//必须加上分号";"，表示enum这一节的值结束</span><br />	<br />	private String enumObject; <span style="color: blue">//声明变量必须放在enum值的后面，否则编译器提示错误</span><br />	<br />	AntStatus(){<span style="color: blue">//默认是private，可以显示什么是private（多余），不能是public和protected</span><br />		enumObject = "Enum.....";<br />	}<br />	<br />	public static String getString() {<span style="color: blue">//方法可以不是static的。。。通过Enmu的元素调用，如：AntStatus.DELETE.xxx</span><br />		return "Hello Enum";<br />	}<br />}<br /></div><br /><br />值定的Class程序主体<br /><div class="quote_title">引用</div><div class="quote_div"><br />public enum AntStatus{<br />	INSERT(){<span style="color: blue">//每声明一个Enum的元素都会默认调用enum类的构造函数...相当于一个enum的实例</span><br />		public String perForm(String str){<br />			return "INSERT: " + str;<br />		}<br />	},<br />	DELETE(){<br />		public String perForm(String str){<br />			return "DELETE: " + str;<br />			<br />		}<br />	},<br />	UPDATE(){<br />		public String perForm(String str){<br />			return "UPDATE: " + str;<br />		}<br />	};<br /><br />	public abstract String perForm(String str);		<br />}<br /><br /></div><br />调用：<br /><div class="quote_title">引用</div><div class="quote_div"><br />System.out.println(AntStatus.DELETE.perForm("delete action"));<br />//输出： DELETE: delete action<br /></div><br />值定的Class程序主体不建议使用，看起来不清楚，可以通过switch来实现，控制程序的流程...<br /><br />能不能自己创建Enum？不行，因为java.util.Enum是不能被继承的...例如以下代码是不会通过的.<br /><div class="quote_title">引用</div><div class="quote_div"><br />public class TestEnum extends Enum{} <br /></div><br /><br />能不继承自己的Enum类？还是不行...
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/137267#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 01 Nov 2007 13:23:59 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/137267</link>
        <guid>http://linxizeng.javaeye.com/blog/137267</guid>
      </item>
      <item>
        <title> Tiger学习 之 Enum的Map和Set使用&lt;Enumerated&gt;</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/137079" style="color:red;">http://linxizeng.javaeye.com/blog/137079</a>&nbsp;
          发表时间: 2007年10月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          之 Map -> EnumMap<br />使用EnumMap能够确保不会弄乱顺序来赋初始值，或不经意地造成enumerated类型重新排列顺序<br /><br />用Enum来当Keyset....Map的index...看代码<br /><div class="quote_title">引用</div><div class="quote_div"><br />//定义一个enum <br />public enum AntStatus {<br />	INSERT,<br />	DELETE,<br />	UPDATE<br />}<br />//定义一个EnumMap<br />EnumMap&lt;AntStatus,String> eMap = new EnumMap&lt;AntStatus,String>(AntStatus.class);<br />		eMap.put(AntStatus.DELETE, "delete action");<br />		eMap.put(AntStatus.INSERT, "insert action");<br />		eMap.put(AntStatus.UPDATE, "update action");<br />		<br />		for (AntStatus status: AntStatus.values()) {<br />			System.out.println(eMap.get(status));<br />		}<br /></div><br /><br />输出...<br /><div class="quote_title">引用</div><div class="quote_div"><br />insert action<br />delete action<br />update action<br /></div><br /><br />方便，Tiger之前只能用定义一个class，然后里面定义很多 "public static final int xxx" 变量，然后通过数组来存取....（例子略）<br /> <br />之 Set -> EnumSet<br /><br /><div class="quote_title">引用</div><div class="quote_div"><br />EnumSet eSet = EnumSet.allOf(AntStatus.class);<br /><br />EnumSet eSet = EnumSet.of(AntStatus.DELETE,AntStatus.INSERT);<br /><span style="color: blue"><br />//还有很多创建EnumSet的方法...看API吧</span><br /></div>
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/137079#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 31 Oct 2007 17:58:56 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/137079</link>
        <guid>http://linxizeng.javaeye.com/blog/137079</guid>
      </item>
      <item>
        <title>Tiger学习 之 switch中的Enum&lt;Enumerated&gt; </title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/137033" style="color:red;">http://linxizeng.javaeye.com/blog/137033</a>&nbsp;
          发表时间: 2007年10月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Tiger之前的switch只能运用 int、short、char、bye值（不能用String很麻烦...）,现在支持Enum...<br /><div class="quote_title">引用</div><div class="quote_div"><br />switch (te.getEn()) { <span style="color: blue">//te.getEn() 取得一个Enum对象，进行case</span><br />  case A : System.out.println("Hello A");<br />  case B : System.out.println("Hello B");<br /> <span style="color: blue"> //奇怪吧？关于 case A，case B，不能把Enum加上，如 EnumFirst.A 会出错的...所以要小心，必须case到所有的值（如果需要）</span><br />  default: System.out.println("Hello default");<span style="color: blue">//推荐加上default，防止Enum变化，没有捕获到</span><br />}<br /></div><br /><br />关于Enum的编译...<br />编译的时候不会转化成case ...(nt、short、char、bye）值的，有两种处理方式：<br />1.会创建一个 jump table，然后通过ordinal来处理（同一编译单元）<br />2.转换成if else ....判断（不同一编译单元）
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/137033#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 31 Oct 2007 15:58:12 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/137033</link>
        <guid>http://linxizeng.javaeye.com/blog/137033</guid>
      </item>
      <item>
        <title>Tiger学习 之 迭代Enum值&lt;Enumerated&gt;.</title>
        <author>linxizeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linxizeng.javaeye.com">linxizeng</a>&nbsp;
          链接：<a href="http://linxizeng.javaeye.com/blog/136787" style="color:red;">http://linxizeng.javaeye.com/blog/136787</a>&nbsp;
          发表时间: 2007年10月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          取出Enum的所有值，直接看代码...<br /><div class="quote_title">引用</div><div class="quote_div"><br />public enum EnumFirst {A, B, C, D, F, INCOMPLETE}<br />EnumFirst ef[] = EnumFirst.values();<span style="color: blue">//取出来的是EnumFirst实例数组</span><br />System.out.print("EnumFirst values are: ");<br />for (int i = 0; i &lt;ef.length; i++) {<br />    System.out.print(ef[i] + " ");<span style="color: blue">//自动调用toString类型，输出字符串</span><br />}<br /><br /></div><br /><br />输出结果：<br /><div class="quote_title">引用</div><div class="quote_div"><br />EnumFirst values are: A B C D F INCOMPLETE <br /></div><br />Cool...
          <br/>
          <span style="color:red;">
            <a href="http://linxizeng.javaeye.com/blog/136787#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 30 Oct 2007 17:51:22 +0800</pubDate>
        <link>http://linxizeng.javaeye.com/blog/136787</link>
        <guid>http://linxizeng.javaeye.com/blog/136787</guid>
      </item>
  </channel>
</rss>