﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Growing spark[暂停在blogjava的更新，以后会继续在http://ky1in.dilys.cn上继续写blog]-随笔分类-读书笔记</title><link>http://www.blogjava.net/ky1in/category/13095.html</link><description>人生不是学期制，人生没有寒暑假。</description><language>zh-cn</language><lastBuildDate>Thu, 01 Mar 2007 02:44:57 GMT</lastBuildDate><pubDate>Thu, 01 Mar 2007 02:44:57 GMT</pubDate><ttl>60</ttl><item><title>在QQ群里讨论了关于==和equals()的问题.</title><link>http://www.blogjava.net/ky1in/archive/2006/07/25/60089.html</link><dc:creator>小猪</dc:creator><author>小猪</author><pubDate>Tue, 25 Jul 2006 15:42:00 GMT</pubDate><guid>http://www.blogjava.net/ky1in/archive/2006/07/25/60089.html</guid><wfw:comment>http://www.blogjava.net/ky1in/comments/60089.html</wfw:comment><comments>http://www.blogjava.net/ky1in/archive/2006/07/25/60089.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ky1in/comments/commentRss/60089.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ky1in/services/trackbacks/60089.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal">
				<st1:chsdate isrocdate="False" islunardate="False" day="25" month="7" year="2007" w:st="on">
						<span lang="EN-US">2007</span>
						<span style="font-family: 宋体;">年</span>
						<span lang="EN-US">7</span>
						<span style="font-family: 宋体;">月</span>
						<span lang="EN-US">25</span>
						<span style="font-family: 宋体;">日</span>
				</st1:chsdate>
				<span lang="EN-US">
						<span style="">   </span>
				</span>
				<span style="font-family: 宋体;">星期二</span>
				<span lang="EN-US">
						<span style="">          </span>
				</span>
				<span style="font-family: 宋体;">晴</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">----------------------------------------------------------------------------------------------------------------------</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">以下是</span>
				<span lang="EN-US">QQ</span>
				<span style="font-family: 宋体;">群上的聊天记录，以及我的一些注释。</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">狂风扫落叶</span>
				<span lang="EN-US"> 10:23:08</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">为什么</span>
				<span lang="EN-US">String</span>
				<span style="font-family: 宋体;">类要重写</span>
				<span lang="EN-US">Object</span>
				<span style="font-family: 宋体;">类的</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法啊？</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">水圣</span>
				<span lang="EN-US"> 10:21:14</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">看看你代码</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">狂风扫落叶</span>
				<span lang="EN-US"> 10:23:08</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不是</span>
				<span lang="EN-US">,</span>
				<span style="font-family: 宋体;">有朋友问我这个问题</span>
				<span lang="EN-US">,</span>
				<span style="font-family: 宋体;">我不知道怎么回答</span>
				<span lang="EN-US">,</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">好像是为了区分</span>
				<span style="font-family: 宋体;">对像比较的时候</span>
				<span lang="EN-US"> == </span>
				<span style="font-family: 宋体;">和</span>
				<span lang="EN-US">equals </span>
				<span style="font-family: 宋体;">的有所区别</span>
				<span lang="EN-US">
						<span style="">  </span>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">天天好心情</span>
				<span lang="EN-US"> 10:23:34</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">==</span>
				<span style="font-family: 宋体;">不是比较对象的</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">阿黄</span>
				<span lang="EN-US"> 10:24:15</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">我记得的好象是</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">==</span>
				<span style="font-family: 宋体;">实际上是比较的两个字符串的物理内存地址。</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">“</span>
				<span lang="EN-US">A</span>
				<span style="font-family: 宋体;">”</span>
				<span lang="EN-US">==</span>
				<span style="font-family: 宋体;">“</span>
				<span lang="EN-US">A</span>
				<span style="font-family: 宋体;">”结果肯定是不相等的</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">阿黄</span>
				<span lang="EN-US"> 10:24:47</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">其中“</span>
				<span lang="EN-US">A</span>
				<span style="font-family: 宋体;">”表示一个字符串</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">水圣</span>
				<span lang="EN-US"> 10:25:51</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">==</span>
				<span style="font-family: 宋体;">实际上是比较的两个字符串的物理内存地址</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">狂风扫落叶</span>
				<span lang="EN-US"> 10:25:58</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">to </span>
				<span style="font-family: 宋体;">阿黄</span>
				<span style="font-family: 宋体;">你说的是字符串对象，他重写了</span>
				<span lang="EN-US">Object</span>
				<span style="font-family: 宋体;">的</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">所以会那样</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:26:04</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">＝＝比较对象的地址，</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">比价两个对象的值（如果默认继承自</span>
				<span lang="EN-US">OBJECT</span>
				<span style="font-family: 宋体;">，则</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">比较两个对象地址），</span>
				<span lang="EN-US">String class override</span>
				<span style="font-family: 宋体;">了</span>
				<span lang="EN-US">Object class</span>
				<span style="font-family: 宋体;">的</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法，实现了自己的方法，所以</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">比较的是实际值而非地址</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">阿黄</span>
				<span lang="EN-US"> 10:26:45</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">我说的就是这个意思了</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:26:54</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">另外</span>
				<span lang="EN-US">String class</span>
				<span style="font-family: 宋体;">在</span>
				<span lang="EN-US">JAVA</span>
				<span style="font-family: 宋体;">中比较特殊的地方是他采取了值对象模式以及享元模式</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:27:25</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">这意味着普通的比较会出现正确的结果</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">String a = "aaa";</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">String b = "aaa";</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">a == b is equals </span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:28:33</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">只觉上这个是错误的，因为</span>
				<span lang="EN-US">String</span>
				<span style="font-family: 宋体;">是对象，不是简单数值，所以他们应该是不同的对象，但这里他们是相同的，原因在于享元模式让</span>
				<span lang="EN-US">aaa</span>
				<span style="font-family: 宋体;">保留下来，并再下次使用时赋予</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:29:14</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">但是这样就不对</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">String a = new String("aaa");</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">String b = new String("aaa");</span>
		</p>
		<p class="MsoNormal" style="text-indent: 168pt;">
				<span lang="EN-US">a == b is false <span style="">                    </span>//<span style="">          </span></span>
				<span style="font-family: 宋体;">其实讲到这里应该都清楚了</span>
				<span lang="EN-US">object</span>
				<span style="font-family: 宋体;">类的</span>
				<span lang="EN-US">equals()</span>
				<span style="font-family: 宋体;">跟</span>
				<span lang="EN-US">==</span>
				<span style="font-family: 宋体;">的作用是一样的，但是继承</span>
				<span lang="EN-US">object</span>
				<span style="font-family: 宋体;">类的</span>
				<span style="font-family: 宋体;">子类一般都会重写</span>
				<span lang="EN-US">equals()</span>
				<span style="font-family: 宋体;">方法，这样做的目的是为了</span>
				<span style="font-family: 宋体;">很好地区分</span>
				<span lang="EN-US">equals()</span>
				<span style="font-family: 宋体;">的作用，</span>
				<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">==</span>
				<span style="font-size: 10.5pt; font-family: 宋体;">只负责比较两个对象</span>
				<span style="font-family: 宋体;">的物理地址是否相同，</span>
				<span lang="EN-US">equals()</span>
				<span style="font-family: 宋体;">方法负责比较两个对象</span>
				<span lang="EN-US">
				</span>
				<span style="font-family: 宋体;">的内容（或者说是值，</span>
				<span lang="EN-US">value</span>
				<span style="font-family: 宋体;">）是否相等。//</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">阿黄</span>
				<span lang="EN-US"> 10:29:33</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">这种问题应该属于比较底层的了</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">没事了可以看下</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">深入理解计算机系统。。。讲解很精辟</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">狂风扫落叶</span>
				<span lang="EN-US"> 10:30:34</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">受教</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">水圣</span>
				<span lang="EN-US"> 10:33:17</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">：</span>
				<span lang="EN-US">"=="</span>
				<span style="font-family: 宋体;">和</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法究竟有什么区别？</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">==</span>
				<span style="font-family: 宋体;">操作符专门用来比较变量的值是否相等。比较好理解的一点是：</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">int a=10;</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">int b=10;</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">则</span>
				<span lang="EN-US">a==b</span>
				<span style="font-family: 宋体;">将是</span>
				<span lang="EN-US">true</span>
				<span style="font-family: 宋体;">。</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">但不好理解的地方是：</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">String a=new String("foo");</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">String b=new String("foo");</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">则</span>
				<span lang="EN-US">a==b</span>
				<span style="font-family: 宋体;">将返回</span>
				<span lang="EN-US">false</span>
				<span style="font-family: 宋体;">。</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">对象变量其实是一个引用，它们的值是指向对象所在的内存地址，而不是对象本身。</span>
				<span lang="EN-US">a</span>
				<span style="font-family: 宋体;">和</span>
				<span lang="EN-US">b</span>
				<span style="font-family: 宋体;">都使用了</span>
				<span lang="EN-US">new</span>
				<span style="font-family: 宋体;">操作符，意味着将在内存中产生两个内容为</span>
				<span lang="EN-US">"foo"</span>
				<span style="font-family: 宋体;">的字符串，既然是“两个”，它们自然位于不同的内存地址。</span>
				<span lang="EN-US">a</span>
				<span style="font-family: 宋体;">和</span>
				<span lang="EN-US">b</span>
				<span style="font-family: 宋体;">的值其实是两个不同的内存地址的值，所以使用</span>
				<span lang="EN-US">"=="</span>
				<span style="font-family: 宋体;">操作符，结果会是</span>
				<span lang="EN-US">false</span>
				<span style="font-family: 宋体;">。诚然，</span>
				<span lang="EN-US">a</span>
				<span style="font-family: 宋体;">和</span>
				<span lang="EN-US">b</span>
				<span style="font-family: 宋体;">所指的对象，它们的内容都是</span>
				<span lang="EN-US">"foo"</span>
				<span style="font-family: 宋体;">，应该是“相等”，但是</span>
				<span lang="EN-US">==</span>
				<span style="font-family: 宋体;">操作符并不涉及到对象内容的比较。</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">对象内容的比较，正是</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法做的事。</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">看一下</span>
				<span lang="EN-US">Object</span>
				<span style="font-family: 宋体;">对象的</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法是如何实现的：</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">boolean equals(Object o){</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">return this==o;</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">}</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">Object</span>
				<span style="font-family: 宋体;">对象默认使用了</span>
				<span lang="EN-US">==</span>
				<span style="font-family: 宋体;">操作符。所以如果你自创的类没有覆盖</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法，那你的类使用</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">和使用</span>
				<span lang="EN-US">==</span>
				<span style="font-family: 宋体;">会得到同样的结果。同样也可以看出，</span>
				<span lang="EN-US">Object</span>
				<span style="font-family: 宋体;">的</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法没有达到</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法应该达到的目标：比较两个对象内容是否相等。因为答案应该由类的创建者决定，所以</span>
				<span lang="EN-US">Object</span>
				<span style="font-family: 宋体;">把这个任务留给了类的创建者。</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">看一下一个极端的类：</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">Class Monster{</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">private String content;</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">...</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">boolean equals(Object another){ return
true;}</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">}</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">我覆盖了</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法。这个实现会导致无论</span>
				<span lang="EN-US">Monster</span>
				<span style="font-family: 宋体;">实例内容如何，它们之间的比较永远返回</span>
				<span lang="EN-US">true</span>
				<span style="font-family: 宋体;">。</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">所以当你是用</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法判断对象的内容是否相等，请不要想当然。因为可能你认为相等，而这个类的作者不这样认为，而类的</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法的实现是由他掌握的。如果你需要使用</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法，或者使用任何基于散列码的集合（</span>
				<span lang="EN-US">HashSet,HashMap,HashTable</span>
				<span style="font-family: 宋体;">），请察看一下</span>
				<span lang="EN-US">java doc</span>
				<span style="font-family: 宋体;">以确认这个类的</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">逻辑是如何实现的。</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<span style=""> </span>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 10:45:28</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">Class Monster{</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">private String content;</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">...</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">boolean equals(Object another){ return
true;}</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">}</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">这个例子有点看不懂了。一个</span>
				<span lang="EN-US">Monster</span>
				<span style="font-family: 宋体;">的类对象怎么会去跟一个</span>
				<span lang="EN-US">Object</span>
				<span style="font-family: 宋体;">的类对象比较？</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 10:45:52</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">本身这样的比较就没意义吧？</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不二</span>
				<span lang="EN-US"> 10:46:22</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">为什么没意义</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">阿黄</span>
				<span lang="EN-US"> 10:46:41</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">恩</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">类好象都是从</span>
				<span lang="EN-US">object</span>
				<span style="font-family: 宋体;">继承来的，应该可以比较</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">水圣</span>
				<span lang="EN-US"> 10:46:57</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">比较极端而已</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">阿黄</span>
				<span lang="EN-US"> 10:47:17</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">一般的类都是默认从</span>
				<span lang="EN-US">java<span style="">  </span>object</span>
				<span style="font-family: 宋体;">继承</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 10:48:21</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">我小学用“像”造句</span>
				<span lang="EN-US">"</span>
				<span style="font-family: 宋体;">我像我爸爸</span>
				<span lang="EN-US">"</span>
				<span style="font-family: 宋体;">就被老师骂过啊。</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:48:41</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">因为</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法再</span>
				<span lang="EN-US">Object class</span>
				<span style="font-family: 宋体;">中的定义为</span>
				<span lang="EN-US"> public boolean equals(Object
o);</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">当子类方法</span>
				<span lang="EN-US">override</span>
				<span style="font-family: 宋体;">父类方法时，函数申明特征必须相同，所以必须使用</span>
				<span lang="EN-US">Object <span style="">  </span>//</span>
				<span style="font-family: 宋体;">这句话什么意思我还不是很懂。就</span>
				<span lang="EN-US">Monster</span>
				<span style="font-family: 宋体;">类来说</span>
				<span lang="EN-US">Object</span>
				<span style="font-family: 宋体;">是其父类，所以</span>
				<span lang="EN-US">Monster</span>
				<span style="font-family: 宋体;">的</span>
				<span lang="EN-US">equals()</span>
				<span style="font-family: 宋体;">的操作数必须是其父类的对象？</span>
				<span lang="EN-US">//</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">阿黄</span>
				<span lang="EN-US"> 10:49:57</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">呵呵</span>
				<span lang="EN-US">~~~</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">应该没人这样造句吧</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">“我长的象我爷爷”</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">嘎嘎</span>
				<span lang="EN-US">~~~~~~~~~~~~~~~~~~~
</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:50:19</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">一般</span>
				<span lang="EN-US"> override
equals method</span>
				<span style="font-family: 宋体;">的普通手法是</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">public boolean equals(Object o) {</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<span style=""> 
</span>MyObject o = (MyObject) o;</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<span style="">  </span>//
TODO: compare them</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<span style=""> 
</span>return xxx;</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">} </span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">水圣</span>
				<span lang="EN-US"> 10:50:40</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不是比喻句，但是是对的</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">水圣</span>
				<span lang="EN-US"> 10:50:44</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">哈哈</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不敗の小儜</span>
				<span lang="EN-US"> 10:51:29</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">前面定义</span>
				<span lang="EN-US">OBJECT</span>
				<span style="font-family: 宋体;">应该就是说什么类都能传进去跟他比较吧。。</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 10:52:47</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">MyObject o = (MyObject) o;//</span>
				<span style="font-family: 宋体;">是这句吧</span>
				<span lang="EN-US">? </span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 10:53:51</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">那这个转型</span>
				<span style="font-family: 宋体;">要怎么写</span>
				<span lang="EN-US">? </span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:54:23</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">是</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:54:33</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">就是上面那句</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 10:54:44</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">这个转型怎么实现</span>
				<span lang="EN-US">? </span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不敗の小儜</span>
				<span lang="EN-US"> 10:54:54</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">。。</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:55:11</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">呵呵语言特性，你把他理解为一个神奇的黑盒，完成你想要的功能就</span>
				<span lang="EN-US">OK</span>
				<span style="font-family: 宋体;">了</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 10:55:54</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">这个世界好神奇哦</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">『堂』天晓得</span>
				<span lang="EN-US">
10:56:10</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">............................. </span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">ぷ秋起雁归ぷ</span>
				<span lang="EN-US">
10:56:11</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">为什么这么说</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 10:59:37</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<span style=""> </span>Class Monster{</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">private String content;</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">...</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">boolean equals(Monster another){ return
true;}</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">}</span>
				<span style="font-family: 宋体;">这样不可以么</span>
				<span lang="EN-US">?</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 10:55:11</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">危险</span>
				<span lang="EN-US">...</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">Monster m1 = new Monster();</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">Monster m2 = new Monster();</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">m1.equals(m2)</span>
				<span style="font-family: 宋体;">永远相等，这真的是你想要的结果吗？</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<span style=""> </span>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 11:01:49</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">我在</span>
				<span lang="EN-US">equals()</span>
				<span style="font-family: 宋体;">里面还要访问</span>
				<span lang="EN-US">Monster</span>
				<span style="font-family: 宋体;">的</span>
				<span lang="EN-US">content</span>
				<span style="font-family: 宋体;">变量的</span>
				<span lang="EN-US">. </span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 11:02:10</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">比较</span>
				<span lang="EN-US">content</span>
				<span style="font-family: 宋体;">内容</span>
				<span lang="EN-US">,</span>
				<span style="font-family: 宋体;">然后再返回</span>
				<span lang="EN-US">true or false </span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 11:02:39</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">OK</span>
				<span style="font-family: 宋体;">，这是你的业务逻辑，我不知道这对不对，你对此负责</span>
				<span lang="EN-US">
						<span style="">  </span>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 11:02:41</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">做到真正的内容比较是</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">的职责嘛</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 11:02:51</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">是的</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 11:02:59</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">是内容比较，或者成为</span>
				<span lang="EN-US">value</span>
				<span style="font-family: 宋体;">比较</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不敗の小儜</span>
				<span lang="EN-US"> 11:03:40</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">自己新建的类，</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">比较的是引用还是内容啊。。。</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">水圣</span>
				<span lang="EN-US"> 11:03:46</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">clone </span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 11:04:04</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">如果不</span>
				<span lang="EN-US">override
equals method</span>
				<span style="font-family: 宋体;">，默认为比较引用地址</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不敗の小儜</span>
				<span lang="EN-US"> 11:04:29</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">Monster m1 = new Monster();</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">Monster m2 = new Monster();</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">m1.equals(m2) </span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不敗の小儜</span>
				<span lang="EN-US"> 11:04:34</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">那不是不相等么</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不敗の小儜</span>
				<span lang="EN-US"> 11:04:41</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">2</span>
				<span style="font-family: 宋体;">个都</span>
				<span lang="EN-US">new</span>
				<span style="font-family: 宋体;">过了。。。</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 11:05:01</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">他覆盖了</span>
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不敗の小儜</span>
				<span lang="EN-US"> 11:05:07</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">哦</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不敗の小儜</span>
				<span lang="EN-US"> 11:05:10</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">这个是内部的？</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 11:05:15</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">语法上来说只进行类型比较吧</span>
				<span lang="EN-US">?
</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 11:05:38</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">equals</span>
				<span style="font-family: 宋体;">方法是一个</span>
				<span lang="EN-US">public</span>
				<span style="font-family: 宋体;">访问修饰符，所以他不应该称为内部的</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 11:05:56</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">他的接口在任何时候都被共享，只要你想调用</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不敗の小儜</span>
				<span lang="EN-US"> 11:06:09</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">哦</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 11:12:37</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">两个东西比较都是比较我们平时看得见的东西进行比较的吧</span>
				<span lang="EN-US">?</span>
				<span style="font-family: 宋体;">也就是外部可以访问到的东西之间的比较吧</span>
				<span lang="EN-US">?</span>
				<span style="font-family: 宋体;">如果两个不同的类之间包含相同的</span>
				<span lang="EN-US">public</span>
				<span style="font-family: 宋体;">成员变量</span>
				<span lang="EN-US">.</span>
				<span style="font-family: 宋体;">你是怎么实现的</span>
				<span lang="EN-US">? </span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 11:14:14</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">不懂你的意思？</span>
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">midthinker 11:20:08</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">呵呵，假设。。。</span>
				<span lang="EN-US">one
developer and one tester</span>
				<span style="font-family: 宋体;">，他们密切合作，进行着紧张而忙碌的开发活动，突然你们的老板来到你们面前，并告诉你们之前程序的某个部分因为某些特殊原因发生了问题，你们的老板为此大发雷霆，甚至威胁扣除你们的奖金，除非你们能够说明谁犯了这个错误，经过分析你们发现这是一个各占</span>
				<span lang="EN-US">50</span>
				<span style="font-family: 宋体;">％的责任，大家认为作为一个</span>
				<span lang="EN-US">developer
or Tester</span>
				<span style="font-family: 宋体;">，谁更有可能优先向对方道歉，并承认错误？</span>
				<span lang="EN-US">
						<span style="">  </span>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">小猪</span>
				<span lang="EN-US"> 11:21:24</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">比如</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">class a {</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<span style=""> </span>int
a=1;</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<span style=""> 
</span>private void a(){};</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">}</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">class b {</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<span style=""> </span>int
b=1;</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<span style=""> </span>private void b(){};</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">}</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">这样</span>
				<span lang="EN-US">b</span>
				<span style="font-family: 宋体;">里面包含了跟</span>
				<span lang="EN-US">a</span>
				<span style="font-family: 宋体;">一样的一个</span>
				<span lang="EN-US">int </span>
				<span style="font-family: 宋体;">变量</span>
				<span lang="EN-US">.</span>
				<span style="font-family: 宋体;">而我们调用这两个类的时候只用到这两个类对象的</span>
				<span lang="EN-US">int </span>
				<span style="font-family: 宋体;">变量的内容也就是从类的用户的角度来说这两个类是可以相等的</span>
				<span lang="EN-US">.</span>
				<span style="font-family: 宋体;">那么是否需要写一个</span>
				<span lang="EN-US">a</span>
				<span style="font-family: 宋体;">和</span>
				<span lang="EN-US">b</span>
				<span style="font-family: 宋体;">之间进行相等比较的</span>
				<span lang="EN-US">equals method</span>
				<span style="font-family: 宋体;">呢</span>
				<span lang="EN-US">? </span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">//</span>
				<span style="font-family: 宋体;">我提的问题有点钻牛角尖了，事实上两个不同类的对象之间没有比较的意义，肯定是不同的。</span>
				<span lang="EN-US">//</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">----------------------------------------------------------------------------------------------------------------------</span>
		</p>
<img src ="http://www.blogjava.net/ky1in/aggbug/60089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ky1in/" target="_blank">小猪</a> 2006-07-25 23:42 <a href="http://www.blogjava.net/ky1in/archive/2006/07/25/60089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>core java(7th edition) 读书笔记</title><link>http://www.blogjava.net/ky1in/archive/2006/07/17/58384.html</link><dc:creator>小猪</dc:creator><author>小猪</author><pubDate>Mon, 17 Jul 2006 03:11:00 GMT</pubDate><guid>http://www.blogjava.net/ky1in/archive/2006/07/17/58384.html</guid><wfw:comment>http://www.blogjava.net/ky1in/comments/58384.html</wfw:comment><comments>http://www.blogjava.net/ky1in/archive/2006/07/17/58384.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ky1in/comments/commentRss/58384.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ky1in/services/trackbacks/58384.html</trackback:ping><description><![CDATA[
		<font face="Arial" size="2">  <br /><br /><br /></font>
		<div align="left">2006年7月9日                          星期日           阴雨<br />
昨天晚上看了前言和第一章.跟很过书一样,主要还是在推销自己的东西啦.<br />
在推销的同时也总体介绍了一下java的一些特性.<br /><br /><br />
2006年7月10日 星期一 阴雨<br />
p15 第3行 java-version 应该改为java -version 书中少了空格.<br />
p25 第7和第8行的命令要注意大小写.<br />
        javac ImageViewer.java          中的"I"不能写成i  ,V不能写成v   .<br />
        java ImageViewer                    中的"I"不能写成i  ,V不能写成v   .<br />
否则会出现错误<br /><img src="http://www.blogjava.net/images/blogjava_net/ky1in/%E6%B2%A1%E6%B3%A8%E6%84%8F%E5%91%BD%E4%BB%A4%E7%9A%84%E5%A4%A7%E5%B0%8F%E5%86%99%E5%87%BA%E7%8E%B0%E7%9A%84%E9%94%99%E8%AF%AF.jpg" alt="没注意命令的大小写出现的错误.jpg" border="0" height="328" width="500" /><br />
改过来以后会显示:<br /><img src="http://www.blogjava.net/images/blogjava_net/ky1in/%E6%9B%B4%E6%94%B9%E5%91%BD%E4%BB%A4%E5%A4%A7%E5%B0%8F%E5%86%99%E9%94%99%E8%AF%AF%E4%BB%A5%E5%90%8E%E7%9A%84%E7%94%BB%E9%9D%A2.jpg" alt="更改命令大小写错误以后的画面.jpg" border="0" height="375" width="500" /><br />
显示一个窗口程序可以显示gif格式的图片.<br />
结束程序后出现下面的东东:<br />
C:\corejavabook\v1\v1ch2\ImageViewer&gt;<br />
2006年7月13日               星期四          晴<br />
        昨天健身腿练得太猛。在床上躺了一天。下楼梯都痛。考试停了一个星期没练就不适应了。哎。<br />
        转入正题：p35   中有个例子不是很明白:<br />
       "例如,0.125可以表示成Ox1.0p-3.在十六进制表示法中,使用p表示指数,而不是e"<br />
        0.125是十进制数的话,它的十六进制数应该是0.2才对啊.p表示以16为底,写成科学记数法应该是<br />Ox2p-1才对吧?难道是应为Ox1.0p-3中只有后面的-3是十六进制数,1.0是2进制数而且是以2为底?<br />
         问题解决:Ox1.0和p后面的-3是用十六进制表示的,底数默认为2.<br /><br />
2006年7月14日                    星期五                         晴<br /><br />p42 字条警告处的例子"例如,1&lt;&lt;35与1&lt;&lt;3或8是相同的." 我写了个验证程序,怎么输出结果不同?<br />
public class Test1<br />
{<br />
public static void main(String[] args)<br />
{<br />
int i=1;<br />
int b=0;<br /><br />
b=i&lt;&lt;35;<br />
System.out.println("i&lt;&lt;35"+b);<br /><br />
b=i&lt;&lt;3;<br />
System.out.println("i&lt;&lt;3"+b);<br /><br />
b=i&lt;&lt;8;<br />
System.out.println("i&lt;&lt;8"+b);<br /><br />
b=i&lt;&lt;29;<br />
System.out.println("i&lt;&lt;29"+b);<br />
}<br />
}<br /><br /><br />
输出结果为<br />
i&lt;&lt;358<br />
i&lt;&lt;38<br />
i&lt;&lt;8256<br />
i&lt;&lt;29536870912<br /><br />
解答:<br />
原来是1&lt;&lt;35==1&lt;&lt;3==8的意思。<br />
验证程序应该在输出串后面加个等号<br /><br />
public class Test1<br />
{<br />
public static void main(String[] args)<br />
{<br />
int i=1;<br />
int b=0;<br /><br />
b=i&lt;&lt;35;<br />
System.out.println("i&lt;&lt;35"+b);<br /><br />
b=i&lt;&lt;3;<br />
System.out.println("i&lt;&lt;3="+b);<br /><br />
b=i&lt;&lt;8;<br />
System.out.println("i&lt;&lt;8="+b);<br /><br />
b=i&lt;&lt;29;<br />
System.out.println("i&lt;&lt;29="+b);<br />
}<br />
}<small></small><br /><small></small></div>
		<br />
		
2006年7月16日                        星期日                    雨<br />
core java p33"注意"字条处：System.out不是有个 print方法么？在apidocument里怎么没看见？<br /><img src="/WebResource.axd?d=pLXXeGbWF7eXU8SMs2-GFZvUWY2JNH05dFx5YzJhGUYAYJAFEaTEq36NAhTPy7_KekvzDFwt8wvQWdByvJIGWdEq6x2KpKD80&amp;t=632785713320000000" height="1" width="1" /><img src="http://www.blogjava.net/images/blogjava_net/ky1in/System.out%E4%B8%8D%E6%98%AF%E6%9C%89%E4%B8%AA%20print%E6%96%B9%E6%B3%95%E4%B9%88%EF%BC%9Fdoc%E9%87%8C%E6%80%8E%E4%B9%88%E6%B2%A1%E7%9C%8B%E8%A7%81%EF%BC%9F.JPG" alt="System.out不是有个 print方法么？doc里怎么没看见？.JPG" border="0" height="3" width="8" /><br /><font face="Arial" size="2">core java 书上说有的。难道是api版本问题？？<br /><img src="http://www.blogjava.net/images/blogjava_net/ky1in/there%20is%20no%20print%20method%20in%20api%20document%21.JPG" alt="there is no print method in api document!.JPG" border="0" height="6" width="9" /><br />还真的有...中文api document是不是过时的版本做的？寒<br />这个问题已经解决.<a href="">点这里看解答</a><br /><br /><img src="http://www.blogjava.net/images/blogjava_net/ky1in/System.out.print%20%E8%BF%98%E7%A1%AE%E5%AE%9E%E6%9C%89%EF%BC%81.bmp" alt="System.out.print 还确实有！.bmp" border="0" height="5" width="5" /><br /><br /><br />2006年7月18日                        星期二                    小雨<br />关于代码单元和代码点的理解：<br />1、一个代码点可能包含一个或两个代码单元。<br />2、在我的测试程序中，“我 ”也只占用一个代码单元。即代码点数等于代码单元数。<br />下面是在<a href="http://www.unicode.org/faq/">unicode的官方网站</a>上找到的关于unicode的中文，韩文，日文的一些说明：</font><br />Q: I have heard that UTF-8 does not support some 
Japanese characters. Is this correct?
<p class="a">A: There is a lot of misinformation floating around about the support 
of Chinese, Japanese and Korean (CJK) characters. The Unicode Standard supports 
<b>all </b>of the CJK characters from JIS X 0208, JIS X 0212, JIS X 0221, or JIS 
X 0213, for example, and many more. This is true no matter which encoding form 
of Unicode is used: UTF-8, UTF-16, or UTF-32.</p><p class="a">Unicode supports over 70,000 CJK characters right now, and work is 
underway to encode further additions. The International Standard ISO/IEC 10646 
and the Unicode Standard are completely synchronized in repertoire and content. 
And that means that Unicode has the same repertoire as GB 18030, since that also 
is synchronized with ISO 10646 — although with a different ordering and byte 
format. </p><font face="Arial" size="2">无论是那个编码方式（</font>UTF-8, UTF-16, or UTF-32<font face="Arial" size="2">）对中文,韩文,日文 支持的字数都一样么?码数好像是不一样吧?.<br /><br /><br />我的测试程序如下:<br />public class test0 {<br />    public static void main(String[] args)<br />         {String a="我 ";<br />          int cuCount=a.length();<br />          System.out.println("the number of code units required for string \"test\" in the UTF-16 encoding is "+cuCount);<br />          int cpCount=a.codePointCount(0, a.length());<br />          System.out.println("the number of code points is "+cpCount);<br />          System.out.println("the end of string \"我 \" is "+a.charAt(a.length()-1));          <br />          <br />         }<br />          <br />} <br /><br />输出结果为:<br />the number of code units required for string "test" in the UTF-16 encoding is 2<br />the number of code points is 2<br />the end of string "我 " is [空格]<br /><br /></font>在eclipse里面找到了set encoding选项，在里面可以设置编码方式。<br /><br /><br />
		
2006年7月27日       星期四             雨<br />core java上对int codePointCount(int startIndex,int endIndex)的解释中一个名词没弄明白。<br />int codePointCount(int startIndex, int endIndex) 5.0<br /><br />returns the number of code points between startIndex and endIndex - 1. <font color="#008000"><u>Unpaired surrogates</u></font> are counted as code points.<br /><br />中文api对int codePointCount(int startIndex,int endIndex)的解释：<br />返回此 String 的指定文本范围中的 Unicode 代码点数。文本范围始于指定的 beginIndex，一直到索引 endIndex - 1 处的 char。因此，该文本范围的长度（在 char 中）是 endIndex-beginIndex。该文本范围内未配对的代理项作为一个代码点计数。<br /><br />MSDN上对Surrogates的解释：<br />A <em>surrogate pair</em> is a pair of UTF-16 code values that
represent a single supplementary character; each of the two code values
in the pair is called a <i>surrogate</i>. The first (high) surrogate
is a 16-bit code value in the range U+D800 to U+DBFF. The second (low)
surrogate is a 16-bit code value in the range U+DC00 to U+DFFF.<br /><br />原来surrogate 就是unicode-16编码里面的高8位或低8位存储单元。而Unpaired surrogates的意思应该就是指非unicode匹配字符了。而且这些不匹配的字符codePointCount()方法会以8个bit作为计数单元。<br /><br /><img src ="http://www.blogjava.net/ky1in/aggbug/58384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ky1in/" target="_blank">小猪</a> 2006-07-17 11:11 <a href="http://www.blogjava.net/ky1in/archive/2006/07/17/58384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的java开发试验</title><link>http://www.blogjava.net/ky1in/archive/2006/07/16/58385.html</link><dc:creator>小猪</dc:creator><author>小猪</author><pubDate>Sat, 15 Jul 2006 19:54:00 GMT</pubDate><guid>http://www.blogjava.net/ky1in/archive/2006/07/16/58385.html</guid><wfw:comment>http://www.blogjava.net/ky1in/comments/58385.html</wfw:comment><comments>http://www.blogjava.net/ky1in/archive/2006/07/16/58385.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/ky1in/comments/commentRss/58385.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ky1in/services/trackbacks/58385.html</trackback:ping><description><![CDATA[								2006年7月11日                              星期二                                            阴雨<br />    今天按照core java（7th edition）p14页2.1.2 设置执行路径。居然错误频频。<br />
        书上可以用java-version命令检查设置是否正确。其实应该是：path[空格]-version。中文版的编辑真是找骂。中间的空格居然给掉了。还好手头上还有一本英文版的电子书。<br />
        还有就是现在sun把netbeans跟jdk捆绑下载了。下载地址也改变了。直接到sun网站找吧。<br /><br />ps:不知道改错了什么.运行netbeans的时候竟然提示找不到java.exe.难道是path搞错了?我在安装的时候改了netbeans的安装路径.<br />
         卸载了jdk和netbeans以后重新安装后可以运行netbeans了.难道现在的jdk可以自己修改path路径了?<br />
        再ps:因为core java里介绍的是eclipse所以又跑去下载了eclipse.<br />---------------------------------------------------------<br />2006年7月19日         星期三              晴<br />今天帮我的eclipse装上了多国语言包.不过我下载的是3.2版的eclipse.没有中文的帮助文档.看eclipse从入门到精通这本书上说有中文帮助文档的.<br />-------------------------------------------------------------------------------------<br />2006年7月22日         星期六              晴<br />今天在csdn上发帖问了安装eclipse的多国语言包以后为什么没有中文帮助文档的问题。<br />原来中文帮助文档是在另外一个单独的压缩包里的。3.2的中文帮助文档的压缩包还没发布，要等等了。<br /><br /><br /><br /><img src ="http://www.blogjava.net/ky1in/aggbug/58385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ky1in/" target="_blank">小猪</a> 2006-07-16 03:54 <a href="http://www.blogjava.net/ky1in/archive/2006/07/16/58385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>