<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>fire314159</title>
    <description></description>
    <link>http://fire314159.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>hibernate one to many cascade</title>
        <author>fire314159</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fire314159.javaeye.com">fire314159</a>&nbsp;
          链接：<a href="http://fire314159.javaeye.com/blog/150342" style="color:red;">http://fire314159.javaeye.com/blog/150342</a>&nbsp;
          发表时间: 2007年12月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>在改别人的代码过程中，有一个one to many 的映射。已经在one方的set里面加了cascade=all-delete-orphan。但执行时报错：</p>
<p><strong><font face="Courier New">IdentifierGenerationException:&nbsp;ids&nbsp;for&nbsp;this&nbsp;class&nbsp;must&nbsp;be&nbsp;manually&nbsp;assigned&nbsp;before calling&nbsp;save()</font></strong></p>
<p>查看了数据库表的定义，primary key的生成方法是auto-increment， 照理由不需要人工设定。顺着这个思路，最后发现原来在hbm.xml的设置中，之前的人把id的generator定义为了assigned。把它改回native后，一切正常。</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://fire314159.javaeye.com/blog/150342#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>Sun, 23 Dec 2007 23:02:44 +0800</pubDate>
        <link>http://fire314159.javaeye.com/blog/150342</link>
        <guid>http://fire314159.javaeye.com/blog/150342</guid>
      </item>
      <item>
        <title>IE cache缓存 所带来的问题</title>
        <author>fire314159</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fire314159.javaeye.com">fire314159</a>&nbsp;
          链接：<a href="http://fire314159.javaeye.com/blog/150162" style="color:red;">http://fire314159.javaeye.com/blog/150162</a>&nbsp;
          发表时间: 2007年12月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>一个问题曾经困扰了很久，最近才找到自己觉得合理的解释。</p>
<p>曾经用struts的多语言功能写了一些东西，用的是locale这个对象（怎么做的就不讲了，这里不是想讲struts）。</p>
<p>在本地测试没有问题，中文英文切换都OK。放到远程服务器上自己试了也觉得ok。但之后不断有人反映，有时候会很怪异的在英文的页面环境下点击链接后，居然又回到了中文的页面环境！我第一个反应肯定觉得是cache的问题。然后仔细检查了一次所有jsp页面的html &lt;meta&gt; tag,确保了所有的no cache和expire属性都设好了。然后要求大家都把IE的检查属性设置到&ldquo;每次检查&rdquo;。在自己机子上点击了无数遍，中文英文反复切换，似乎没有问题了。但没多久又有人投诉问题又出现了。</p>
<p>这里要介绍一个工具叫做httpwatch，是一个IE嵌入式的工具，用来检测IE的所有HTTP通讯的。没有了这个工具，我很难找到问题所在（当然可能有大牛一早知道，但谁都要经历不知道到知道的过程）。</p>
<p>jsp页面是通过例如以下的link来调用struts action切换语言环境的，<a href="http://localhost/xxx/langAction.do?lang='zh'">http://localhost/xxx/langAction.do?lang='zh'</a>。但发现这条link被IE缓存了，也就是说很多时候服务器根本就没有收到这个request。解决的办法可以是在link后面加上一个random number或者timestamp，问题是很多这样的link是hardcode到了flash里面（修改flash的代码？&nbsp;），所以这种办法行不通。有趣的是，如果这个action仅仅是修改了session里面的locale属性，而不通知front controller 去返回结果页面给用户的话（也就是 return null），这个是肯定会cache的。然而如果要返回一个页面给用户，这个cache的频度会小很多。</p>
<p>最后推断，问题出在了两处地方。</p>
<p>1. IE的cache 也许是用url link + page result 来存储和判断是否应该使用cache，而不是真正发出request。在return null的那种情况，判断的依据是url link + null。</p>
<p>2。在jsp页面中，光是使用html的&lt;meta&gt; tag是无法禁止缓存的。一定要加上</p>
<p><font face="Arial">response.setHeader(&quot;Pragma&quot;,&quot;No-cache&quot;); <br />
response.setHeader(&quot;Cache-Control&quot;,&quot;no-cache&quot;); <br />
response.setDateHeader(&quot;Expires&quot;, 0);</font></p>
<p><font face="Arial">有人肯定会说，这个跟html的tag设置没有不同啊。的确，我也觉得，但实践证明，没有这几句，光靠html tag不行。</font></p>
<p>所以当action会返回页面时，有以下这两种情况：</p>
<p>a，返回的页面没有写上上面的禁止cache的语句（或者只写了html tag）。IE存储的是URL link + page result(cache eabled)。这也就是导致了之前为什么还会有cache的原因</p>
<p>b，返回的页面写上了禁止cache语句&nbsp;。IE存储的是URL link + page result(cache disabled)。这样才能够实现到我们想要的目的。每次都会真正的发出request。</p>
<p>PS：IE的检查设置一点都信不过，尽管调到最高级别，如果没有上述措施，一样会cache。而且，你总不能告诉全世界的用户为了看你的网站去修改一下IE吧。（其他浏览器没有试验过）</p>
          <br/>
          <span style="color:red;">
            <a href="http://fire314159.javaeye.com/blog/150162#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, 22 Dec 2007 17:07:58 +0800</pubDate>
        <link>http://fire314159.javaeye.com/blog/150162</link>
        <guid>http://fire314159.javaeye.com/blog/150162</guid>
      </item>
      <item>
        <title>关于&quot;response   already   committed&quot; 的问题</title>
        <author>fire314159</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fire314159.javaeye.com">fire314159</a>&nbsp;
          链接：<a href="http://fire314159.javaeye.com/blog/150147" style="color:red;">http://fire314159.javaeye.com/blog/150147</a>&nbsp;
          发表时间: 2007年12月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>最近遇到一个问题，觉得挺有意思。</p>
<p>现在正在将一个项目从web service 转到 EJB2 (是否觉得很奇怪？)，转移过程中出现了一些问题。其中一个exception如下：</p>
<p>java.lang.IllegalStateException: &nbsp; <strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">response</strong> &nbsp; <strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">already</strong> &nbsp; <strong style="COLOR: black; BACKGROUND-COLOR: #99ff99">committed</strong></p>
<p>当时第一个反应是可能页面 forward跳转或者buffer size不够了。因为我们用的是公司自己开发的web framework。所以所有的request flow control 都是封装起来了。xml配置文件之前在webservice下是可以的，页面也一直没有问题。</p>
<p>在网上google了一下，陈述的观点无非是response已经commit过了，也许是因为人为，也许是因为页面大小超过了page的buffer。于是乎尝试用response.setBufferSize(）修改page大小，但没有效果。由于第一次遇到这样的问题，而且用的是websphere的portal和公司的framework，所以一开始找不到头绪。</p>
<p>确定是jsp页面的问题后，开始用最笨的方法，尝试着删减页面的代码，最后问题出在了一句代码。</p>
<p>HashMap map = xxxResultBean.getResultMap();</p>
<p>原来这个method返回的是一个TreeMap，用HashMap来reference就出现了casting的问题。由于这个Bean里面定义的field是Map，所以complie是不会有问题，直到page真的load的时候才会crash。</p>
<p>但问题来了，为什么之前在web&nbsp; service的时候没有问题，但到了EJB就不行了呢？原来在web service和EJB的时候，对class的定义会有所不同，EJB比较遵从原来的class，而web service则不太一样。</p>
<p>一个小问题，用最笨的方法detect。</p>
          <br/>
          <span style="color:red;">
            <a href="http://fire314159.javaeye.com/blog/150147#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, 22 Dec 2007 16:30:16 +0800</pubDate>
        <link>http://fire314159.javaeye.com/blog/150147</link>
        <guid>http://fire314159.javaeye.com/blog/150147</guid>
      </item>
      <item>
        <title>tomcat拒绝响应</title>
        <author>fire314159</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fire314159.javaeye.com">fire314159</a>&nbsp;
          链接：<a href="http://fire314159.javaeye.com/blog/141041" style="color:red;">http://fire314159.javaeye.com/blog/141041</a>&nbsp;
          发表时间: 2007年11月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          做的一个网站，比较简单，用的是普通的jdbc来连接，没做连接池，因为不会超过20个人同时访问。<br />在本地测试时一切正常。放到虚拟空间的服务器后，有时在执行上传图片的操作中停止响应（页面进度条走到一半不动），此后等了许久都没有任何错误返回，打开所有要到数据库索取数据的页面全都没有响应，但其他页面正常。重启tomcat后又恢复正常。<br /><br />配置是这样，jdk 1.5， tomcat 5.5， 虚拟空间服务器是linux。<br />使用的上传组件是smartupload，每次上传一张图片，大小50k左右。<br /><br />查看tomcat的log，唯一有点价值的是这个<br />Nov 16, 2007 12:08:55 AM org.apache.catalina.core.StandardContext start<br />INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/] has already been started<br />Nov 16, 2007 12:09:00 AM org.apache.catalina.core.StandardWrapper unload<br />INFO: Waiting for 3 instance(s) to be deallocated<br />Nov 16, 2007 12:09:01 AM org.apache.catalina.core.StandardWrapper unload<br />INFO: Waiting for 3 instance(s) to be deallocated<br />Nov 16, 2007 12:09:02 AM org.apache.catalina.core.StandardWrapper unload<br />INFO: Waiting for 3 instance(s) to be deallocated<br />Nov 16, 2007 12:09:02 AM org.apache.catalina.core.StandardWrapper unload<br />INFO: Waiting for 9 instance(s) to be deallocated<br />Nov 16, 2007 12:09:03 AM org.apache.catalina.core.StandardWrapper unload<br />INFO: Waiting for 9 instance(s) to be deallocated<br />Nov 16, 2007 12:09:04 AM org.apache.catalina.core.StandardWrapper unload<br />INFO: Waiting for 9 instance(s) to be deallocated<br />Nov 16, 2007 12:28:24 AM <br /><br />自己第一感觉是jdbc connection 没有释放，导致拒绝响应，但检查过，每次调用都应该close掉了。而且远程tomcat停止响应含数据操作页面后，自己本地tomcat连接到远程数据库还是能够正常。<br /><br />第二个怀疑是smartupload有bug。目前自己的所有图片都用时间来命名，保证没有中文，第二，图片大小不会超过60k，应该不会out of memory。<br /><br />今天晚上似乎没有执行upload图片的操作，但问题依然出现了。似乎更加是我自己程序的问题，时间长了，要么out of memory，或者out of connection了。请遇到过这样问题的同志帮忙。
          <br/>
          <span style="color:red;">
            <a href="http://fire314159.javaeye.com/blog/141041#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 01:02:45 +0800</pubDate>
        <link>http://fire314159.javaeye.com/blog/141041</link>
        <guid>http://fire314159.javaeye.com/blog/141041</guid>
      </item>
      <item>
        <title>StringTokenizer</title>
        <author>fire314159</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fire314159.javaeye.com">fire314159</a>&nbsp;
          链接：<a href="http://fire314159.javaeye.com/blog/137983" style="color:red;">http://fire314159.javaeye.com/blog/137983</a>&nbsp;
          发表时间: 2007年11月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          尽管并不必要IO库的一部分，但StringTokenizer提供了与StreamTokenizer极相似的功能，所以在这里一并讲述。<br />
StringTokenizer的作用是每次返回字串内的一个记号。这些记号是一些由制表站、空格以及新行分隔的连续字符。因此，字串&ldquo;Where is my cat?&rdquo;的记号分别是&ldquo;Where&rdquo;、&ldquo;is&rdquo;、&ldquo;my&rdquo;和&ldquo;cat?&rdquo;。与StreamTokenizer类似，我们可以指示StringTokenizer按照我们的愿望分割输入。但对于StringTokenizer，却需要向构建器传递另一个参数，即我们想使用的分隔字串。通常，如果想进行更复杂的操作，应使用StreamTokenizer。<br />
可用nextToken()向StringTokenizer对象请求字串内的下一个记号。该方法要么返回一个记号，要么返回一个空字串（表示没有记号剩下）。<br />
作为一个例子，下述程序将执行一个有限的句法分析，查询键短语序列，了解句子暗示的是快乐亦或悲伤的含义。<br />
<blockquote>
<pre>//: AnalyzeSentence.java
// Look for particular sequences
// within sentences.
import java.util.*;

public class AnalyzeSentence {
  public static void main(String[] args) {
    analyze(&quot;I am happy about this&quot;);
    analyze(&quot;I am not happy about this&quot;);
    analyze(&quot;I am not! I am happy&quot;);
    analyze(&quot;I am sad about this&quot;);
    analyze(&quot;I am not sad about this&quot;);
    analyze(&quot;I am not! I am sad&quot;);
    analyze(&quot;Are you happy about this?&quot;);
    analyze(&quot;Are you sad about this?&quot;);
    analyze(&quot;It's you! I am happy&quot;);
    analyze(&quot;It's you! I am sad&quot;);
  }
  static StringTokenizer st;
  static void analyze(String s) {
    prt(&quot;\nnew sentence &gt;&gt; &quot; + s);
    boolean sad = false;
    st = new StringTokenizer(s);
    while (st.hasMoreTokens()) {
      String token = next();
      // Look until you find one of the
      // two starting tokens:
      if(!token.equals(&quot;I&quot;) &amp;&amp;
         !token.equals(&quot;Are&quot;))
        continue; // Top of while loop
      if(token.equals(&quot;I&quot;)) {
        String tk2 = next();
        if(!tk2.equals(&quot;am&quot;)) // Must be after I
          break; // Out of while loop
        else {
          String tk3 = next();
          if(tk3.equals(&quot;sad&quot;)) {
            sad = true;
            break; // Out of while loop
          }
          if (tk3.equals(&quot;not&quot;)) {
            String tk4 = next();
            if(tk4.equals(&quot;sad&quot;))
              break; // Leave sad false
            if(tk4.equals(&quot;happy&quot;)) {
              sad = true;
              break;
            }
          }
        }
      }
      if(token.equals(&quot;Are&quot;)) {
        String tk2 = next();
        if(!tk2.equals(&quot;you&quot;))
          break; // Must be after Are
        String tk3 = next();
        if(tk3.equals(&quot;sad&quot;))
          sad = true;
        break; // Out of while loop
      }
    }
    if(sad) prt(&quot;Sad detected&quot;);
  }
  static String next() {
    if(st.hasMoreTokens()) {
      String s = st.nextToken();
      prt(s);
      return s;
    } 
    else
      return &quot;&quot;;
  }
  static void prt(String s) {
    System.out.println(s);
  }
} ///:~</pre>
</blockquote>对于准备分析的每个字串，我们进入一个while循环，并将记号从那个字串中取出。请注意第一个if语句，假如记号既不是&ldquo;I&rdquo;，也不是&ldquo;Are&rdquo;，就会执行continue（返回循环起点，再一次开始）。这意味着除非发现一个&ldquo;I&rdquo;或者&ldquo;Are&rdquo;，才会真正得到记号。大家可能想用==代替equals()方法，但那样做会出现不正常的表现，因为==比较的是句柄值，而equals()比较的是内容。<br />
analyze()方法剩余部分的逻辑是搜索&ldquo;I am sad&rdquo;（我很忧伤、&ldquo;I am nothappy&rdquo;（我不快乐）或者&ldquo;Are you sad?&rdquo;（你悲伤吗？）这样的句法格式。若没有break语句，这方面的代码甚至可能更加散乱。大家应注意对一个典型的解析器来说，通常都有这些记号的一个表格，并能在读取新记号的时候用一小段代码在表格内移动。<br />
无论如何，只应将StringTokenizer看作StreamTokenizer一种简单而且特殊的简化形式。然而，如果有一个字串需要进行记号处理，而且StringTokenizer的功能实在有限，那么应该做的全部事情就是用StringBufferInputStream将其转换到一个数据流里，再用它创建一个功能更强大的StreamTokenizer。
          <br/>
          <span style="color:red;">
            <a href="http://fire314159.javaeye.com/blog/137983#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 09:39:30 +0800</pubDate>
        <link>http://fire314159.javaeye.com/blog/137983</link>
        <guid>http://fire314159.javaeye.com/blog/137983</guid>
      </item>
      <item>
        <title>Math.ceil,Math.round,Math.floor</title>
        <author>fire314159</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fire314159.javaeye.com">fire314159</a>&nbsp;
          链接：<a href="http://fire314159.javaeye.com/blog/137979" style="color:red;">http://fire314159.javaeye.com/blog/137979</a>&nbsp;
          发表时间: 2007年11月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Math.ceil求最小的整数但不小于本身.&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;Math.round求本身的四舍五入。&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;Math.floor求最大的整数但不大于本身.&nbsp;&nbsp;&nbsp;
          <br/>
          <span style="color:red;">
            <a href="http://fire314159.javaeye.com/blog/137979#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 09:24:37 +0800</pubDate>
        <link>http://fire314159.javaeye.com/blog/137979</link>
        <guid>http://fire314159.javaeye.com/blog/137979</guid>
      </item>
      <item>
        <title>instanceof运算符、Class的isInstance( )与isAssignableFrom</title>
        <author>fire314159</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fire314159.javaeye.com">fire314159</a>&nbsp;
          链接：<a href="http://fire314159.javaeye.com/blog/137978" style="color:red;">http://fire314159.javaeye.com/blog/137978</a>&nbsp;
          发表时间: 2007年11月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>
<div><font color="#008000">instanceof</font>运算符 只被用于对象引用变量，检查左边的被测试对象 是不是 右边类或接口的 实例化。如果被测对象是null值，则测试结果总是false。</div>
<div>形象地：<font style="BACKGROUND-COLOR: #ffff99">自身实例或子类实例 <font color="#008000">instanceof</font> 自身类</font>&nbsp;<em>&nbsp; </em>返回true</div>
<div>例： String s=new String(&quot;javaisland&quot;);</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(s <font color="#008000">instanceof</font> String); //true</div>
<div>&nbsp;</div>
<div>Class类的<font color="#008000" style="BACKGROUND-COLOR: #ffffff">isInstance</font>(Object obj)方法，obj是被测试的对象，如果obj是调用这个方法的class或接口 的实例，则返回true。这个方法是instanceof运算符的动态等价。</div>
<div>形象地：<font style="BACKGROUND-COLOR: #ffff99">自身类<font color="#008000"><font color="#000000">.class</font>.isInstance</font>(自身实例或子类实例)</font>&nbsp; 返回true</div>
<div>例：String s=new String(&quot;javaisland&quot;);</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(String.class.<font color="#008000">isInstance</font>(s)); //true</div>
<div>&nbsp;</div>
<div>Class类的<font color="#008000">isAssignableFrom</font>(Class cls)方法，如果调用这个方法的class或接口 与 参数cls表示的类或接口相同，或者是参数cls表示的类或接口的父类，则返回true。</div>
<div>形象地：<font style="BACKGROUND-COLOR: #ffff99">自身类.class.<font color="#008000">isAssignableFrom</font>(自身类或子类.class)</font>&nbsp; 返回true</div>
<div>例：System.out.println(ArrayList.class.<font color="#008000">isAssignableFrom</font>(Object.class));&nbsp; //false</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(Object.class.<font color="#008000">isAssignableFrom</font>(ArrayList.class));&nbsp; //true</div>
          <br/>
          <span style="color:red;">
            <a href="http://fire314159.javaeye.com/blog/137978#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>Mon, 05 Nov 2007 09:20:03 +0800</pubDate>
        <link>http://fire314159.javaeye.com/blog/137978</link>
        <guid>http://fire314159.javaeye.com/blog/137978</guid>
      </item>
      <item>
        <title>关于javabean的属性深拷贝</title>
        <author>fire314159</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fire314159.javaeye.com">fire314159</a>&nbsp;
          链接：<a href="http://fire314159.javaeye.com/blog/109677" style="color:red;">http://fire314159.javaeye.com/blog/109677</a>&nbsp;
          发表时间: 2007年08月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          目前正在写类似于beanutils.describe的方法。也就是将一个javabean的所有可读属性用hashmap返回。之所以要重写，是因为观察过他的源代码，发现beanutils返回的hashmap里面全部属性值都是以String来存放。而目前我们的需求是，按照原来bean属性的类型来存放。当其中bean属性不是基本类型，而是类对象的话，存放在hashmap的值还必须是deep copy，也就是说，不能简单的把bean属性的对象引用存放进去.因为不想caller修改hashmap里面的值的时候影响到原来的javabean.<br /><br />各位有什么好的方法？
          <br/>
          <span style="color:red;">
            <a href="http://fire314159.javaeye.com/blog/109677#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, 07 Aug 2007 10:34:10 +0800</pubDate>
        <link>http://fire314159.javaeye.com/blog/109677</link>
        <guid>http://fire314159.javaeye.com/blog/109677</guid>
      </item>
  </channel>
</rss>