JavaÃÕÌâ1 7»¥»»ÄÚÈÝ
ÏÂÃæµÄ³ÌÐòʹÓÃÁ˸´ºÏµÄÒì»ò¸³Öµ²Ù×÷·û£¬ËüËùչʾµÄ¼¼ÊõÊÇÒ»ÖÖ±à³ÌϰËס£ÄÇôËü»á´òÓ¡³öÊ²Ã´ÄØ£¿
public class CleverSwap{
public static void main(String[] args){
int x = 1984; // (0x7c0)
int y = 2001; // (0x7d1)
x^= y^= x^= y;
System.out.println("x= " + x + "; y= " + y);
}
}
¾ÍÏñÆäÃû³ÆËù°µÊ¾µÄ£¬Õâ¸ö³ÌÐòÓ¦¸Ã½»»»±äÁ¿xºÍyµÄÖµ¡£Èç¹ûÄãÔËÐÐËü£¬¾Í»á·¢Ïֺܱ¯²Ò£¬Ëüʧ°ÜÁË£¬´òÓ¡µÄÊÇ
x = 0; y = 1984¡£
½»»»Á½¸ö±äÁ¿µÄ×îÏÔ¶øÒ×¼ûµÄ·½Ê½ÊÇʹÓÃÒ»¸öÁÙʱ±äÁ¿£º
int tmp = x;
x = y;
y = tmp;
ºÜ¾ÃÒÔǰ£¬µ±ÖÐÑë´¦ÀíÆ÷Ö»ÓÐÉÙÊý¼Ä´æÆ÷ʱ£¬ÈËÃÇ·¢ÏÖ¿ÉÒÔͨ¹ýÀûÓÃÒì»ò²Ù×÷·û£¨^£©µÄÊôÐÔ(x ^ y ^ x) == yÀ´±ÜÃâʹÓÃÁÙʱ±äÁ¿£º
x = x ^ y;
y = y ^ x;
x = y ^ x;
Õâ¸ö¹ßÓ÷¨Ôø¾ÔÚC±à³ÌÓïÑÔÖб»Ê¹Óùý£¬²¢½øÒ»²½±»¹¹½¨µ½ÁËC++ÖУ¬µ«ÊÇËü²¢²»±£Ö¤ÔÚ¶þÕßÖж¼¿ÉÒÔÕýÈ·ÔËÐС£µ«ÊÇÓÐÒ»µãÊǿ϶¨µÄ£¬ÄǾÍÊÇËüÔÚJavaÖп϶¨ÊDz»ÄÜÕýÈ·ÔËÐеġ£
JavaÓïÑԹ淶ÃèÊöµ½£º²Ù×÷·ûµÄ²Ù×÷ÊýÊÇ´Ó×óÏòÓÒÇóÖµµÄ¡£ÎªÁËÇó±í´ïʽ x ^= exprµÄÖµ£¬xµÄÖµÊÇÔÚ¼ÆËãexpr֮ǰ±»ÌáÈ¡µÄ£¬²¢ÇÒÕâÁ½¸öÖµµÄÒì»ò½á¹û±»¸³¸ø±äÁ¿x¡£ÔÚCleverSwap³ÌÐòÖУ¬±äÁ¿xµÄÖµ±»ÌáÈ¡ÁËÁ½´Î——ÿ´ÎÔÚ±í´ïʽÖгöÏÖʱ¶¼Ìáȡһ´Î——µ«ÊÇÁ½´ÎÌáÈ¡¶¼·¢ÉúÔÚËùÓеĸ³Öµ²Ù×÷֮ǰ¡£
ÏÂÃæµÄ´úÂë¶ÎÏêϸµØÃèÊöÁ˽«»¥»»¹ßÓ÷¨·Ö½â¿ªÖ®ºóµÄÐÐΪ£¬²¢ÇÒ½âÊÍÁËΪʲô²úÉúµÄÊÇÎÒÃÇËù¿´µ½µÄÊä³ö£º
// JavaÖÐx^= y^= x^= yµÄʵ¼ÊÐÐΪ
int tmp1 = x ; // xÔÚ±í´ïʽÖеÚÒ»´Î³öÏÖ
int tmp2 = y ; // yµÄµÚÒ»´Î³öÏÖ
int tmp3 = x ^ y ; // ¼ÆËãx ^ y
x = tmp3 ; // ×îºóÒ»¸ö¸³Öµ£º´æ´¢x ^ y µ½ x
y = tmp2 ^ tmp3 ; // µÚ¶þ¸ö¸³Öµ£º´æ´¢×î³õµÄxÖµµ½yÖÐ
x = tmp1 ^ y ; // µÚÒ»¸ö¸³Öµ£º´æ´¢0µ½xÖÐ
ÔÚCºÍC++ÖУ¬²¢Ã»ÓÐÖ¸¶¨±í´ïʽµÄ¼ÆËã˳Ðò¡£µ±±àÒë±í´ïʽx ^= exprʱ£¬Ðí¶àCºÍC++±àÒëÆ÷¶¼ÊÇÔÚ¼ÆËãexprÖ®ºó²ÅÌáÈ¡xµÄÖµµÄ£¬Õâ¾ÍʹµÃÉÏÊöµÄ¹ßÓ÷¨¿ÉÒÔÕý³£ÔËת¡£¾¡¹ÜËü¿ÉÒÔÕý³£ÔËת£¬µ«ÊÇËüÈÔȻΥ±³ÁËC/C++Óйز»ÄÜÔÚÁ½¸öÁ¬ÐøµÄÐòÁеãÖ®¼äÖØ¸´Ð޸ıäÁ¿µÄ¹æÔò¡£Òò´Ë£¬Õâ¸ö¹ßÓ÷¨µÄÐÐΪÔÚCºÍC++ÖÐҲûÓÐÃ÷È·¶¨Òå¡£
ΪÁË¿´ÖØÆä¼ÛÖµ£¬ÎÒÃÇ»¹ÊÇ¿ÉÒÔд³ö²»ÓÃÁÙʱ±äÁ¿¾Í¿ÉÒÔ»¥»»Á½¸ö±äÁ¿ÄÚÈݵÄJava±í´ïʽµÄ¡£µ«ÊÇËüͬÑùÊdzóª¶øÎÞÓõģº
// ɱ¼¦ÓÃÅ£µ¶µÄ×ö·¨£¬Ç§Íò²»ÒªÕâô×ö£¡
y = (x^= (y^= x))^ y ;
Õâ¸ö½ÌѵºÜ¼òµ¥£ºÔÚµ¥¸öµÄ±í´ïʽÖв»Òª¶ÔÏàͬµÄ±äÁ¿¸³ÖµÁ½´Î¡
Ïà¹ØÎĵµ£º
Ôڳɹ¦ÊµÏÖJavaµ÷ÓÃC++Ö®ºó£¬½ÓÏÂÀ´Ïëµ½ÄÜ·ñͨ¹ýJNAʵÏÖJavaµ÷ÓÃFortran£¬½ñÌìÊÔÑéÁËһϣ¬»¹ÊDZȽÏÈÝÒ׵ġ£
ÍøÉÏÓÐÒ»¸öJavaµ÷ÓÃF95µÄÀý×Ó£¬µ«ÊÇÎÒ¿¼ÂDz»½öҪʵÏÖF95µÄµ÷Ó㬻¹ÒªÊµÏÖF77µÄµ÷Óã¬ËùÒÔ·ÑÁËһЩÖÜÕÛ¡£
ÎÊÌâµÄ¹Ø¼üÔÚÓÚF77Ϊ¹ý³ÌÃû×Ô¶¯Ìí¼ÓÁËÒ»¸öβ²¿µÄÏ»®Ïߣ¬ËùÒÔsub1Õâ¸ö¹ý³Ì£¬µ½JavaÒ»¶Ë£¬¾Í±ä³ÉÁËsub1_£¬ ......
JavaÖеÄtransient£¬volatileºÍstrictfp¹Ø¼ü×Ö
Èç¹ûÓÃtransientÉùÃ÷Ò»¸öʵÀý±äÁ¿£¬µ±¶ÔÏó´æ´¢Ê±£¬ËüµÄÖµ²»ÐèҪά³Ö¡£ÀýÈ磺
Java´úÂë
class T {
transient int a; //²»ÐèҪά³Ö
int b;  ......
ÔÚstrutsÖÐÓкöàµÄ±êÇ©·½±ã¿ª·¢£¬±ÈÈç<logic:iterate>±êÇ©£¬¿ÉÒԺܺõÄÏÔʾlistµÄÄÚÈÝ£º
£¨Ò»£©¶ÔListµÄÑ»·±éÀú£º
1.Ïȶ¨ÒåÒ»¸öUserÀࣺ
import java.io.Serializable;
public final class User implements Serializable {
private String name = null;
private String password ......
JAVAÊý¾ÝÀàÐÍת»»
һЩ³õѧJAVAµÄÅóÓÑ¿ÉÄÜ»áÓöµ½JAVAµÄÊý¾ÝÀàÐÍÖ®¼äת»»µÄ¿àÄÕ£¬ÀýÈ磬ÕûÊýºÍfloat,doubleÐÍÖ®¼äµÄת»»£¬ÕûÊýºÍStringÀàÐÍÖ®¼äµÄ
ת»»£¬ÒÔ¼°´¦Àí¡¢ÏÔʾʱ¼ä·½ÃæµÄÎÊÌâµÈ¡£ÏÂÃæ±ÊÕ߾Ϳª·¢ÖеÄһЩÌå»á½éÉܸø´ó¼Ò¡£
ÎÒÃÇÖªµÀ£¬JavaµÄÊý¾ÝÀàÐÍ·ÖΪÈý´óÀà ......
Java ClassLoader (1) – What is a ClassLoader?
Java ClassLoader (2) – Write your own ClassLoader
Java ClassLoader (3) – Namespaces
Java ClassLoader (4) – Loading a custom ClassLoader on JVM start ......