java±àÂë¹æ·¶_Ëõ½øºÍ×¢ÊÍ
1. Ëõ½øÅŰæ(Indentation)
4¸ö¿Õ¸ñ³£±»×÷ΪËõ½øÅŰæµÄÒ»¸öµ¥Î»¡£Ëõ½øµÄÈ·ÇнâÊͲ¢Î´Ïêϸָ¶¨(¿Õ¸ñ vs. ÖÆ±í·û)¡£Ò»¸öÖÆ±í·ûµÈÓÚn¸ö¿Õ¸ñ(ÊÓ¾ßÌåµÄ±à¼Æ÷¶ø¶¨£¬EclipseĬÈÏÒ»¸öÖÆ±í·ûΪ4¸ö×Ö·û)¡£
3.1 Ð㤶È(Line Length)
¾¡Á¿±ÜÃâÒ»Ðеij¤¶È³¬¹ý80¸ö×Ö·û£¬ÒòΪºÜ¶àÖն˺͹¤¾ß²»Äܺܺô¦ÀíÖ®¡£
×¢Ò⣺¼øÓÚEclipse¿ª·¢¹¤¾ß¹¤×÷ÇøµÄ×ó²àºÍÓҲ඼±»·Ç´úÂë±à¼Æ÷ËùÕ¼¾Ý£¬Òò´Ë½¨ÒéÿÐеĴúÂ볤¶È²»Òª³¬¹ý70¸ö×Ö·û¡£
3.2 »»ÐÐ(Wrapping Lines)
µ±Ò»¸ö±í´ïʽÎÞ·¨ÈÝÄÉÔÚÒ»ÐÐÄÚʱ£¬¿ÉÒÔÒÀ¾ÝÈçÏÂÒ»°ã¹æÔò¶Ï¿ªÖ®£º
·ÔÚÒ»¸ö¶ººÅºóÃæ¶Ï¿ª£»
·ÔÚÒ»¸ö²Ù×÷·ûÇ°Ãæ¶Ï¿ª£»
·Äþ¿ÉÑ¡Ôñ½Ï¸ß¼¶±ð(higher-level)µÄ¶Ï¿ª£¬¶ø·Ç½ÏµÍ¼¶±ð(lower-level)µÄ¶Ï¿ª£»
·ÐµÄÒ»ÐÐÓ¦¸ÃÓëÉÏÒ»ÐÐͬһ¼¶±ð±í´ïʽµÄ¿ªÍ·´¦¶ÔÆë¡£
·Èç¹ûÒÔÉϹæÔòµ¼ÖÂÄãµÄ´úÂë»ìÂÒ»òÕßʹÄãµÄ´úÂë¶¼¶Ñ¼·ÔÚÓұߣ¬ÄǾʹúÖ®ÒÔËõ½ø8¸ö¿Õ¸ñ£¬»òÕßÒÔµ÷ÓòÎÊýµÄÊ׸öÀ¨ºÅ¶ÔÆë£¬»òÕßÒÔÊ׸öÔËËã·¨¶ÔÆë¡£
ÒÔÏÂÊǶϿª·½·¨µ÷ÓõÄһЩÀý×Ó£º
someMethod(longExpression1, longExpression2, longExpression3, longExpression4,
longExpression5);
var = someMethod1(longExpression1,
someMethod2(longExpression2, longExpression3));
ÒÔÏÂÊÇÁ½¸ö¶Ï¿ªËãÊõ±í´ïʽµÄÀý×Ó¡£Ç°Õ߸üºÃ£¬ÒòΪ¶Ï¿ª´¦Î»ÓÚÀ¨ºÅ±í´ïʽµÄÍâ±ß£¬ÕâÊǸö½Ï¸ß¼¶±ðµÄ¶Ï¿ª¡£
longName1 = longName2 * ( longName3 + longName4 - longName5 ) +
4 * longname6; //ÍÆ¼öʹÓÃ
longName1 = longName2 * ( longName3 + longName4
- longName5 ) + 4 * longname6; //Ó¦±ÜÃâÕâÑùʹÓÃ
ÒÔÏÂÊÇÁ½¸öËõ½ø·½·¨ÉùÃ÷µÄÀý×Ó¡£Ç°ÕßÊdz£¹æÇéÐΡ£ºóÕßÈôʹÓ󣹿µÄËõ½ø·½Ê½½«»áʹµÚ¶þÐк͵ÚÈýÐÐÒÆµÃºÜ¿¿ÓÒ£¬ËùÒÔ´úÖ®ÒÔËõ½ø¿Õ¸ñ£¬¾¡Á¿ÓëÔËËã·û»òÕßÀ¨ºÅ¶ÔÆë¡£
//CONVENTIONAL INDENTATION
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg, Object andStillAnother) {
...
}
ifÓï¾äµÄ»»ÐÐͨ³£Ê¹ÓÃ8¸ö¿Õ¸ñµÄ¹æÔò£¬ÒòΪ³£¹æËõ½ø(4¸ö¿Õ¸ñ)»áʹÓï¾äÌå¿´Æð
Ïà¹ØÎĵµ£º
class Super { static int taxi = 1729; }
class Sub extends Super {
static { System.out.print("Sub "); }
}
class Test {
public static void main(String[] args) {
System.out.println(Sub.taxi);
}
}
Êä³ö£º1729
֪ʶҪµã£º
A reference to a class field causes initialization of ......
ÏÈд³ÌÐò£¬ÔÚÀ´½âÊͼòµ¥¹¤³§ºÍ¹¤³§·½·¨Ä£Ê½¡£
1¡¢¶¨ÒåÒ»¸öÆû³µ½Ó¿Ú
package com.beckham.factory;
/**
* @author ×÷Õß<Beckham>
* Email:gaowm0207@gmail.com
* Jan 26, 2010 2:35:15 PM
* Version:1.0
*/
public interface Car {
public void start() ;
}
½Ó¿ÚÀïÃæ¶¨ÒåÒ»¸ö·½·¨£ºstart( ......
ÔÚDevoxx 2009£¨Ò»ÄêÒ»¶ÈµÄJavaÉçÇø´ó»á£¬½ñÄêÔÚ11ÔÂ16-20ÈÕ¾ÙÐУ©ÉÏ£¬SunÐû²¼½«ÔÚJDK 7ÖÐÔö¼Ó±Õ°ü¹¦ÄÜ¡£Õâ¸ö¹¦ÄܵÄÌí¼Ó½«´ÓFCM v0.5£¨First-Class Methods£¬µÚÒ»Àà·½·¨£©µÄÓï·¨ºÍÓïÒ⿪ʼ×ÅÊÖ¡£FCMÓëJCAÔ±¾Ò»Í¬±»Ìá½»£¬È»¶øSunÐû²¼JCA½«²»ÔÚJDK 7Öп¼ÂÇ¡£
ͬʱ£¬Sun±íʾJava 7µÄ·¢²¼Ê±¼ä½«±»ÍƳÙÖÁ2010Äêµ×¡£ ......
¼òµ¥À´Ëµ£¬ ½Ó¿ÚÊǹ«¿ªµÄ£¬ÀïÃæ²»ÄÜÓÐ˽Óеķ½·¨»ò±äÁ¿£¬ÊÇÓÃÓÚÈñðÈËʹÓõ쬶ø³éÏóÀàÊÇ¿ÉÒÔÓÐ˽Óз½·¨»ò˽ÓбäÁ¿µÄ£¬ÁíÍ⣬ʵÏÖ½Ó¿ÚµÄÒ»¶¨ÒªÊµÏÖ½Ó¿ÚÀﶨÒåµÄËùÓз½·¨£¬¶øÊµÏÖ³éÏóÀà¿ÉÒÔÓÐÑ¡ÔñµØÖØÐ´ÐèÒªÓõ½µÄ·½·¨¡£
Ò»°ãµÄÓ¦ÓÃÀ×î¶¥¼¶µÄÊǽӿڣ¬È»ºóÊdzéÏóÀàʵÏÖ½Ó¿Ú£¬×îºó²Åµ½¾ßÌåÀàʵÏÖ¡£
»¹ÓУ¬½Ó¿Ú¿ÉÒÔʵÏÖ¶àÖ ......