??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品亚洲专一区二区三区,欧日韩在线观看,中文字幕成人avhttp://www.aygfsteel.com/ky1in/category/13095.html人生不是学期Ӟ人生没有寒暑假?/description>zh-cnThu, 01 Mar 2007 02:44:57 GMTThu, 01 Mar 2007 02:44:57 GMT60在QQ里讨论了关?=和equals()的问?http://www.aygfsteel.com/ky1in/archive/2006/07/25/60089.htmlTue, 25 Jul 2006 15:42:00 GMThttp://www.aygfsteel.com/ky1in/archive/2006/07/25/60089.htmlhttp://www.aygfsteel.com/ky1in/comments/60089.htmlhttp://www.aygfsteel.com/ky1in/archive/2006/07/25/60089.html#Feedback0http://www.aygfsteel.com/ky1in/comments/commentRss/60089.htmlhttp://www.aygfsteel.com/ky1in/services/trackbacks/60089.html 2007 q?/span> 7 ?/span> 25 ?/span>    星期?/span>           ?/span>

----------------------------------------------------------------------------------------------------------------------

以下?/span> QQ 上的聊天记录,以及我的一些注释?/span>

 

狂风扫落?/span> 10:23:08

Z?/span> String c要重写 Object equals Ҏ啊?

水圣 10:21:14

看看你代?/span>

狂风扫落?/span> 10:23:08

不是 , 有朋友问我这个问?/span> , 我不知道怎么回答 ,

好像是ؓ了区?/span> 对像比较的时?/span> == ?/span> equals 的有所区别  

天天好心?/span> 10:23:34

== 不是比较对象?/span>

阉K 10:24:15

我记得的好象?/span>

== 实际上是比较的两个字W串的物理内存地址?/span>

?/span> A ?/span> == ?/span> A ”结果肯定是不相{的

阉K 10:24:47

其中?/span> A ”表CZ个字W串

水圣 10:25:51

== 实际上是比较的两个字W串的物理内存地址

 

狂风扫落?/span> 10:25:58

to 阉K 你说的是字符串对象,他重写了 Object ?/span> equals Ҏ

所以会那样

midthinker 10:26:04

Q=比较对象的地址Q?/span> equals 比h两个对象的|如果默认l承?/span> OBJECT Q则 equals 比较两个对象地址Q, String class override ?/span> Object class ?/span> equals ҎQ实C自己的方法,所?/span> equals 比较的是实际D非地址

阉K 10:26:45

我说的就是这个意思了

midthinker 10:26:54

另外 String class ?/span> JAVA 中比较特D的地方是他采取了值对象模式以及n元模?/span>

midthinker 10:27:25

q意味着普通的比较会出现正的l果

String a = "aaa";

String b = "aaa";

a == b is equals

midthinker 10:28:33

只觉上这个是错误的,因ؓ String 是对象,不是单数|所以他们应该是不同的对象,但这里他们是相同的,原因在于享元模式?/span> aaa 保留下来Qƈ再下ơ用时赋予

midthinker 10:29:14

但是q样׃?/span>

String a = new String("aaa");

String b = new String("aaa");

a == b is false                     //          其实讲到q里应该都清楚了 object equals() ?/span> == 的作用是一LQ但是?/span> object 子类一般都会重?/span> equals() ҎQ这样做的目的是Z 很好地区?/span> equals() 的作用, == 只负责比较两个对?/span> 的物理地址是否相同Q?/span> equals() Ҏ负责比较两个对象 的内容(或者说是| value Q是否相{?/

阉K 10:29:33

q种问题应该属于比较底层的了

没事了可以看?/span>

深入理解计算机系l。。。讲解很_辟

狂风扫落?/span> 10:30:34

受教

水圣 10:33:17

Q?/span> "==" ?/span> equals ҎI竟有什么区别?

 

== 操作W专门用来比较变量的值是否相{。比较好理解的一ҎQ?/span>

int a=10;

int b=10;

?/span> a==b true ?/span>

但不好理解的地方是:

String a=new String("foo");

String b=new String("foo");

?/span> a==b 返?/span> false ?/span>

 

对象变量其实是一个引用,它们的值是指向对象所在的内存地址Q而不是对象本w?/span> a ?/span> b 都用了 new 操作W,意味着在内存中生两个内容ؓ "foo" 的字W串Q既然是“两个”,它们自然位于不同的内存地址?/span> a ?/span> b 的值其实是两个不同的内存地址的|所以?/span> "==" 操作W,l果会是 false 。诚Ӟ a ?/span> b 所指的对象Q它们的内容都是 "foo" Q应该是“相{”,但是 == 操作Wƈ不涉及到对象内容的比较?/span>

对象内容的比较,正是 equals Ҏ做的事?/span>

 

看一?/span> Object 对象?/span> equals Ҏ是如何实现的Q?/span>

boolean equals(Object o){

 

return this==o;

 

}

Object 对象默认使用?/span> == 操作W。所以如果你自创的类没有覆盖 equals ҎQ那你的cM?/span> equals 和?/span> == 会得到同Ll果。同样也可以看出Q?/span> Object ?/span> equals Ҏ没有辑ֈ equals Ҏ应该辑ֈ的目标:比较两个对象内容是否相等。因为答案应该由cȝ创徏者决定,所?/span> Object 把这个Q务留l了cȝ创徏者?/span>

 

看一下一个极端的c:

Class Monster{

private String content;

...

boolean equals(Object another){ return true;}

 

}

我覆盖了 equals Ҏ。这个实CD无论 Monster 实例内容如何Q它们之间的比较永远q回 true ?/span>

 

所以当你是?/span> equals Ҏ判断对象的内Ҏ否相{,请不要想当然。因为可能你认ؓ相等Q而这个类的作者不q样认ؓQ而类?/span> equals Ҏ的实现是׃掌握的。如果你需要?/span> equals ҎQ或者用Q何基于散列码的集合( HashSet,HashMap,HashTable Q,请察看一?/span> java doc 以确认这个类?/span> equals 逻辑是如何实现的?/span>

 

10:45:28

Class Monster{

private String content;

...

boolean equals(Object another){ return true;}

 

}

q个例子有点看不懂了。一?/span> Monster 的类对象怎么会去跟一?/span> Object 的类对象比较Q?/span>

10:45:52

本nq样的比较就没意义吧Q?/span>

不二 10:46:22

Z么没意义

阉K 10:46:41

?/span>

cd象都是从 object l承来的Q应该可以比?/span>

水圣 10:46:57

比较极端而已

阉K 10:47:17

一般的c都是默认从 java  object l承

10:48:21

我小学用“像”造句 " 我像我爸?/span> " p老师骂过啊?/span>

midthinker 10:48:41

因ؓ equals Ҏ?/span> Object class 中的定义?/span> public boolean equals(Object o);

当子cL?/span> override 父类ҎӞ函数x特征必须相同Q所以必M?/span> Object   // q句话什么意思我q不是很懂。就 Monster cL?/span> Object 是其父类Q所?/span> Monster ?/span> equals() 的操作数必须是其父类的对象? //

 

阉K 10:49:57

呵呵 ~~~

应该没hq样造句?/span>

“我长的象我L?/span>

嘎嘎 ~~~~~~~~~~~~~~~~~~~

midthinker 10:50:19

一?/span> override equals method 的普通手法是

public boolean equals(Object o) {

  MyObject o = (MyObject) o;

  // TODO: compare them

  return xxx;

}

水圣 10:50:40

不是比喻句,但是是对?/span>

水圣 10:50:44

哈哈

不敗の小?/span> 10:51:29

前面定义 OBJECT 应该是说什么类都能传进去跟他比较吧。?/span>

10:52:47

MyObject o = (MyObject) o;// 是这句吧 ?

10:53:51

那这个{?/span> 要怎么?/span> ?

midthinker 10:54:23

?/span>

midthinker 10:54:33

是上面那句

10:54:44

q个转型怎么实现 ?

不敗の小?/span> 10:54:54

。?/span>

midthinker 10:55:11

呵呵语言Ҏ,你把他理解ؓ一个神奇的黑盒Q完成你惌的功能就 OK ?/span>

10:55:54

q个世界好神奇哦

『堂』天晓得 10:56:10

.............................

L起雁归ぷ 10:56:11

Z么这么说

10:59:37

 Class Monster{

private String content;

...

boolean equals(Monster another){ return true;}

 

} q样不可以么 ?

 

midthinker 10:55:11

 

危险 ...

Monster m1 = new Monster();

Monster m2 = new Monster();

m1.equals(m2) 永远相等Q这真的是你惌的结果吗Q?/span>

 

11:01:49

我在 equals() 里面q要讉K Monster ?/span> content 变量?/span> .

11:02:10

比较 content 内容 , 然后再返?/span> true or false

midthinker 11:02:39

OK Q这是你的业务逻辑Q我不知道这对不对,你对此负?/span>  

11:02:41

做到真正的内Ҏ较是 equals 的职责嘛

midthinker 11:02:51

是的

midthinker 11:02:59

是内Ҏ较,或者成?/span> value 比较

不敗の小?/span> 11:03:40

自己新徏的类Q?/span> equals 比较的是引用q是内容啊。。?/span>

水圣 11:03:46

clone

midthinker 11:04:04

如果?/span> override equals method Q默认ؓ比较引用地址

不敗の小?/span> 11:04:29

Monster m1 = new Monster();

Monster m2 = new Monster();

m1.equals(m2)

不敗の小?/span> 11:04:34

那不是不相等?/span>

不敗の小?/span> 11:04:41

2 个都 new q了。。?/span>

midthinker 11:05:01

他覆盖了 equals Ҏ

不敗の小?/span> 11:05:07

?/span>

不敗の小?/span> 11:05:10

q个是内部的Q?/span>

11:05:15

语法上来说只q行cd比较?/span> ?

midthinker 11:05:38

equals Ҏ是一?/span> public 讉K修饰W,所以他不应该称为内部的

midthinker 11:05:56

他的接口在Q何时候都被共享,只要你想调用

不敗の小?/span> 11:06:09

?/span>

11:12:37

两个东西比较都是比较我们qx看得见的东西q行比较的吧 ? 也就是外部可以访问到的东西之间的比较?/span> ? 如果两个不同的类之间包含相同?/span> public 成员变量 . 你是怎么实现?/span> ?

midthinker 11:14:14

不懂你的意思?

midthinker 11:20:08

呵呵Q假设。。?/span> one developer and one tester Q他们密切合作,q行着紧张而忙的开发活动,H然你们的老板来到你们面前Qƈ告诉你们之前E序的某个部分因为某些特D原因发生了问题Q你们的老板为此大发雷霆Q甚臛_胁扣除你们的奖金Q除非你们能够说明谁犯了q个错误Q经q分析你们发现这是一个各?/span> 50 Q的责QQ大家认ZZ?/span> developer or Tester Q谁更有可能优先向对斚w歉,q承认错误?  

11:21:24

比如

class a {

 int a=1;

  private void a(){};

}

 

class b {

 int b=1;

 private void b(){};

}

q样 b 里面包含了跟 a 一L一?/span> int 变量 . 而我们调用这两个cȝ时候只用到q两个类对象?/span> int 变量的内容也是从类的用L角度来说q两个类是可以相{的 . 那么是否需要写一?/span> a ?/span> b 之间q行相等比较?/span> equals method ?/span> ?

// 我提的问题有炚w牛角了Q事实上两个不同cȝ对象之间没有比较的意义,肯定是不同的?/span> //

----------------------------------------------------------------------------------------------------------------------



2006-07-25 23:42 发表评论
]]>
core java(7th edition) MW记http://www.aygfsteel.com/ky1in/archive/2006/07/17/58384.htmlMon, 17 Jul 2006 03:11:00 GMThttp://www.aygfsteel.com/ky1in/archive/2006/07/17/58384.htmlhttp://www.aygfsteel.com/ky1in/comments/58384.htmlhttp://www.aygfsteel.com/ky1in/archive/2006/07/17/58384.html#Feedback1http://www.aygfsteel.com/ky1in/comments/commentRss/58384.htmlhttp://www.aygfsteel.com/ky1in/services/trackbacks/58384.html 


2006q??? 星期? 阴雨
昨天晚上看了前言和第一?跟很q书一?主要q是在推销自己的东西啦.
在推销的同时也M介绍了一下java的一些特?


2006q??0?星期一 阴雨
p15 W??java-version 应该改ؓjava -version 书中了I格.
p25 W?和第8行的命o要注意大写.
javac ImageViewer.java 中的"I"不能写成i ,V不能写成v .
java ImageViewer 中的"I"不能写成i ,V不能写成v .
否则会出现错?br />没注意命令的大小写出现的错误.jpg
改过来以后会昄:
更改命o大小写错误以后的画面.jpg
昄一个窗口程序可以显Cgif格式的图?
l束E序后出C面的东东:
C:\corejavabook\v1\v1ch2\ImageViewer>
2006q??3? 星期? ?br /> 昨天健n腿练得太猛。在床上wZ一天。下楼梯都痛。考试停了一个星期没l就不适应了。哎?br /> 转入正题Qp35 中有个例子不是很明白:
"例如,0.125可以表示成Ox1.0p-3.在十六进制表C法?使用p表示指数,而不是e"
0.125是十q制数的?它的十六q制数应该是0.2才对?p表示?6为底,写成U学记数法应该是
Ox2p-1才对?N是应为Ox1.0p-3中只有后面的-3是十六进制数,1.0?q制数而且是以2为底?
问题解决:Ox1.0和p后面?3是用十六q制表示?底数默认?.

2006q??4? 星期? ?br />
p42 字条警告处的例子"例如,1<<35?<<3?是相同的." 我写了个验证E序,怎么输出l果不同?
public class Test1
{
public static void main(String[] args)
{
int i=1;
int b=0;

b=i<<35;
System.out.println("i<<35"+b);

b=i<<3;
System.out.println("i<<3"+b);

b=i<<8;
System.out.println("i<<8"+b);

b=i<<29;
System.out.println("i<<29"+b);
}
}


输出l果?br /> i<<358
i<<38
i<<8256
i<<29536870912

解答:
原来?<<35==1<<3==8的意思?br /> 验证E序应该在输Z后面加个{号

public class Test1
{
public static void main(String[] args)
{
int i=1;
int b=0;

b=i<<35;
System.out.println("i<<35"+b);

b=i<<3;
System.out.println("i<<3="+b);

b=i<<8;
System.out.println("i<<8="+b);

b=i<<29;
System.out.println("i<<29="+b);
}
}

2006q??6? 星期? ?br /> core java p33"注意"字条处:System.out不是有个 printҎ么?在apidocument里怎么没看见?
System.out不是有个 printҎ么?doc里怎么没看见?.JPG
core java 书上说有的。难道是api版本问题Q?
there is no print method in api document!.JPG
q真的有...中文api document是不是过时的版本做的Q寒
q个问题已经解决.点这里看解答

System.out.print q确实有Q?bmp


2006q??8日                      ?星期二                  ?雨
关于代码单元和代码点的理解:
1、一个代码点可能包含一个或两个代码单元?br />2、在我的试E序中,“我 ”也只占用一个代码单元。即代码Ҏ{于代码单元数?br />下面是在unicode的官方网?/a>上找到的关于unicode的中文,韩文Q日文的一些说明:

Q: I have heard that UTF-8 does not support some Japanese characters. Is this correct?

A: There is a lot of misinformation floating around about the support of Chinese, Japanese and Korean (CJK) characters. The Unicode Standard supports all 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.

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.

无论是那个编码方式(UTF-8, UTF-16, or UTF-32Q对中文,韩文,日文 支持的字数都一样么?码数好像是不一样吧?.


我的试E序如下:
public class test0 {
    public static void main(String[] args)
         {String a="?";
          int cuCount=a.length();
          System.out.println("the number of code units required for string \"test\" in the UTF-16 encoding is "+cuCount);
          int cpCount=a.codePointCount(0, a.length());
          System.out.println("the number of code points is "+cpCount);
          System.out.println("the end of string \"?\" is "+a.charAt(a.length()-1));         
         
         }
         
}

输出l果?
the number of code units required for string "test" in the UTF-16 encoding is 2
the number of code points is 2
the end of string "?" is [I格]

在eclipse里面扑ֈ了set encoding选项Q在里面可以讄~码方式?br />

2006q??7日     ?星期四           ??br />core java上对int codePointCount(int startIndex,int endIndex)的解释中一个名词没弄明白?br />int codePointCount(int startIndex, int endIndex) 5.0

returns the number of code points between startIndex and endIndex - 1. Unpaired surrogates are counted as code points.

中文api对int codePointCount(int startIndex,int endIndex)的解释:
q回?String 的指定文本范围中?Unicode 代码Ҏ。文本范围始于指定的 beginIndexQ一直到索引 endIndex - 1 处的 char。因此,该文本范围的长度Q在 char 中)?endIndex-beginIndex。该文本范围内未配对的代理项作ؓ一个代码点计数?br />
MSDN上对Surrogates的解释:
A surrogate pair 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 surrogate. 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.

原来surrogate 是unicode-16~码里面的高8位或?位存储单元。而Unpaired surrogates的意思应该就是指非unicode匚w字符了。而且q些不匹配的字符codePointCount()Ҏ会以8个bit作ؓ计数单元?br />


2006-07-17 11:11 发表评论
]]>
我的java开发试?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/ky1in/archive/2006/07/16/58385.html</guid><wfw:comment>http://www.aygfsteel.com/ky1in/comments/58385.html</wfw:comment><comments>http://www.aygfsteel.com/ky1in/archive/2006/07/16/58385.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/ky1in/comments/commentRss/58385.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/ky1in/services/trackbacks/58385.html</trackback:ping><description><![CDATA[ 2006q??1? 星期? 阴雨<br />    今天按照core javaQ?th editionQp14?.1.2 讄执行路径。居焉误频频?br /> 书上可以用java-version命o查设|是否正。其实应该是Qpath[I格]-version。中文版的编辑真是找骂。中间的I格居然l掉了。还好手头上q有一本英文版的电子书?br /> q有是现在sun把netbeans跟jdk捆绑下蝲了。下载地址也改变了。直接到sun|站扑֐?br /><br />ps:不知道改错了什?q行netbeans的时候竟然提C找不到java.exe.N是path搞错?我在安装的时候改了netbeans的安装\?<br /> 卸蝲了jdk和netbeans以后重新安装后可以运行netbeans?N现在的jdk可以自己修改path路径?<br /> 再ps:因ؓcore java里介l的是eclipse所以又跑去下蝲了eclipse.<br />---------------------------------------------------------<br />2006q??9日       ?星期三            ??br />今天帮我的eclipse装上了多国语a?不过我下载的?.2版的eclipse.没有中文的帮助文?看eclipse从入门到_N这本书上说有中文帮助文档的.<br />-------------------------------------------------------------------------------------<br />2006q??2日       ?星期六            ??br />今天在csdn上发帖问了安装eclipse的多国语a包以后ؓ什么没有中文帮助文档的问题?br />原来中文帮助文档是在另外一个单独的压羃包里的?.2的中文帮助文档的压羃包还没发布,要等{了?br /><br /><br /><br /><img src ="http://www.aygfsteel.com/ky1in/aggbug/58385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/ky1in/" target="_blank">猪</a> 2006-07-16 03:54 <a href="http://www.aygfsteel.com/ky1in/archive/2006/07/16/58385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">Ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ന</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">鴨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">DZɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˷</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͤ</a>| <a href="http://" target="_blank">÷</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ŷ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank">SHOW</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͼ</a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¤</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӡ</a>| <a href="http://" target="_blank">ͼľ</a>| <a href="http://" target="_blank">Ͻ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>