软件å¼å代ç ï¼è½¯ä»¶å¼å代ç åapkï¼
ä»å¤©ç»åä½å享软件å¼å代ç çç¥è¯ï¼å ¶ä¸ä¹ä¼å¯¹è½¯ä»¶å¼å代ç åapkè¿è¡è§£éï¼å¦æè½ç¢°å·§è§£å³ä½ ç°å¨é¢ä¸´çé®é¢ï¼å«å¿äºå ³æ³¨æ¬ç«ï¼ç°å¨å¼å§å§ï¼
æ¬æç®å½ä¸è§ï¼
- 1ã软件å¼å䏿们叏叏æä»£ç éä¸å¨ä¸åå«ä»ä¹ï¼
- 2ãææ ·æ¥çä¸ä¸ªè½¯ä»¶çæºä»£ç ?
- 3ã软件å¼åå°±åªæ¯ä»£ç åï¼
- 4ãjava软件å¼åç代ç è§è
- 5ãææºåºç¨è½¯ä»¶å¼åéä½ç½®â1234âæ£ç¡®ç代ç
- 6ã软件å¼å--代ç å¤§å ¨
软件å¼å䏿们叏叏æä»£ç éä¸å¨ä¸åå«ä»ä¹ï¼
ç¨åºå¼åä¸æä»¬å¸¸å¸¸ä¸ºäºæé«ä»£ç è¿è¡éåº¦ï¼æé«å¼åæçï¼æä»¬å¸¸å¸¸ä¼ææäºåè½æ¨¡å代ç éä¸å¨ä¸èµ·ï¼è¿å°±æ¯æä»¬é¿å¸¸è¯´çå°è£ ã
1.é¦å å°è£ å°±æ¯æå¶å®é»è¾ä»£ç æ¾å°åºå®ä»£ç åéé¢å»ï¼ç¶å起个åååèµ·æ¥ï¼ä½¿ç¨æäºæéæ§å¶è¢«è°è°ç¨ï¼public,protectedç
ç³»ç»ç»æä»¬æä¾äºè®¸å¤å½æ°ï¼æ¯å¦ä¸é¢çï¼
妿ç»å®ç´¢å¼å¤ç弿¯ä¸ä¸ªå®å ¨ç¨æ·æ°æ®ï¼ 彿°è¿åå ¶å ååçå°åã 妿弿¯ä¸ä¸ªè½»éç¨æ·æ°æ®ï¼ é£ä¹å°±è¿åå®è¡¨ç¤ºçæéã å¦åï¼è¿å NULL ã
æç»å®ç´¢å¼å¤çå¼è½¬æ¢ä¸ºä¸ä¸ª L ua çº¿ç¨ ï¼è¡¨ç¤ºä¸º lu a_State*ï¼ã è¿ä¸ªå¼å¿ é¡»æ¯ä¸ä¸ªçº¿ç¨ï¼ å¦å彿°è¿å NULLã
æç»å®ç´¢å¼å¤çå¼è½¬æ¢ä¸ºä¸è¬ç C æé (void*) ã è¿ä¸ªå¼å¯ä»¥æ¯ä¸ä¸ªç¨æ·å¯¹è±¡ï¼è¡¨ ï¼çº¿ç¨ææ¯ä¸ä¸ªå½æ°ï¼ å¦åï¼ lu a_topointer è¿å NULL ã ä¸åç对象æä¸åçæéã ä¸å卿æéå转ååæç±»åçæ¹æ³ã
æç»å®ç´¢å¼å¤ç L ua å¼è½¬æ¢ä¸ºä¸ä¸ª C å符串ã 妿 len ä¸ä¸º NULL ï¼ å®è¿æå符串é¿åº¦è®¾å° *len ä¸ã è¿ä¸ª L ua å¼å¿ é¡»æ¯ä¸ä¸ªåç¬¦ä¸²ææ¯ä¸ä¸ªæ°åï¼ å¦åè¿åè¿å NULL ã 妿弿¯ä¸ä¸ªæ°åï¼ lu a_tolstring è¿ä¼ æå æ ä¸çé£ä¸ªå¼çå®é ç±»å转æ¢ä¸ºä¸ä¸ªå符串ã ï¼å½éåä¸å¼ è¡¨çæ¶åï¼ è¥æ l ua_tolstring ä½ç¨å¨é®ä¸ï¼ è¿ä¸ªè½¬æ¢æå¯è½å¯¼è´ lu a_next å¼éãï¼
lu a_tolstring è¿åä¸ä¸ªå·²å¯¹é½æé æå Lua ç¶ææºä¸çå符串ã è¿ä¸ªå符串æ»è½ä¿è¯ ï¼ C è¦æ±çï¼æåä¸ä¸ªåç¬¦ä¸ºé¶ ('\0') ï¼ èä¸å®å 许å¨å符串å å å«å¤ä¸ªè¿æ ·çé¶ã
å 为 Lu a ä¸å¯è½åçå徿¶éï¼ æä»¥ä¸ä¿è¯ lua_tolstring è¿åçæéï¼ å¨å¯¹åºçå¼ä»å æ ä¸ç§»é¤åä¾ç¶ææã
å°ä¸ä¸ªé¶ç»å°¾çå符串 s 转æ¢ä¸ºä¸ä¸ªæ°åï¼ å°è¿ä¸ªæ°ååæ ï¼å¹¶è¿ååç¬¦ä¸²çæ»é¿åº¦ï¼å³é¿åº¦å ä¸ï¼ã 转æ¢çç»æå¯è½æ¯æ´æ°ä¹å¯è½æ¯æµ®ç¹æ°ï¼ è¿åå³äº Lu a ç转æ¢è¯æ³ï¼ï¼ã è¿ä¸ªå符串å¯ä»¥æåç½®ååç½®çç©ºæ ¼ä»¥å符å·ã 妿å符串并éä¸ä¸ªææçæ°åï¼è¿å 0 并䏿任ä½ä¸è¥¿åæ ã ï¼æ³¨æï¼è¿ä¸ªç»æå¯ä»¥å½æä¸ä¸ªå¸å°é使ç¨ï¼ä¸ºçå³è½¬æ¢æåãï¼
ä¸ä¸ªä¸éæçç»æï¼ å®æå䏿¡çº¿ç¨å¹¶é´æ¥ï¼éè¿è¯¥çº¿ç¨ï¼å¼ç¨äºæ´ä¸ª Lu a è§£éå¨çç¶æã L ua åºæ¯å®å ¨å¯éå ¥çï¼ å®æ²¡æä»»ä½å ¨å±åéã ç¶ææºææçä¿¡æ¯é½å¯ä»¥éè¿è¿ä¸ªç»æè®¿é®å°ã
2.æé«å¼åæçå代ç çé 读æ§ï¼æä»¬å¸¸å¸¸æä»£ç å°è£ å¨ä¸èµ·ï¼å ¶ä»åè½æ¨¡åä½¿ç¨æ¶åç´æ¥è°ç¨å³å¯ã
ææ ·æ¥çä¸ä¸ªè½¯ä»¶çæºä»£ç ?
对äºç°å¨ç软件æ¥è¯´ï¼æºä»£ç æ¯æåºç¡çé¨åï¼å¾å°äºæºä»£ç ä¹å°±å ä¹å¾å°äºè½¯ä»¶çå ¨é¨ãæºä»£ç 对äºå䏿§è´¨ç软件æ¥è¯´æ¯æå ¶éè¦çï¼ä¸æ¦æ³é²å°±ä¼é æé常大çæå¤±ï¼æä»¥æºä»£ç æ¯ä¸ä¸ªè½¯ä»¶å¼åå¢éçæé«æºå¯ã
æ£å 妿¤ï¼å¾å¤äººåºäºä¸åç®çï¼ä¼æ³åæ³å¾å°è½¯ä»¶çæºä»£ç ï¼ä½æ¯æä»¬ç¥éï¼è½¯ä»¶çæç»äº§åä¸è¬æ¯å·²ç»ç¼è¯è¿çæä»¶ï¼å°±åæä»¬åå¦Cè¯è¨æ¶çæç exe æä»¶ä¸æ ·ï¼æ¯ä¸äºäºè¿å¶ç¬¦ï¼ä¸è½ç´æ¥æ¥çæºç ã
æ³è¦æ¥çä¸ä¸ªè½¯ä»¶çæºä»£ç ï¼é¦å è¦ç¡®å®è¿ä¸ªè½¯ä»¶çå¼åè æ¯å¦å·²ç»å°å ¶å¼æºï¼å¦æå¼æºçè¯å°±ä¸å¿ 大费å¨ç« å°å»åç¼è¯äºï¼ç´æ¥å»å¼æºç¤¾åºéå°±ä¼åç°è¯¥è½¯ä»¶çæºç ï¼å¼åè ä¸è¬ä¹ä¼æä¾æºç çä¸è½½é¾æ¥ã
å¦æè½¯ä»¶ä¸å¼æºï¼é£å°±è¦è¿è¡åç¼è¯äºï¼æ¥ç大夿°è½¯ä»¶çæºç é½éè¦ç¨å°è¿ä¸ªæ¹æ³ï¼å³ä½¿åç¼è¯äºï¼çå°çæºä»£ç 乿¯é常混乱çï¼å 为为äºä¿æ¤æºç ï¼å¼åè å¨ç¼è¯åé½ä¼è¿è¡æ··æ·ï¼ç®çå°±æ¯å³ä½¿æäººåç¼è¯æåï¼ä¹æ æ³çæä»£ç éçé»è¾ï¼è¿ä¹æ¯ä¿æ¤æºç çæåä¸éé²çº¿ã
软件å¼åå°±åªæ¯ä»£ç åï¼
ä½ å¥½ï¼å¾é«å ´åçä½ çé®é¢ã
人们æç§°è½¯ä»¶å·¥ç¨å¸æ¯ç åï¼å¤§æ¦å°±æ¯å 为è§å¾è½¯ä»¶å·¥ç¨å¸å°±æ¯ä¸å³å°æ²ä»£ç ï¼åä½åå³å¨ä¹æ²¡æå¤å¤§åºå«ã
å ¶å®æ²ä»£ç æ¯åæçäºæ äºï¼çæ£çéè¦å·¥ä½æ¯å¦ä½çè§£éæ±ï¼åæéæ±ï¼å°éæ±è¦å®ç°çå 容æä¹æ½è±¡æä»£ç é»è¾ãæ²ä»£ç æ¶å°±åªæ¯æè¿ä¸ªæè·¯éè¿ä»£ç è½å°ã
妿æå¸®å©å°ä½ ï¼è¯·ç¹å»é纳ã
java软件å¼åç代ç è§è
1ãç»ç»ä¸é£æ ¼
(1).å ³é®è¯åæä½ç¬¦ä¹é´å éå½çç©ºæ ¼ã
(2).ç¸å¯¹ç¬ç«çç¨åºåä¸åä¹é´å 空è¡
(3).è¾é¿çè¯å¥ã表达å¼çè¦åæå¤è¡ä¹¦åã
(4).åååºçæ°è¡è¦è¿è¡éåºç缩è¿ï¼ä½¿æçæ´é½ï¼è¯å¥å¯è¯»ã
(5).é¿è¡¨è¾¾å¼è¦å¨ä½ä¼å 级æä½ç¬¦å¤ååæ°è¡ï¼æä½ç¬¦æ¾å¨æ°è¡ä¹é¦ã
(6).循ç¯ã夿çè¯å¥ä¸è¥æè¾é¿çè¡¨è¾¾å¼æè¯å¥ï¼åè¦è¿è¡éåºçååã
(7).è¥å½æ°æè¿ç¨ä¸çåæ°è¾é¿ï¼åè¦è¿è¡éå½çååã
(8).ä¸å 许æå¤ä¸ªçè¯å¥åå¨ä¸è¡ä¸ï¼å³ä¸è¡åªå䏿¡è¯å¥ã
(9).彿°æè¿ç¨çå¼å§ãç»æçå®ä¹å循ç¯ã夿çè¯å¥ä¸ç代ç é½è¦éç¨ç¼©è¿é£æ ¼ã
注ï¼å¦æå¤§å®¶æå ´è¶£å¯ä»¥å°å®å®DIYåä½å®¤åå®¢ï¼æç¸å ³è¯´ææ§çæç« åè§£éã
2ãæ³¨è§£
Java çè¯æ³ä¸ C++ å为ç¸ä¼¼ï¼é£ä¹ï¼ä½ ç¥é Java çæ³¨éæå ç§åï¼æ¯ä¸¤ç§ï¼
// 注éä¸è¡
/* ...... */ 注éè¥å¹²è¡
ä¸å®å ¨å¯¹ï¼é¤äºä»¥ä¸ä¸¤ç§ä¹å¤ï¼è¿æç¬¬ä¸ç§ï¼ææ¡£æ³¨éï¼
/** ...... */ 注éè¥å¹²è¡ï¼å¹¶åå ¥ javadoc ææ¡£
注éè¦ç®åæäºã
String userName = null; //ç¨æ·å
è¾¹å代ç 边注éï¼ä¿®æ¹ä»£ç åæ¶ä¿®æ¹ç¸åºç注éï¼ä»¥ä¿è¯æ³¨éä¸ä»£ç çä¸è´æ§ã
å¨å¿ è¦çå°æ¹æ³¨éï¼æ³¨ééè¦éä¸ã注éçå å®¹è¦æ¸ æ¥ãæäºï¼å«ä¹åç¡®ï¼é²æ¢æ³¨éäºä¹æ§ã
ä¿ææ³¨éä¸å ¶æè¿°ç代ç ç¸é»ï¼å³æ³¨éçå°±è¿ååã
对代ç çæ³¨éåºæ¾å¨å ¶ä¸æ¹ç¸é»ä½ç½®ï¼ä¸å¯æ¾å¨ä¸é¢ãå¯¹æ°æ®ç»æç注éåºæ¾å¨å ¶ä¸æ¹ç¸é»ä½ç½®ï¼ä¸å¯æ¾å¨ä¸é¢ï¼å¯¹ç»æä¸çæ¯ä¸ªåçæ³¨éåºæ¾å¨æ¤åç峿¹ï¼
åä¸ç»æä¸ä¸ååçæ³¨éè¦å¯¹é½ã
åéã常éçæ³¨éåºæ¾å¨å ¶ä¸æ¹ç¸é»ä½ç½®æå³æ¹ã
å ¨å±åéè¦æè¾è¯¦ç»ç注éï¼å æ¬å¯¹å ¶åè½ãåå¼èå´ãåªäºå½æ°æè¿ç¨ååå®ä»¥åååæ¶æ³¨æäºé¡¹çç说æã
卿¯ä¸ªæºæä»¶ç头é¨è¦æå¿ è¦ç注éä¿¡æ¯ï¼å æ¬ï¼æä»¶åï¼çæ¬å·ï¼ä½è ï¼çææ¥æï¼æ¨¡ååè½æè¿°ï¼å¦åè½ã主è¦ç®æ³ãå é¨åé¨åä¹é´çå ³ç³»ã该æä»¶ä¸å ¶å®æä»¶å ³ç³»çï¼ï¼ä¸»è¦å½æ°æè¿ç¨æ¸ å忬æä»¶åå²ä¿®æ¹è®°å½çã
/**
* Copy Right Information : Neusoft IIT
* Project : eTrain
* JDK version used : jdk1.3.1
* Comments : config path
* Version : 1.01
* Modification history :2003.5.1
* Sr Date Modified By Why What is modified
* 1. 2003.5.2 Kevin Gao new
**/
卿¯ä¸ªå½æ°æè¿ç¨çåé¢è¦æå¿ è¦ç注éä¿¡æ¯ï¼å æ¬ï¼å½æ°æè¿ç¨åç§°ï¼åè½æè¿°ï¼è¾å ¥ãè¾åºåè¿åå¼è¯´æï¼è°ç¨å ³ç³»å被è°ç¨å ³ç³»è¯´æç
/**
* Description :checkout ææ¬¾
* @param Hashtable cart info
* @param OrderBean order info
* @return String
*/
public String checkout(Hashtable htCart,
OrderBean orderBean)
throws Exception{
}
javadocæ³¨éæ ç¾è¯æ³
@author 对类çè¯´æ æ æå¼å该类模åçä½è
@version 对类çè¯´æ æ æè¯¥ç±»æ¨¡åççæ¬
@see 对类ã屿§ãæ¹æ³ç说æ åè转åï¼ä¹å°±æ¯ç¸å ³ä¸»é¢
@param å¯¹æ¹æ³ç说æ å¯¹æ¹æ³ä¸æåæ°ç说æ
@return å¯¹æ¹æ³ç说æ å¯¹æ¹æ³è¿åå¼ç说æ
@exception å¯¹æ¹æ³ç说æ å¯¹æ¹æ³å¯è½æåºçå¼å¸¸è¿è¡è¯´æ
3ãå½åè§è
å®ä¹è¿ä¸ªè§èçç®çæ¯è®©é¡¹ç®ä¸ææçææ¡£é½çèµ·æ¥åä¸ä¸ªäººåçï¼å¢å å¯è¯»æ§ï¼åå°é¡¹ç®ç»ä¸å 为æ¢äººè带æ¥çæå¤±ãï¼è¿äºè§è并䏿¯ä¸å®è¦ç»å¯¹éµå®ï¼ä½æ¯ä¸å®è¦è®©ç¨åºæè¯å¥½çå¯è¯»æ§ï¼è¾ççåè¯å¯éè¿å»æå é³å½¢æç¼©åï¼è¦ä¸ç¶æåèªå·±åç代ç èªå·±é½ç䏿äºï¼é£å¯ä¸è¡ã
è¾é¿çåè¯å¯ååè¯ç头å å符çä¼å 级ï¼å¹¶ç¨æ¬å·æç¡®è¡¨è¾¾å¼çæä½é¡ºåºï¼é¿å 使ç¨é»è®¤ä¼å 级ã
使ç¨åçå©è¡¨ç¤ºæ³
Package çå½å
Package çåååºè¯¥é½æ¯ç±ä¸ä¸ªå°ååè¯ç»æã
package com.neu.util
Class çå½å
Class çååå¿ é¡»ç±å¤§å忝å¼å¤´èå ¶ä»åæ¯é½å°åçåè¯ç»æ,å¯¹äºæææ è¯ç¬¦ï¼å ¶ä¸å å«çææåè¯é½åºç´§é å¨ä¸èµ·ï¼èä¸å¤§åä¸é´åè¯çé¦åæ¯ã
public class ThisAClassName{}
Class åéçå½å
åéçååå¿ é¡»ç¨ä¸ä¸ªå°å忝å¼å¤´ãåé¢çåè¯ç¨å¤§å忝å¼å¤´
userName , thisAClassMethod
Static Final åéçå½å
static Final åéçåååºè¯¥é½å¤§åï¼å¹¶ä¸æåºå®æ´å«ä¹ã
/**
*DBConfig PATH
**/
public static final String
DB_CONFIG_FILE_PATH =com.neu.etrain.dbconfig;
åæ°çå½å
åæ°çååå¿ é¡»ååéçå½åè§èä¸è´ã
æ°ç»çå½å
æ°ç»åºè¯¥æ»æ¯ç¨ä¸é¢çæ¹å¼æ¥å½åï¼
byte[] buffer;
è䏿¯ï¼
byte buffer[];
æ¹æ³çåæ°
ä½¿ç¨ææä¹çåæ°å½åï¼å¦æå¯è½çè¯ï¼ä½¿ç¨åè¦èµå¼çåæ®µä¸æ ·çååï¼
SetCounter(int size){
this.size = size;
}
4ãæä»¶æ ·å¼
ææç Java(*.java) æä»¶é½å¿ é¡»éµå®å¦ä¸çæ ·å¼è§åï¼
çæä¿¡æ¯
çæä¿¡æ¯å¿ é¡»å¨ java æä»¶çå¼å¤´ï¼æ¯å¦ï¼
/*
* Copyright ? 2000 Shanghai XXX Co. Ltd.
* All right reserved.
*/
å ¶ä»ä¸éè¦åºç°å¨ javadoc çä¿¡æ¯ä¹å¯ä»¥å å«å¨è¿éã
Package/Imports
package è¡è¦å¨ import è¡ä¹åï¼import 䏿 åçå åè¦å¨æ¬å°çå åä¹åï¼èä¸æç §åæ¯
é¡ºåºæåã妿 import è¡ä¸å å«äºåä¸ä¸ªå ä¸çä¸ååç®å½ï¼ååºè¯¥ç¨ * æ¥å¤çã
package hotlava.net.stats;
import java io.*;
import java.util.Observable;
import hotlava.util.Application;
è¿é javaãio.* ä½¿ç¨æ¥ä»£æ¿InputStream and OutputStream çã
Class
æ¥ä¸æ¥çæ¯ç±»ç注éï¼ä¸è¬æ¯ç¨æ¥è§£éç±»çã
/**
* A class representing a set of packet and byte counters
* It is observable to allow it to be watched, but only
* reports changes when the current set is complete
*/
æ¥ä¸æ¥æ¯ç±»å®ä¹ï¼å å«äºå¨ä¸åçè¡ç extends å implements
public class CounterSet
extends Observable
implements Cloneable
Class Fields
æ¥ä¸æ¥æ¯ç±»çæååéï¼
/**
* Packet counters
*/
protected int[] packets;
public çæååéå¿ é¡»çæææ¡£ï¼JavaDocï¼ãprocetedãprivateå package å®ä¹çæ
ååé妿ååå«ä¹æç¡®çè¯ï¼å¯ä»¥æ²¡ææ³¨éã
ååæ¹æ³
æ¥ä¸æ¥æ¯ç±»åéçååçæ¹æ³ãå®åªæ¯ç®åçç¨æ¥å°ç±»çåéèµå¼è·åå¼çè¯ï¼å¯ä»¥ç®åç
åå¨ä¸è¡ä¸ã
/**
* Get the counters
* @return an array containing the statistical data. This array has been
* freshly allocated and can be modified by the caller.
*/
public int[] getPackets() { return copyArray(packets, offset); }
public int[] getBytes() { return copyArray(bytes, offset); }
public int[] getPackets() { return packets; }
public void setPackets(int[] packets) { this.packets = packets; }
å ¶å®çæ¹æ³ä¸è¦åå¨ä¸è¡ä¸
æé 彿°
æ¥ä¸æ¥æ¯æé 彿°ï¼å®åºè¯¥ç¨éå¢çæ¹å¼åï¼æ¯å¦ï¼åæ°å¤çåå¨åé¢ï¼ã
访é®ç±»å (public, private ç.) å ä»»ä½ static, final æ synchronized åºè¯¥å¨ä¸è¡
ä¸ï¼å¹¶ä¸æ¹æ³ååæ°å¦åä¸è¡ï¼è¿æ ·å¯ä»¥ä½¿æ¹æ³ååæ°æ´æè¯»ã
public
CounterSet(int size){
this.size = size;
}
å éæ¹æ³
妿è¿ä¸ªç±»æ¯å¯ä»¥è¢«å éçï¼é£ä¹ä¸ä¸æ¥å°±æ¯ clone æ¹æ³ï¼
public
Object clone() {
try {
CounterSet obj = (CounterSet)super.clone();
obj.packets = (int[])packets.clone();
obj.size = size;
return obj;
}catch(CloneNotSupportedException e) {
throw new InternalError(Unexpected CloneNotSUpportedException: +
e.getMessage());
}
}
ç±»æ¹æ³
ä¸é¢å¼å§åç±»çæ¹æ³ï¼
/**
* Set the packet counters
* (such as when restoring from a database)
*/
protected final
void setArray(int[] r1, int[] r2, int[] r3, int[] r4)
throws IllegalArgumentException
{
//
// Ensure the arrays are of equal size
//
if (r1.length != r2.length || r1.length != r3.length || r1.length != r4.length)
throw new IllegalArgumentException(Arrays must be of the same size);
System.arraycopy(r1, 0, r3, 0, r1.length);
System.arraycopy(r2, 0, r4, 0, r1.length);
}
toString æ¹æ³
æ 论å¦ä½ï¼æ¯ä¸ä¸ªç±»é½åºè¯¥å®ä¹ toString æ¹æ³ï¼
public
String toString() {
String retval = CounterSet: ;
for (int i = 0; i data.length(); i++) {
retval += data.bytes.toString();
retval += data.packets.toString();
}
return retval;
}
}
main æ¹æ³
妿main(String[]) æ¹æ³å·²ç»å®ä¹äº, é£ä¹å®åºè¯¥åå¨ç±»çåºé¨.
5ã代ç å¯è¯»æ§
é¿å 使ç¨ä¸æçè§£çæ°åï¼ç¨ææä¹çæ è¯æ¥æ¿ä»£ã
ä¸è¦ä½¿ç¨é¾æçæå·§æ§å¾é«çè¯å¥ã
æºç¨åºä¸å ³ç³»è¾ä¸ºç´§å¯ç代ç åºå°½å¯è½ç¸é»ã
6ãä»£ç æ§è½
å¨å代ç çæ¶åï¼ä»å¤´è³å°¾é½åºè¯¥èèæ§è½é®é¢ãè¿ä¸æ¯è¯´æ¶é´é½åºè¯¥æµªè´¹å¨ä¼å代ç ä¸ï¼èæ¯æä»¬æ¶å»åºè¯¥æéèªå·±è¦æ³¨æä»£ç çæçãæ¯å¦ï¼å¦ææ²¡ææ¶é´æ¥å®ç°ä¸ä¸ªé«æçç®æ³ï¼é£ä¹æä»¬åºè¯¥å¨ææ¡£ä¸è®°å½ä¸æ¥ï¼ä»¥ä¾¿å¨ä»¥åæç©ºçæ¶å忥å®ç°å¥¹ã
䏿¯ææç人é½åæå¨å代ç çæ¶ååºè¯¥ä¼åæ§è½è¿ä¸ªè§ç¹çï¼ä»ä»¬è®¤ä¸ºæ§è½ä¼åçé®é¢åºè¯¥å¨é¡¹ç®çåæåå»èèï¼ä¹å°±æ¯å¨ç¨åºçè½®å»å·²ç»å®ç°äºä»¥åã
ä¸å¿ è¦ç对象æé
ä¸è¦å¨å¾ªç¯ä¸æé åéæ¾å¯¹è±¡
ä½¿ç¨ StringBuffer 对象
å¨å¤ç String çæ¶åè¦å°½éä½¿ç¨ StringBuffer ç±»ï¼StringBuffer ç±»æ¯ææ String ç±»çåºç¡ã
String ç±»å° StringBuffer ç±»å°è£ äºèµ·æ¥ï¼ï¼ä»¥è±è´¹æ´å¤æ¶é´ä¸ºä»£ä»·ï¼ä¸ºå¼å人åæä¾äºä¸ä¸ªå®å ¨çæ¥å£ã彿们卿é åç¬¦ä¸²çæ¶åï¼æä»¬åºè¯¥ç¨ StringBuffer æ¥å®ç°å¤§é¨åçå·¥ä½ï¼å½å·¥ä½å®æåå° StringBuffer 对象å转æ¢ä¸ºéè¦ç String å¯¹è±¡ãæ¯å¦ï¼å¦ææä¸ä¸ªåç¬¦ä¸²å¿ é¡»ä¸æå°å¨å ¶åæ·»å 许å¤å符æ¥å®ææé ï¼é£ä¹æä»¬åºè¯¥ä½¿ç¨StringBuffer 对象å她ç append() æ¹æ³ã妿æä»¬ç¨ String 对象代æ¿StringBuffer 对象çè¯ï¼ä¼è±è´¹è®¸å¤ä¸å¿ è¦çå建åéæ¾å¯¹è±¡ç CPU æ¶é´ã大家å¯ä»¥æ¥å®å®DIYåä½å®¤ä¸èµ·è®¨è®ºã
é¿å 太å¤çä½¿ç¨ synchronized å ³é®åé¿å ä¸å¿ è¦ç使ç¨å ³é®å synchronizedï¼åºè¯¥å¨å¿ è¦çæ¶åå使ç¨å¥¹ï¼è¿æ¯ä¸ä¸ªé¿å æ»éçå¥½æ¹æ³ã
7ãç¼ç¨æå·§
byte æ°ç»è½¬æ¢å° characters
为äºå° byte æ°ç»è½¬æ¢å° charactersï¼ä½ å¯ä»¥è¿ä¹åï¼
Hello world!.getBytes();
Utility ç±»
Utility ç±»ï¼ä» ä» æä¾æ¹æ³çç±»ï¼åºè¯¥è¢«ç³æä¸ºæ½è±¡çæ¥é²æ¢è¢«ç»§æ¿æè¢«åå§åã
åå§å
ä¸é¢çä»£ç æ¯ä¸ç§å¾å¥½çåå§åæ°ç»çæ¹æ³ï¼
objectArguments = new Object[] { arguments };
æä¸¾ç±»å
JAVA 对æä¸¾çæ¯æä¸å¥½ï¼ä½æ¯ä¸é¢çä»£ç æ¯ä¸ç§å¾æç¨ç模æ¿ï¼
class Colour {
public static final Colour BLACK = new Colour(0, 0, 0);
public static final Colour RED = new Colour(0xFF, 0, 0);
public static final Colour GREEN = new Colour(0, 0xFF, 0);
public static final Colour BLUE = new Colour(0, 0, 0xFF);
public static final Colour WHITE = new Colour(0xFF, 0xFF, 0xFF);
}
è¿ç§ææ¯å®ç°äºRED, GREEN, BLUE çå¯ä»¥è±¡å ¶ä»è¯è¨çæä¸¾ç±»å䏿 ·ä½¿ç¨ç常éã
ä»ä»¬å¯ä»¥ç¨ '==' æä½ç¬¦æ¥æ¯è¾ã
使¯è¿æ ·ä½¿ç¨æä¸ä¸ªç¼ºé·ï¼å¦æä¸ä¸ªç¨æ·ç¨è¿æ ·çæ¹æ³æ¥å建é¢è² BLACK new Colour(0,0,0)
é£ä¹è¿å°±æ¯å¦å¤ä¸ä¸ªå¯¹è±¡ï¼'=='æä½ç¬¦å°±ä¼äº§çé误ã她ç equal() æ¹æ³ä»ç¶ææãç±äºè¿ä¸ªåå ï¼è¿ä¸ªææ¯çç¼ºé·æå¥½æ³¨æå¨ææ¡£ä¸ï¼æè åªå¨èªå·±çå ä¸ä½¿ç¨ã
8ãç¼åæ ¼å¼
ä»£ç æ ·å¼
代ç åºè¯¥ç¨ unix çæ ¼å¼ï¼è䏿¯ windows çï¼æ¯å¦ï¼å车åæå车+æ¢è¡ï¼
ææ¡£å
å¿ é¡»ç¨ javadoc æ¥ä¸ºç±»çæææ¡£ãä¸ä» å ä¸ºå®æ¯æ åï¼è¿ä¹æ¯è¢«åç§ java ç¼è¯å¨é½è®¤å¯çæ¹æ³ãä½¿ç¨ @author æ è®°æ¯ä¸è¢«æ¨èçï¼å 为代ç ä¸åºè¯¥æ¯è¢«ä¸ªäººæ¥æçã
缩è¿
缩è¿åºè¯¥æ¯æ¯è¡2ä¸ªç©ºæ ¼. ä¸è¦å¨æºæä»¶ä¸ä¿åTabå符. å¨ä½¿ç¨ä¸åçæºä»£ç 管çå·¥å ·æ¶Tabå符å°å ä¸ºç¨æ·è®¾ç½®çä¸åèæ©å±ä¸ºä¸åç宽度.å¦æä½ ä½¿ç¨ UltrEdit ä½ä¸ºä½ ç Java æºä»£ç ç¼è¾å¨çè¯ï¼ä½ å¯ä»¥éè¿å¦ä¸æä½æ¥ç¦æ¢ä¿åTabå符, æ¹æ³æ¯éè¿ UltrEditä¸å è®¾å® Tab 使ç¨çé¿åº¦å®¤2ä¸ªç©ºæ ¼ï¼ç¶åç¨ Format|Tabs to Spaces èåå° Tab 转æ¢ä¸ºç©ºæ ¼ã
页宽
页宽åºè¯¥è®¾ç½®ä¸º80å符. æºä»£ç ä¸è¬ä¸ä¼è¶ è¿è¿ä¸ªå®½åº¦, å¹¶å¯¼è´æ æ³å®æ´æ¾ç¤º, ä½è¿ä¸è®¾ç½®ä¹å¯ä»¥çµæ´»è°æ´. å¨ä»»ä½æ åµä¸, è¶ é¿çè¯å¥åºè¯¥å¨ä¸ä¸ªéå·æè ä¸ä¸ªæä½ç¬¦åæè¡. 䏿¡è¯å¥æè¡å, åºè¯¥æ¯åæ¥çè¯å¥å缩è¿2个å符.
{} 对
{} ä¸çè¯å¥åºè¯¥åç¬ä½ä¸ºä¸è¡. ä¾å¦, ä¸é¢ç第1è¡æ¯é误ç, 第2è¡æ¯æ£ç¡®ç:
if (i0) { i ++ }; // é误, { å } å¨åä¸è¡
if (i0) {
i ++
}; // æ£ç¡®, { åç¬ä½ä¸ºä¸è¡
} è¯å¥æ°¸è¿åç¬ä½ä¸ºä¸è¡.妿 } è¯å¥åºè¯¥ç¼©è¿å°ä¸å ¶ç¸å¯¹åºç { é£ä¸è¡ç¸å¯¹é½çä½ç½®ã
æ¬å·
å·¦æ¬å·ååä¸ä¸ªå符ä¹é´ä¸åºè¯¥åºç°ç©ºæ ¼, åæ ·, 峿¬å·ååä¸ä¸ªå符ä¹é´ä¹ä¸åºè¯¥åºç°ç©ºæ ¼. ä¸é¢çä¾åè¯´ææ¬å·åç©ºæ ¼çéè¯¯åæ£ç¡®ä½¿ç¨:
CallProc( AParameter ); // é误
CallProc(AParameter); // æ£ç¡®
ä¸è¦å¨è¯å¥ä¸ä½¿ç¨æ æä¹çæ¬å·. æ¬å·åªåºè¯¥ä¸ºè¾¾å°æç§ç®çèåºç°å¨æºä»£ç ä¸ãä¸é¢çä¾å说æéè¯¯åæ£ç¡®çç¨æ³:
if ((I) = 42) { // é误 - æ¬å·æ¯«æ æä¹
if (I == 42) or (J == 42) then // æ£ç¡® - çç¡®éè¦æ¬å·
9ã代ç ç¼è¯
1.ç¼åä»£ç æ¶è¦æ³¨æéæ¶ä¿åï¼å¹¶å®æå¤ä»½ï¼é²æ¢ç±äºæçµã硬çæåçåå é æä»£ç 丢失ã
2.åä¸é¡¹ç®ç»å ï¼æå¥½ä½¿ç¨ç¸åçç¼è¾å¨ï¼å¹¶ä½¿ç¨ç¸åç设置é项ã
3.åçå°è®¾è®¡è½¯ä»¶ç³»ç»ç®å½ï¼æ¹ä¾¿å¼å人å使ç¨ã
4.æå¼ç¼è¯å¨çææåè¦å¼å ³å¯¹ç¨åºè¿è¡ç¼è¯ã
5.å¨åä¸é¡¹ç®ç»æäº§åç»ä¸ï¼è¦ç»ä¸ç¼è¯å¼å ³é项ã
6.使ç¨å·¥å ·è½¯ä»¶ï¼å¦Visual SourceSafeï¼å¯¹ä»£ç çæ¬è¿è¡ç»´æ¤ã妿大家æä¸æç½çå¯ä»¥å°å®å®DIYåä½å®¤çè¨ã
10ãå¯ç§»æ¤æ§
Borland Jbulider ä¸å欢 synchronized è¿ä¸ªå ³é®åï¼å¦æä½ çæç¹è®¾å¨è¿äºå ³é®åçä½ç¨åå çè¯ï¼è°è¯çæ¶åä½ ä¼åç°çæç¹ä¼å°å¤ä¹±è·³ï¼è®©ä½ ä¸ç¥ææªãé¤éå¿ é¡»ï¼å°½éä¸è¦ä½¿ç¨ã
æ¢è¡
妿éè¦æ¢è¡çè¯ï¼å°½éç¨ println æ¥ä»£æ¿å¨å符串ä¸ä½¿ç¨\nã
ä½ ä¸è¦è¿æ ·ï¼
System.out.print(Hello,world!\n);
è¦è¿æ ·ï¼
System.out.println(Hello,world!);
æè ä½ æé ä¸ä¸ªå¸¦æ¢è¡ç¬¦çå符串ï¼è³å°è¦è±¡è¿æ ·ï¼
String newline = System.getProperty(line.separator);
System.out.println(Hello world + newline);
PrintStream
PrintStream å·²ç»è¢«ä¸èµæï¼deprecatedï¼ä½¿ç¨ï¼ç¨ PrintWrite æ¥ä»£æ¿å®ã
ææºåºç¨è½¯ä»¶å¼åéä½ç½®â1234âæ£ç¡®ç代ç
publicstaticStringstr={"1"ï¼"2"ï¼"3"ï¼"4"}ã
软件å¼åæ¯æ ¹æ®ç¨æ·è¦æ±å»ºé åºè½¯ä»¶ç³»ç»æè ç³»ç»ä¸ç软件é¨åçè¿ç¨ã软件å¼åæ¯ä¸é¡¹å æ¬éæ±ææãéæ±åæã设计ãå®ç°åæµè¯çç³»ç»å·¥ç¨ã软件ä¸è¬æ¯ç¨æç§ç¨åºè®¾è®¡è¯è¨æ¥å®ç°çãé常éç¨è½¯ä»¶å¼åå·¥å ·å¯ä»¥è¿è¡å¼åã软件å为系ç»è½¯ä»¶ååºç¨è½¯ä»¶ï¼å¹¶ä¸åªæ¯å æ¬å¯ä»¥å¨è®¡ç®æºä¸è¿è¡çç¨åºï¼ä¸è¿äºç¨åºç¸å ³çæä»¶ä¸è¬ä¹è¢«è®¤ä¸ºæ¯è½¯ä»¶çä¸é¨åã
软件å¼å--代ç å¤§å ¨
æ¯ææ°ççï¼è¿æ¬ä¹¦ä¸»è¦é¢åç¨åºç¨åºååé«çº§ç¨åºå转åçé£ä¸é¨å人ï¼éå¯¹æ¶æï¼ä»£ç è§èï¼å¼åæµç¨é½å ·æç»å ¸çè¯ éï¼éé¢ç示ä¾ä»£ç è¿æ³å¾å°ï¼é¢å对象é¨åæ¯C#çï¼åºç¡ç®æ³åæµç¨æ§å¶é½æ¯Cçï¼é£ä¸ªåºç¡Cï¼è¿æ¬ä¹¦å°±åæäººå使䏿 ·ï¼ææå¥åè¿å¨ä¸èµ·ä¸å«æç« ï¼æç« è¦è®²æ±ä¿®è¾ï¼ææ³ï¼æé£ä¹ç±»çï¼è¿æ¬ä¹¦å°±æ¯è®²è§£ç¼ç¨è¦å½¢æä¸å®çå¥½ä¹ æ¯ã
å ³äºè½¯ä»¶å¼å代ç å软件å¼å代ç åapkçä»ç»å°æ¤å°±ç»æäºï¼ä¸ç¥éä½ ä»ä¸æ¾å°ä½ éè¦çä¿¡æ¯äºå ï¼å¦æä½ è¿æ³äºè§£æ´å¤è¿æ¹é¢çä¿¡æ¯ï¼è®°å¾æ¶èå ³æ³¨æ¬ç«ã