Java:ÖØÐ´equals()ºÍhashCode()
	
    
    
	1.
ºÎʱÐèÒªÖØÐ´
equals()
µ±Ò»¸öÀàÓÐ×Ô¼ºÌØÓеēÂß¼ÏàµÈ”¸ÅÄ²»Í¬ÓÚ¶ÔÏóÉí·ÝµÄ¸ÅÄ¡£
2.
Éè¼Æ
equals()
[1]
ʹÓÃ
instanceof
²Ù×÷·û¼ì²é“ʵ²ÎÊÇ·ñΪÕýÈ·µÄÀàÐÍ”¡£
[2]
¶ÔÓÚÀàÖеÄÿһ¸ö“¹Ø¼üÓò”£¬¼ì²éʵ²ÎÖеÄÓòÓ뵱ǰ¶ÔÏóÖжÔÓ¦µÄÓòÖµ¡£
[2.1]
¶ÔÓÚ·Ç
float
ºÍ
double
ÀàÐ͵ÄÔÓïÀàÐÍÓò£¬Ê¹ÓÃ
==
±È½Ï£»
[2.2]
¶ÔÓÚ¶ÔÏóÒýÓÃÓò£¬µÝ¹éµ÷ÓÃ
equals
·½·¨£»
[2.3]
¶ÔÓÚ
float
Óò£¬Ê¹ÓÃ
Float.floatToIntBits
(
afloat
)
ת»»Îª
int
£¬ÔÙʹÓÃ
==
±È½Ï£»
[2.4]
¶ÔÓÚ
double
Óò£¬Ê¹ÓÃ
Double.doubleToLongBits
(
adouble
)
 
ת»»Îª
int
£¬ÔÙʹÓÃ
==
±È½Ï£»
[2.5]
¶ÔÓÚÊý×éÓò£¬µ÷ÓÃ
Arrays.equals
·½·¨¡£
3.
µ±¸Äд
equals()
µÄʱºò£¬×ÜÊÇÒª¸Äд
hashCode()
¸ù¾ÝÒ»¸öÀàµÄ
equals
·½·¨£¨¸Äдºó£©£¬Á½¸ö½ØÈ»²»Í¬µÄʵÀýÓпÉÄÜÔÚÂß¼ÉÏÊÇÏàµÈµÄ£¬µ«ÊÇ£¬¸ù¾Ý
Object.hashCode
·½·¨£¬ËüÃǽö½öÊÇÁ½¸ö¶ÔÏó¡£Òò´Ë£¬Î¥·´ÁË“ÏàµÈµÄ¶ÔÏó±ØÐë¾ßÓÐÏàµÈµÄÉ¢ÁÐÂ딡£
4.
Éè¼Æ
hashCode()
[1]
°Ñij¸ö·ÇÁã³£ÊýÖµ£¬ÀýÈç
17
£¬±£´æÔÚ
int
±äÁ¿
result
ÖУ»
[2]
¶ÔÓÚ¶ÔÏóÖÐÿһ¸ö¹Ø¼üÓò
f
£¨Ö¸
equals
·½·¨Öп¼ÂǵÄÿһ¸öÓò£©£º
[2.1]boolean
ÐÍ£¬¼ÆËã
(f ? 0 : 1);
[2.2]byte,char,short
ÐÍ£¬¼ÆËã
(int);
[2.3]long
ÐÍ£¬¼ÆËã
(int) (f ^ (f>>>32));
[2.4]float
ÐÍ£¬¼ÆËã
Float.floatToIntBits
(
afloat
)
;
[2.5]double
ÐÍ£¬¼ÆËã
Double.doubleToLongBits
(
adouble
)
µÃµ½Ò»¸ö
long
£¬ÔÙÖ´ÐÐ
[2.3];
[2.6]
¶ÔÏóÒýÓ㬵ݹéµ÷ÓÃËüµÄ
hashCode
·½·¨
;
[2.7]
Êý×éÓò£¬¶ÔÆäÖÐÿ¸öÔªËØµ÷ÓÃËüµÄ
hashCode
·½·¨¡£
[3]
½«ÉÏÃæ¼ÆËãµÃµ½µÄÉ¢ÁÐÂë±£´æµ½
int
±äÁ¿
c
£¬È»ºóÖ´ÐÐ
 result=37*result+c;
[4]
·µ»Ø
result
¡£
5.
ʾÀý
ÏÂÃæµÄÕâ¸öÀà×ñÑÉÏÃæµÄÉè¼ÆÔÔò£¬ÖØÐ´ÁËÀàµÄ
equals()
ºÍ
hashCode()
¡£
package
 com.zj.unit;
import
 java.util.Arrays;
 
public
 
class
 Unit {
    
private
 
short
 
ashort
;
    
private
 
char
 
achar
;
    
private
 
byte
 
abyte
;
    
private
 
boolean
 
abool
;
    
private
 
long
 
along
;
    
     
	
	
    
    
	Ïà¹ØÎĵµ£º
        
    
    µÚÒ»ÖÖ·½·¨Ê¹Óà DesktopÀ࣬¸ÃÀà¼Ì³Ð×ÔObject 
import java.awt.*; 
import java.io.*; 
class DesktopTest 
{ 
public static void main(String args[]) 
{ 
if (!Desktop.isDesktopSupported()) 
{ 
System.err.println("Desktop not supported!"); 
System.exit(-1); 
} 
else 
{ 
try{ 
Desktop desktop ......
	
    
        
    
    Chap1 ¶ÔÏó¼ò½é
       1.³éÏóµÄ¹ý³Ì
       Alan Kay×ܽáÁËSmalltalkµÄÎåÏî»ù±¾ÌØÕ÷¡£ÕâÐ©ÌØÕ÷´ú±íÁË´¿µÄÃæÏò¶ÔÏóµÄ±à³Ì·½·¨£º
       (1).ÍòÎï½Ô¶ÔÏó¡£½«¶ÔÏóÏë³ÉÒ»ÖÖÌØÊâµÄ±äÁ¿£»Ëü´æ´¢Êý¾Ý£¬¶øÇÒ»¹¿ÉÒÔÈÃÄã“ÌáÒªÇ ......
	
    
        
    
    Ubuntu/debian ¸ü¸ÄĬÈÏJava»·¾³
ÎҵĵçÄÔÀï°²×°ÁËÁ½¸ö°æ±¾µÄJava£¬Ò»¸öÊÇjava-6-sun£¬»¹ÓÐÒ»¸öÊÇjava-gcj
gcjÊÇÔÚJVM·Ç³£»ºÂýµÄʱºòµ®ÉúµÄ£¬Ëû¿ÉÒÔ°ÑJava´úÂë±àÒë³É±¾µØ´úÂë £¬¹ØÓÚgcjÔÝÇÒ˵Õâô¶à£¬»Øµ½Ö÷Ìâ¡£
ÐÞ¸ÄĬÈÏjava»·¾³Óõ½ÃüÁîupdate-java-alternatives
1¡¢Ê¹ÓÃupdate-java-alternatives -l²é¿´Ä¿Ç°ÒѾ°²×° ......
	
    
        
    
    Çá±ãµÄÊý¾Ý´«Ê䷽ʽһֱÊÇÃæÏò·þÎñ¹¹¼Ü£¨SOA£©Ëù¹Ø×¢µÄ½¹µã£¬¶ÔÓÚSOAÀ´Ëµ£¬Ôø¾·¢Õ¹³öÁ˺ܶ෽±ãµÄÊý¾Ý´«Êäģʽ¡£µ«×Ô´ÓXMLÁ÷Ðкó£¬ÕâЩ´«Êäģʽ¶¼Öð½¥ÏûʧÁË£¬Òò´Ë£¬ÏÖÔÚµÄSOAÖеĻù±¾µÄÊý¾Ý´«Êäģʽ¶¼ÊÇ»ùÓÚXMLµÄ¡£ËäÈ»XML¿ÉÒÔÓÃÓÚÏó·þÎñ·¢ËÍÇëÇó¡¢´Ó·þÎñÆ÷»ñµÃÏìÓ¦»ò´«µÝÊý¾Ý±íÖ®ÀàµÄ²Ù×÷£¬µ«ÕâЩ²Ù×÷¶¼Ì«¼òµ¥£¬¶øÓÐʱÎÒ ......
	
    
        
    
    1. ÄãÐèÒª¾«Í¨ÃæÏò¶ÔÏó·ÖÎöÓëÉè¼Æ(OOA/OOD)¡¢É漰ģʽ(GOF£¬J2EEDP)ÒÔ¼°×ÛºÏģʽ¡£ÄãÓ¦¸ÃÁ˽âUML£¬ÓÈÆäÊÇclass¡¢object¡¢interactionÒÔ¼°statediagrams¡£
2. ÄãÐèҪѧϰJavaÓïÑԵĻù´¡ÖªÊ¶ÒÔ¼°ËüµÄºËÐÄÀà¿â(collections¡¢serialization¡¢streams¡¢networking¡¢multithreading¡¢reflection¡¢event¡¢handling¡¢NIO¡¢localiza ......