javaÃüÃû¹æ·¶_±à³Ì¹ßÀýºÍ´úÂë·¶Àý
1. ±à³Ì¹ßÀý(Programming Practices)
9.1 Ìṩ¶ÔʵÀýÒÔ¼°Àà±äÁ¿µÄ·ÃÎÊ¿ØÖÆ(Providing Access to Instance and Class Variables)
ÈôûÓÐ×ã¹»ÀíÓÉ£¬²»Òª°ÑʵÀý»òÀà±äÁ¿ÉùÃ÷Ϊ¹«ÓС£Í¨³££¬ÊµÀý±äÁ¿ÎÞÐèÏÔʽµÄÉèÖÃ(set)ºÍ»ñÈ¡(gotten)£¬Í¨³£Õâ×÷Ϊ·½·¨µ÷ÓõıßԵЧӦ (side effect)¶ø²úÉú¡£
Ò»¸ö¾ßÓй«ÓÐʵÀý±äÁ¿µÄÇ¡µ±Àý×Ó£¬ÊÇÀà½ö×÷ΪÊý¾Ý½á¹¹£¬Ã»ÓÐÐÐΪ¡£Ò༴£¬ÈôÄãҪʹÓÃÒ»¸ö½á¹¹(struct)¶ø·ÇÒ»¸öÀà(Èç¹ûjavaÖ§³Ö½á¹¹µÄ»°)£¬ÄÇô°ÑÀàµÄʵÀý±äÁ¿ÉùÃ÷Ϊ¹«ÓÐÊǺÏÊʵġ£
9.2 ÒýÓÃÀà±äÁ¿ºÍÀà·½·¨(Referring to Class Variables and Methods)
±ÜÃâÓÃÒ»¸ö¶ÔÏó·ÃÎÊÒ»¸öÀàµÄ¾²Ì¬±äÁ¿ºÍ·½·¨¡£Ó¦¸ÃÓÃÀàÃûÌæ´ú¡£ÀýÈ磺
classMethod(); //OK
AClass.classMethod(); //OK
anObject.classMethod(); //AVOID!
9.3 ³£Á¿(Constants)
λÓÚforÑ»·ÖÐ×÷Ϊ¼ÆÊýÆ÷ÖµµÄÊý×Ö³£Á¿£¬³ýÁË-1,0ºÍ1Ö®Í⣬²»Ó¦±»Ö±½ÓдÈë´úÂë¡£
9.4 ±äÁ¿¸³Öµ(Variable Assignments)
±ÜÃâÔÚÒ»¸öÓï¾äÖиø¶à¸ö±äÁ¿¸³ÏàͬµÄÖµ¡£ËüºÜÄѶÁ¶®¡£ÀýÈ磺
fooBar.fChar = barFoo.lchar = 'c'; // AVOID!
²»Òª½«¸³ÖµÔËËã·ûÓÃÔÚÈÝÒ×ÓëÏàµÈ¹ØÏµÔËËã·û»ìÏýµÄµØ·½¡£ÀýÈ磺
if (c++ = d++) { // AVOID! (Java disallows)
...
}
Ó¦¸Ãд³É
if ((c++ = d++) != 0) {
...
}
²»ÒªÊ¹ÓÃÄÚǶ(embedded)¸³ÖµÔËËã·ûÊÔͼÌá¸ßÔËÐÐʱµÄЧÂÊ£¬ÕâÊDZàÒëÆ÷µÄ¹¤×÷¡£ÀýÈ磺
d = (a = b + c) + r; // AVOID!
Ó¦¸Ãд³É
a = b + c;
d = a + r;
9.5 ÆäËü¹ßÀý(Miscellaneous Practices)
9.5.1 Ô²À¨ºÅ(Parentheses)
Ò»°ã¶øÑÔ£¬ÔÚº¬ÓжàÖÖÔËËã·ûµÄ±í´ïʽÖÐʹÓÃÔ²À¨ºÅÀ´±ÜÃâÔËËã·ûÓÅÏȼ¶ÎÊÌ⣬ÊǸöºÃ·½·¨¡£¼´Ê¹ÔËËã·ûµÄÓÅÏȼ¶¶ÔÄã¶øÑÔ¿ÉÄܺÜÇå³þ£¬µ«¶ÔÆäËûÈËδ±ØÈç´Ë¡£Äã²»ÄܼÙÉè±ðµÄ³ÌÐòÔ±ºÍÄãÒ»ÑùÇå³þÔËËã·ûµÄÓÅÏȼ¶¡£
if (a == b && c == d) // AVOID!
if ((a == b) && (c == d)) // RIGHT
9.5.2 ·µ»ØÖµ(Returning Values)
Éè·¨ÈÃÄãµÄ³ÌÐò½á¹¹·ûºÏÄ¿µÄ¡£ÀýÈ磺
if (booleanExpression) {
return true;
} else {
return false;
}
Ó¦¸Ã´úÖ®ÒÔÈçÏ·½·¨£º
return booleanExpression;
ÀàËÆµØ£º
if (condition) {
return x;
}
return y;
Ó¦¸Ãд×ö£º
return (condition ? x : y);
9.5.3 &
Ïà¹ØÎĵµ£º
/************************************************
MD5 Ëã·¨µÄJava Bean
*************************************************/
package beartool;
import java.lang.reflect.*;
public class MD5 {
/* ÏÂÃæÕâЩS11-S44ʵ¼ÊÉÏÊÇÒ»¸ö4*4µÄ¾ ......
Java ¶àÏ̱߳à³ÌÖ®Æß£ºËÀËø£¨¸½Ô´´úÂ룩
Ô´´úÂëÏÂÔØ
¶àÏ̱߳à³ÌÖУ¬Ïß³ÌËÀËøÒ²ÊÇÒ»¸ö±È½ÏÓÐȤµÄÎÊÌ⡣Ȼ¶øËÀËø·¢ÉúµÄ¿ÉÄÜÐÔºÜС£¬ÕýÒòÈç´Ë£¬´ó¼Ò¿ÉÄܶԴ˲»ÊǺÜÊìϤ¡£µ«ÊÇËÀËø²¢²»ÊDz»ÖØÒª£¬ÒòΪËüȷȷʵʵ´æÔÚ×Å£¬ËæÊ±»á³öÏÖÔÚÎÒÃǵijÌÐòÖ®ÖС£ºÜ¶àÅóÓÑÃæÊÔµÄʱºò¶¼Óöµ½¹ýÕâ ......
ÐòÁл¯µÄ¹ý³Ì¾ÍÊǽ«¶ÔÏóдÈë×Ö½ÚÁ÷ºÍ´Ó×Ö½ÚÁ÷ÖжÁÈ¡¶ÔÏó¡£½«¶ÔÏó״̬ת»»³É×Ö½ÚÁ÷Ö®ºó£¬¿ÉÒÔÓÃjava.io°üÖеĸ÷ÖÖ×Ö½ÚÁ÷ÀཫÆä±£´æµ½ÎļþÖУ¬¿ÉÒÔͨ¹ý¹ÜµÀ»òÏ̶߳ÁÈ¡£¬»òͨ¹ýÍøÂçÁ¬½Ó½«¶ÔÏóÊý¾Ý·¢Ë͵½ÁíÒ»Ö÷»ú¡£¶ÔÏóÐòÁл¯¹¦Äܷdz£¼òµ¥¡¢Ç¿´ó£¬ÔÚRMI¡¢Socket¡¢JMS¡¢EJB¶¼ÓÐÓ¦Ó᣶ÔÏóÐòÁл¯ÎÊÌâÔÚÍøÂç±à³ÌÖв¢²»ÊÇ×¶¯ÈË ......
¼òµ¥À´Ëµ£¬ ½Ó¿ÚÊǹ«¿ªµÄ£¬ÀïÃæ²»ÄÜÓÐ˽Óеķ½·¨»ò±äÁ¿£¬ÊÇÓÃÓÚÈñðÈËʹÓõ쬶ø³éÏóÀàÊÇ¿ÉÒÔÓÐ˽Óз½·¨»ò˽ÓбäÁ¿µÄ£¬ÁíÍ⣬ʵÏÖ½Ó¿ÚµÄÒ»¶¨ÒªÊµÏÖ½Ó¿ÚÀﶨÒåµÄËùÓз½·¨£¬¶øÊµÏÖ³éÏóÀà¿ÉÒÔÓÐÑ¡ÔñµØÖØÐ´ÐèÒªÓõ½µÄ·½·¨¡£
Ò»°ãµÄÓ¦ÓÃÀ×î¶¥¼¶µÄÊǽӿڣ¬È»ºóÊdzéÏóÀàʵÏÖ½Ó¿Ú£¬×îºó²Åµ½¾ßÌåÀàʵÏÖ¡£
»¹ÓУ¬½Ó¿Ú¿ÉÒÔʵÏÖ¶àÖ ......
Blog from http://forum.xda-developers.com/showthread.php?t=552846
I've just pushed new Hero Java app into my rogers build and it works fine.
What you basically need is:
Jbed.apk (install with adb install)
libjbedvm.so (adb push /system/lib) - remember to remount as RW.
I strongly suggest to ......