¼òµ¥»Ø¹ËJava»ù±¾¸ÅÄî
ÔÝʱÕâÑùÀí½â£¬Ï£Íû´ó¼ÒÖ¸³öÎҵĴíÎó
1.hashcode and equals:
equalsÈç¹ûÓÃÀ´ÅжÏÁ½¸ö¶ÔÏóµÄÄÚÈÝÊÇ·ñÏàͬ£¬ÐèÒªÖØд£¬ÒòΪequals() ĬÈÏÊDZȽÏÁ½¸ö¶ÔÏóµÄÒýÓá£
hashCode() ÊÇÓÃÀ´²úÉú¹þÏ£ÂêµÄ£¬¶ø¹þÏ£ÂêÊÇÓÃÀ´ÔÚÉ¢Áд洢½á¹¹ÖÐÈ·¶¨¶ÔÏóµÄ´æ´¢µØÖ·µÄ£¬Ïóutil°üÖÐµÄ ´ø hash µÄ¼¯ºÏÀ඼ÊÇÓÃÕâÖÖ´æ´¢½á¹¹ £ºHashMap,HashSet, ËûÃÇÔÚ½«¶ÔÏó´æ´¢Ê±£¨Ñϸñ˵ÊǶÔÏóÒýÓã©£¬ÐèҪȷ¶¨ËûÃǵĵØÖ·°É£¬¶øHashCode()¾ÍÊÇÕâ¸öÓÃ;µÄ£¬Ò»°ã¶¼ÐèÒªÖØж¨ÒåËüµÄ£¬ÒòΪĬÈÏÇé¿öÏ£¬ÓÉ Object ÀඨÒåµÄ hashCode ·½·¨»áÕë¶Ô²»Í¬µÄ¶ÔÏ󷵻ز»Í¬µÄÕûÊý£¬ÕâÒ»°ãÊÇͨ¹ý½«¸Ã¶ÔÏóµÄÄÚ²¿µØַת»»³ÉÒ»¸öÕûÊýÀ´ÊµÏֵģ¬ÏÖÔÚ¾Ù¸öÀý×ÓÀ´Ëµ£¬ ¾ÍÄÃHashSetÀ´Ëµ£¬ÔÚ½«¶ÔÏó´æÈëÆäÖÐʱ£¬Í¨¹ý±»´æÈë¶ÔÏóµÄ hashCode() À´È·¶¨¶ÔÏóÔÚ HashSet ÖеĴ洢µØÖ·£¬Í¨¹ýequals()À´È·¶¨´æÈëµÄ¶ÔÏóÊÇ·ñÖظ´£¬hashCode() £¬equals()¶¼ÐèÒª×Ô¼ºÖØж¨Ò壬ÒòΪhashCode()ĬÈÏÇ°ÃæÒѾ˵À²£¬¶øequals() ĬÈÏÊDZȽϵĶÔÏóÒýÓã¬ÄãÏÖÔÚÏëһϣ¬Èç¹ûÄã²»¶¨Òåequals()µÄ»°£¬ÄÇôͬһ¸öÀà²úÉúµÄÁ½¸öÄÚÈÝÍêÈ«ÏàͬµÄ¶ÔÏ󶼿ÉÒÔ´æÈëSet£¬ÒòΪËûÃÇÊÇͨ¹ý equals()À´È·¶¨µÄ£¬ÕâÑù¾ÍʹµÃHashSet ʧȥÁËËûµÄÒâÒå¡£
¿´Ò»ÏÂÏÂÃæÕâ¸ö£º
public class Test {
public static void main(String[] args) {
HashSet set = new HashSet();
for (int i = 0; i <= 3; i++){
set.add(new Demo1(i,i));
}
System.out.println(set);
set.add(new Demo1(1,1));
System.out.println(set);
System.out.println(set.contains(new Demo1(0,0)));
System.out.println(set.add(new Demo1(1,1)));
System.out.println(set.add(new Demo1(4,4)));
System.out.println(set);
}
private static class Demo1 {
private int value;
private int id;
public Demo1(int value,int id) {
this.value = value;
this.id=id;
}
public String toString() {
return " value = " + value;
}
public boolean equals(Object o) {
Demo1 a = (Demo1) o;
return (a.value == value) ? true : false;
}
public int hashCode() {
return id;
}
}
}
½á¹û£º
[ value = 2, value = 1, value = 3, value = 0]
[ value = 2, value = 1, value = 3, value = 0]
true
false
true
[ value = 2, value = 4, value = 1, value = 3, value =
Ïà¹ØÎĵµ£º
ÓÃJava½Ó¿ÚʵÏֻص÷º¯ÊýµÄµÈ¼Û¹¦ÄÜ
Ê×ÏÈ£¬¿´Ò»Ï»ص÷º¯ÊýµÄ¶¨Òå¼°ÆðÔ´£º
¼ò¶øÑÔÖ®£¬»Øµ÷º¯Êý¾ÍÊÇÒ»¸öͨ¹ýº¯ÊýÖ¸Õëµ÷Óõĺ¯Êý£¬Èç¹ûÄã°Ñº¯ÊýµÄÖ¸Õë(µØÖ·)×÷Ϊ²ÎÊý´«µÝ¸øÁíÒ»¸öº¯Êý£¬µ±Õâ¸öÖ¸Õë±»ÓÃΪµ÷ÓÃËüËùÖ¸ÏòµÄº¯Êýʱ£¬ÎÒÃǾÍ˵Êǻص÷º¯Êý¡£
ΪʲôҪʹÓûص÷º¯Êý£¿
ÒòΪ¿ÉÒ԰ѵ÷ÓÃÕßÓë±»µ÷ÓÃÕß·Ö¿ª¡£µ÷ÓÃÕß²»¹ØÐı» ......
JAVA³ÌÐò·´±àÒ빤¾ß
ÏÂÔصØÖ·£ºhttp://java.decompiler.free.fr/?q=jdgui
JD-GUI
JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields.
JD-GUI is fre ......
Èç¹û×Ô¼ºµÄjava projectÖÐÐèÒªÒýÓöîÍâµÄjar°ü×÷Ϊ×ÊÔ´Îļþ£¬ÄÇôÐèÒª×Ô¶¨ÒåÅäÖÃÎļþMANIFEST.MF ,ÀýÈ磺
Manifest-Version: 1.0
Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jar lib\log4j-1.2.13.jar lib\mysql-connector-java-3.1.13-bin.jar
Main-Class: src.YourMainClassName
ÆäÖеÄClass-Path¾ÍÖ¸¶¨ÁËÍ ......
1¡¢½«org.vssplugin_1.6.2Îļþ¼Ð¼°Îļþ¼ÐÖеÄÄÚÈÝcopyµ½...\Genuitec\Common\pluginsĿ¼Ï¡£
2¡¢ÔÚĿ¼...\Genuitec\MyEclipse 7.0\configuration\org.eclipse.equinox.simpleconfigurator µÄÎļþbundles.info×îºó¼ÓÒ»ÐÐ
org.vssplugin,1.6.2,file:plugins\org.vssplugin_1.6.2\,4,false
3¡¢ÖØÆôMyEclipse7.0¼´¿É  ......
ÖÚËùÖÜÖª£¬ÔÚ³ÌÐò¿ª·¢ÖУ¬ÄÑÃâ»áÓöµ½ÐèҪƥÅä¡¢²éÕÒ¡¢Ìæ»»¡¢ÅжÏ×Ö·û´®µÄÇé¿ö·¢Éú£¬¶øÕâЩÇé¿öÓÐʱÓֱȽϸ´ÔÓ£¬Èç¹ûÓô¿±àÂ뷽ʽ½â¾ö£¬ÍùÍù»áÀ˷ѳÌÐòÔ±µÄʱ¼ä¼°¾«Á¦¡£Òò´Ë£¬Ñ§Ï°¼°Ê¹ÓÃÕýÔò±í´ïʽ£¬±ã³ÉÁ˽â¾öÕâһì¶ÜµÄÖ÷ÒªÊֶΡ£
´ó¼Ò¶¼ÖªµÀ£¬ÕýÔò±í´ïʽÊÇÒ»ÖÖ¿ÉÒÔÓÃÓÚģʽƥÅäºÍÌæ»»µÄ¹æ·¶£¬Ò»¸öÕýÔò±í´ïʽ¾ÍÊÇÓÉ ......