JAVA³£¼ûÃæÊÔÌâ¼°½â´ð ÏÂÔØ±¾ÎÄ

JAVA³£¼ûÃæÊÔÌâ¼°½â´ð£¨¾«»ª£©

1£©transientºÍvolatileÊÇjava¹Ø¼ü×ÖÂ𣿣¨Ë²Áª£©

Èç¹ûÓÃtransientÉùÃ÷Ò»¸öʵÀý±äÁ¿£¬µ±¶ÔÏó´æ´¢Ê±£¬ËüµÄÖµ²»ÐèҪά³Ö¡£ÀýÈ磺 class T {

transient int a; //²»ÐèҪά³Ö int b; //ÐèҪά³Ö }

ÕâÀÈç¹ûTÀàµÄÒ»¸ö¶ÔÏóдÈëÒ»¸ö³Ö¾ÃµÄ´æ´¢ÇøÓò£¬aµÄÄÚÈݲ»±»±£´æ£¬µ«bµÄ½«±»±£´æ¡£

volatileÐÞÊηû¸æËß±àÒëÆ÷±»volatileÐÞÊεıäÁ¿¿ÉÒÔ±»³ÌÐòµÄÆäËû²¿·Ö¸Ä±ä¡£ÔÚ¶àÏ̳߳ÌÐòÖУ¬ÓÐʱÁ½¸ö»ò¸ü¶àµÄÏ̹߳²ÏíÒ»¸öÏàͬµÄʵÀý±äÁ¿¡£¿¼ÂÇЧÂÊÎÊÌ⣬ÿ¸öÏ߳̿ÉÒÔ×Ô¼º±£´æ¸Ã¹²Ïí±äÁ¿µÄ˽Óп½±´¡£Êµ¼ÊµÄ±äÁ¿¸±±¾ÔÚ²»Í¬µÄʱºò¸üУ¬Èçµ±½øÈësynchronized·½·¨Ê±¡£ ÓÃstrictfpÐÞÊÎÀà»ò·½·¨£¬¿ÉÒÔÈ·±£¸¡µãÔËË㣨ÒÔ¼°ËùÓÐÇжϣ©ÕýÈçÔçÆÚµÄJava°æ±¾ÄÇÑù׼ȷ¡£ÇжÏÖ»Ó°ÏìijЩ²Ù×÷µÄÖ¸Êý¡£µ±Ò»¸öÀà±»strictfpÐÞÊΣ¬ËùÓеķ½·¨×Ô¶¯±»strictfpÐÞÊΡ£ strictfpµÄÒâ˼ÊÇFP-strict£¬Ò²¾ÍÊÇ˵¾«È·¸¡µãµÄÒâ˼¡£ÔÚJavaÐéÄâ»ú½øÐи¡µãÔËËãʱ£¬Èç¹ûûÓÐÖ¸¶¨strictfp¹Ø¼ü×Öʱ£¬JavaµÄ±àÒëÆ÷ÒÔ¼°ÔËÐл·¾³ÔÚ¶Ô¸¡µãÔËËãµÄ±í´ïʽÊDzÉȡһÖÖ½üËÆÓÚÎÒÐÐ

ÎÒËØµÄÐÐΪÀ´Íê³ÉÕâЩ²Ù×÷£¬ÒÔÖÂÓڵõ½µÄ½á¹ûÍùÍùÎÞ·¨ÁîÄãÂúÒâ¡£¶øÒ»µ©Ê¹ÓÃÁËstrictfpÀ´ÉùÃ÷Ò»¸öÀà¡¢½Ó¿Ú»òÕß·½·¨Ê±£¬ÄÇôËùÉùÃ÷µÄ·¶Î§ÄÚJavaµÄ±àÒëÆ÷ÒÔ¼°ÔËÐл·¾³»áÍêÈ«ÒÀÕÕ¸¡µã¹æ·¶IEEE-754À´Ö´ÐС£Òò´ËÈç¹ûÄãÏëÈÃÄãµÄ¸¡µãÔËËã¸ü¼Ó¾«È·£¬¶øÇÒ²»»áÒòΪ²»Í¬µÄÓ²¼þƽ̨ËùÖ´ÐеĽá¹û²»Ò»ÖµĻ°£¬ÄǾÍÇëÓùؼü×Östrictfp¡£

Äã¿ÉÒÔ½«Ò»¸öÀà¡¢½Ó¿ÚÒÔ¼°·½·¨ÉùÃ÷Ϊstrictfp£¬µ«ÊDz»ÔÊÐí¶Ô½Ó¿ÚÖеķ½·¨ÒÔ¼°¹¹Ô캯ÊýÉùÃ÷strictfp¹Ø¼ü×Ö£¬ÀýÈçÏÂÃæµÄ´úÂ룺 strictfp interface A {}

public strictfp class FpDemo1 { strictfp void f() {} }

2. ´íÎóµÄʹÓ÷½·¨ interface A {

strictfp void f(); }

public class FpDemo2 { strictfp FpDemo2() {} }

Ò»µ©Ê¹ÓÃÁ˹ؼü×ÖstrictfpÀ´ÉùÃ÷ij¸öÀà¡¢½Ó¿Ú»òÕß·½·¨Ê±£¬ÄÇôÔÚÕâ¸ö¹Ø¼ü×ÖËùÉùÃ÷µÄ·¶Î§ÄÚËùÓи¡µãÔËËã¶¼ÊǾ«È·µÄ£¬·ûºÏIEEE-754¹æ·¶

µÄ¡£ÀýÈçÒ»¸öÀà±»ÉùÃ÷Ϊstrictfp£¬ÄÇô¸ÃÀàÖÐËùÓеķ½·¨¶¼ÊÇstrictfpµÄ¡£

2£©³éÏóÀàºÍ½Ó¿ÚÓÐÊ²Ã´Çø±ð£¿£¨Ë²Áª£©

1.abstract class ÔÚ Java ÓïÑÔÖбíʾµÄÊÇÒ»Öּ̳йØÏµ£¬Ò»¸öÀàÖ»ÄÜʹÓÃÒ»´Î¼Ì³Ð¹ØÏµ¡£µ«ÊÇ£¬Ò»¸öÀàÈ´¿ÉÒÔʵÏÖ¶à¸öinterface¡£ 2.ÔÚabstract class ÖпÉÒÔÓÐ×Ô¼ºµÄÊý¾Ý³ÉÔ±£¬Ò²¿ÉÒÔÓзÇabstarctµÄ³ÉÔ±·½·¨£¬¶øÔÚinterfaceÖУ¬Ö»Äܹ»Óо²Ì¬µÄ²»Äܱ»Ð޸ĵÄÊý¾Ý³ÉÔ±£¨Ò²¾ÍÊDZØÐëÊÇstatic finalµÄ£¬²»¹ýÔÚ interfaceÖÐÒ»°ã²»¶¨ÒåÊý¾Ý³ÉÔ±£©£¬ËùÓеijÉÔ±·½·¨¶¼ÊÇabstractµÄ¡£ 3.abstract classºÍinterfaceËù·´Ó³³öµÄÉè¼ÆÀíÄͬ¡£Æäʵabstract class±íʾµÄÊÇ\¹ØÏµ£¬interface±íʾµÄÊÇ\¹ØÏµ¡£

4.ʵÏÖ³éÏóÀàºÍ½Ó¿ÚµÄÀà±ØÐëʵÏÖÆäÖеÄËùÓз½·¨¡£³éÏóÀàÖпÉÒÔÓзdzéÏó·½·¨¡£½Ó¿ÚÖÐÔò²»ÄÜÓÐʵÏÖ·½·¨¡£

5.½Ó¿ÚÖж¨ÒåµÄ±äÁ¿Ä¬ÈÏÊÇpublic static final ÐÍ£¬ÇÒ±ØÐë¸øÆä³õÖµ£¬ËùÒÔʵÏÖÀàÖв»ÄÜÖØÐ¶¨Ò壬Ҳ²»ÄܸıäÆäÖµ¡£

6.³éÏóÀàÖеıäÁ¿Ä¬ÈÏÊÇ friendly ÐÍ£¬ÆäÖµ¿ÉÒÔÔÚ×ÓÀàÖÐÖØÐ¶¨Ò壬Ҳ¿ÉÒÔÖØÐ¸³Öµ¡£

7.½Ó¿ÚÖеķ½·¨Ä¬È϶¼ÊÇ public,abstract ÀàÐ͵ġ£ 3£©ÄÜ˵һÏÂjavaµÄ·´Éä(reflection)»úÖÆÂ𣿣¨Ë²Áª£©

¿ª·ÅÐÔºÍÔ­ÒòÁ¬½Ó(causally-connected)ÊÇ·´ÉäϵͳµÄÁ½´ó»ù±¾ÒªËØ