Java½â»ó2 27±ä»ÃβâµÄIÖµ
ÓëÃÕÌâ26ÖеijÌÐòÒ»Ñù£¬ÏÂÃæµÄ³ÌÐòÒ²°üº¬ÁËÒ»¸ö¼Ç¼ÔÚÖÕֹǰÓжàÉٴεü´úµÄÑ»·¡£ÓëÄǸö³ÌÐò²»Í¬µÄÊÇ£¬Õâ¸ö³ÌÐòʹÓõÄÊÇ×óÒÆ²Ù×÷·û£¨<<£©¡£ÄãµÄÈÎÎñÕÕ¾ÉÊÇÒªÖ¸³öÕâ¸ö³ÌÐò½«´òӡʲô¡£µ±ÄãÔĶÁÕâ¸ö³ÌÐòʱ£¬Çë¼Çס Java ʹÓõÄÊÇ»ùÓÚ2µÄ²¹ÂëµÄ¶þ½øÖÆËãÊõÔËË㣬Òò´Ë-1ÔÚÈκÎÓзûºÅµÄÕûÊýÀàÐÍÖУ¨byte¡¢short¡¢int»òlong£©µÄ±íʾ¶¼ÊÇËùÓеÄλ±»ÖÃλ£º
public class Shifty {
public static void main(String[] args) {
int i = 0;
while (-1 << i != 0)
i++;
System.out.println(i);
}
}
³£Á¿-1ÊÇËùÓÐ32λ¶¼±»ÖÃλµÄintÊýÖµ£¨0xffffffff£©¡£×óÒÆ²Ù×÷·û½«0ÒÆÈëµ½ÓÉÒÆÎ»Ëù¿Õ³öµÄÓұߵÄ×îµÍ룬Òò´Ë±í´ïʽ£¨-1 << i£©½«i×îÓұߵÄλÉèÖÃΪ0£¬²¢±£³ÖÆäÓàµÄ32 - iλΪ1¡£ºÜÃ÷ÏÔ£¬Õâ¸öÑ»·½«Íê³É32´Îµü´ú£¬ÒòΪ-1 << i¶ÔÈκÎСÓÚ32µÄiÀ´Ëµ¶¼²»µÈÓÚ0¡£Äã¿ÉÄÜÆÚÍûÖÕÖ¹Ìõ¼þ²âÊÔÔÚiµÈÓÚ32ʱ·µ»Øfalse£¬´Ó¶øÊ¹³ÌÐò´òÓ¡32£¬µ«ÊÇËü´òÓ¡µÄ²¢²»ÊÇ32¡£Êµ¼ÊÉÏ£¬Ëü²»»á´òÓ¡Èκζ«Î÷£¬¶øÊǽøÈëÁËÒ»¸öÎÞÏÞÑ»·¡£
ÎÊÌâÔÚÓÚ£¨-1 << 32£©µÈÓÚ-1¶ø²»ÊÇ0£¬ÒòÎªÒÆÎ»²Ù×÷·û֮ʹÓÃÆäÓÒ²Ù×÷ÊýµÄµÍ5λ×÷ÎªÒÆÎ»³¤¶È¡£»òÕßÊǵÍ6룬Èç¹ûÆä×ó²Ù×÷ÊýÊÇÒ»¸ölongÀàÊýÖµ[JLS 15.19]¡£
ÕâÌõ¹æÔò×÷ÓÃÓÚÈ«²¿µÄÈý¸öÒÆÎ»²Ù×÷·û£º<<¡¢>>ºÍ>>>¡£ÒÆÎ»³¤¶È×ÜÊǽéÓÚ0µ½31Ö®¼ä£¬Èç¹û×ó²Ù×÷ÊýÊÇlongÀàÐ͵ģ¬Ôò½éÓÚ0µ½63Ö®¼ä¡£Õâ¸ö³¤¶ÈÊǶÔ32È¡ÓàµÄ£¬Èç¹û×ó²Ù×÷ÊýÊÇlongÀàÐ͵ģ¬Ôò¶Ô64È¡Óà¡£Èç¹ûÊÔͼ¶ÔÒ»¸öintÊýÖµÒÆÎ»32룬»òÕßÊǶÔÒ»¸ölongÊýÖµÒÆÎ»64룬¶¼Ö»ÄÜ·µ»ØÕâ¸öÊýÖµ×ÔÉíµÄÖµ¡£Ã»ÓÐÈκÎÒÆÎ»³¤¶È¿ÉÒÔÈÃÒ»¸öintÊýÖµ¶ªÆúÆäËùÓеÄ32룬»òÕßÊÇÈÃÒ»¸ölongÊýÖµ¶ªÆúÆäËùÓеÄ64λ¡£
ÐÒÔ˵ÄÊÇ£¬ÓÐÒ»¸ö·Ç³£ÈÝÒ׵ķ½Ê½Äܹ»¶©Õý¸ÃÎÊÌâ¡£ÎÒÃDz»ÊÇÈÃ-1ÖØ¸´µØÒÆÎ»²»Í¬µÄÒÆÎ»³¤¶È£¬¶øÊǽ«Ç°Ò»´ÎÒÆÎ»²Ù×÷µÄ½á¹û±£´æÆðÀ´£¬²¢ÇÒÈÃËüÔÚÿһ´Îµü´úʱ¶¼Ïò×óÔÙÒÆ1λ¡£ÏÂÃæÕâ¸ö°æ±¾µÄ³ÌÐò¾Í¿ÉÒÔ´òÓ¡³öÎÒÃÇËùÆÚÍûµÄ32£º
public class Shifty {
public static void main(String[] args) {
int distance = 0;
for (int val = -1; val != 0; val <<= 1)
distance++;
System.out.println(distance);
}
}
Õâ¸ö¶©Õý¹ýµÄ³ÌÐò˵Ã÷ÁËÒ»ÌõÆÕ±éµÄÔÔò£ºÈç¹û¿ÉÄܵϰ£¬ÒÆÎ»³¤¶ÈÓ¦¸ÃÊdz£Á¿¡£Èç¹ûÒÆÎ»³¤¶È½ô¶¢×ÅÄã²»·Å£¬ÄÇôÄãÈÃÆäÖµ³¬¹ý31£¬»òÕßÈç¹û×ó²Ù×÷Êý
Ïà¹ØÎĵµ£º
ÖÚËùÖÜÖª£¬JavaÓïÑÔÊÇÒ»Ãŷdz£ÊʺÏÍøÂ翪·¢µÄÓïÑÔ£¬Óà JavaÓïÑÔ½øÐÐÐÔÄܲâÊԽű¾¿ª·¢½«»á´ó´óÌá¸ß²âÊÔ¿ª·¢Ð§ÂÊ¡£LoadRunnerÖÐÌṩÁ˶ÔJavaÐéÄâÓû§µÄÖ§³Ö¡£JavaÐéÄâÓû§ÒÀÍÐÓÚJDK£¬Õâ´ó´óÀ©³äÁËLoadRunnerµÄ½Å±¾¿ª·¢¹¦ÄÜ¡£²âÊÔÈËÔ±¼È¿ÉÒÔÓÃJavaÐéÄâÓû§À´²âÊÔ»ùÓÚJavaµÄÓ¦ÓÃϵͳµÄÐÔÄÜ£¬ÓÖ¿ÉÒÔʹÓÃJavaÓïÑÔµÄÇ¿´ó¿ª·¢½Å±¾ ......
......
»ù±¾ÀàÐÍ£¬»òÕß½Ð×öÄÚÖÃÀàÐÍ£¬ÊÇJAVAÖв»Í¬ÓÚÀàµÄÌØÊâÀàÐÍ¡£ËüÃÇÊÇÎÒÃDZà³ÌÖÐʹÓÃ×îÆµ·±µÄÀàÐÍ£¬Òò´ËÃæÊÔÌâÖÐÒ²×ÜÉÙ²»ÁËËüÃǵÄÉíÓ°£¬ÔÚÕâÆªÎÄÕÂÖÐÎÒÃǽ«´ÓÃæÊÔÖг£¿¼µÄ¼¸¸ö·½ÃæÀ´»Ø¹ËÒ»ÏÂÓë»ù±¾ÀàÐÍÏà¹ØµÄ֪ʶ¡£
»ù±¾ÀàÐ͹²ÓаËÖÖ£¬ËüÃÇ·Ö±ð¶¼ÓÐÏà¶ÔÓ¦µÄ°ü×°Àà¡£¹ØÓÚËüÃǵÄÏêϸÐÅÏ¢Çë¿´ÏÂ±í£º
»ù±¾ÀàÐÍ¿ÉÒÔ·ÖΪÈýÀ࣬ ......
1¡¢Óï·¨£º±ØÐë±È½ÏÊìϤ£¬ÔÚд´úÂëµÄʱºòIDEµÄ±à¼Æ÷¶ÔijһÐб¨´íÓ¦¸ÃÄܹ»¸ù¾Ý±¨´íÐÅÏ¢ÖªµÀÊÇʲôÑùµÄÓï·¨´íÎó²¢ÇÒÖªµÀÈκÎÐÞÕý¡£
2¡¢ÃüÁ±ØÐëÊìϤJDK´øµÄһЩ³£ÓÃÃüÁî¼°Æä³£ÓÃÑ¡ÏÃüÁîÖÁÉÙÐèÒªÊìϤ£ºappletviewer¡¢ HtmlConverter¡¢jar¡¢ java¡¢javac¡¢javadoc¡¢javap¡¢javaw¡¢native2ascii¡¢serialver£¬Èç¹ûÕâЩÃüÁ ......
ÏÂÃæµÄ³ÌÐò±»Éè¼ÆÓÃÀ´´òÓ¡ËüµÄÀàÎļþµÄÃû³Æ¡£Èç¹ûÄã²»ÊìϤÀà×ÖÃæ³£Á¿£¬ÄÇôÎÒ¸æËßÄãMe.class.getName()½«·µ»ØMeÀàÍêÕûµÄÃû³Æ£¬¼´“com.javapuzzlers.Me”¡£ÄÇô£¬Õâ¸ö³ÌÐò»á´òÓ¡³öÊ²Ã´ÄØ£¿
package com.javapuzzlers;
public class Me {
public static void main(String[] args){
System.out.pr ......