ï»??xml version="1.0" encoding="utf-8" standalone="yes"?> D 䏿˜¯è„šæœ¬è¯è¨€åQŒä¹Ÿä¸æ˜¯ä¸€¿U解释型è¯è¨€ã€‚它ä¸éœ€è¦è™šæ‹Ÿæœºã€å®—æ•™ã€æˆ–者高于一切的哲å¦ã€‚它是给实际的编½E‹è€…ä‹É用的实际的è¯a€åQŒå®ƒå¸®åŠ©¾~–程者快速ã€å¯é çš„å®Œæˆæ˜“于¾l´æŠ¤ã€æ˜“于ç†è§£çš„代ç ã€? D 是数åå¹´æ¥å®žçŽ°å¤š¿Uè¯a€¾~–译器的¾l验的积累,是用那些è¯è¨€æž„é€ å¤§åž‹å·¥½E‹çš„ž®è¯•çš„ç§¯ç´¯ã€‚D 从那些è¯a€åQˆä¸»è¦æ˜¯ C++ åQ‰é‚£é‡ŒèŽ·å¾—äº†ç‰|„ŸåQŒåƈž®?使用¾l验和现实世界ä¸çš„实用性æ¥é©¯æœå®ƒã€? è‡?
ä»?C è¯è¨€è¢«å‘明以æ¥ï¼Œè½¯äšg工业走过了一ŒDµå¾ˆé•¿çš„è·¯ã€‚è®¸å¤šæ–°çš„æ¦‚å¿µè¢«åŠ å…¥äº?C++ ä¸ï¼Œä½†åŒæ—¶ç»´æŠ¤äº†å?C
çš„å‘åŽå…¼å®ÒŽ€§ï¼ŒåŒ…括兼容了原始设计ä¸çš„æ‰€æœ‰çš„å¼Þq‚¹ã€‚有很多修棘q™äº›å¼Þq‚¹çš„å°è¯•ï¼Œä½†æ˜¯å…¼å®¹æ€§æ˜¯æœ€å¤§çš„å›°æ‰°ã€‚åŒæ—Óž¼ŒC å’?C++
éƒ½åœ¨ä¸æ–引入新的ç‰ÒŽ€§ã€‚这些新ç‰ÒŽ€§å¿…™å»è¢«ž®å¿ƒçš„åŠ å…¥åˆ°çŽ°æœ‰çš„ç»“æž„ä¸åQŒä»¥å…é‡å†™æ—§çš„代ç 。最¾lˆçš„¾l“æžœååˆ†å¤æ‚—â€?C æ ‡å‡†ž®†è¿‘ 500 ™åµï¼ŒC++
æ ‡å‡†å¤§æ¦‚æœ?750 ™åµï¼C++ 实现èµäh¥æ—¢å›°éš‘ֈ代äh高昂åQŒé€ æˆçš„结果就是儿U实çŽîC¹‹é—´éƒ½æœ‰å·®åˆ«ï¼Œå› æ¤å¾ˆéš¾å†™å‡ºå®Œå…¨å¯ä»¥¿UÀL¤çš?C++ 代ç ã€? C++
½E‹åºå‘˜å€‘֑于ä‹É用è¯a€ä¸çš„å¤å²›æ¥ç¼–½E‹ï¼Œä¹Ÿå°±æ˜¯è¯´åQŒä»–们們֑于å分精通è¯a€ä¸çš„æŸä¸ªç‰ÒŽ€§è€Œé¿å…ä‹É用其他特性。尽½Ž¡ä»£ç 通常在编译器之间是寿UÀL¤çš„,但在½E‹åº
员之间移æ¤å°±ä¸é‚£ä¹ˆå®¹æ˜“了。C++ 的一个长处是它支æŒå¾ˆå¤šæ ¹æœ¬ä¸Šä¸åŒçš„ç¼–½E‹é£Žæ ¼â€”—但从长˜qœæ¥çœ‹ï¼Œäº’相é‡å¤å’Œäº’相冲½Hçš„é£Žæ ¼ä¼šç»™å¼€å‘带æ¥å¦¨¼„ã€? C++ åœ¨æ ‡å‡†åº“è€Œä¸æ˜¯è¯a€æ ¸å¿ƒä¸å®žçŽîCº†å¯æ”¹å˜å¤§ž®çš„æ•°ç»„和嗽W¦ä¸²æ‹¼æŽ¥½{‰ã€‚ä¸åœ¨è¯a€æ ¸å¿ƒä¸å®žçŽ°è¿™äº›åŠŸèƒ½é€ æˆäº†å‡ ¿Uä¸å¤ªç†æƒ³çš„¾l“æžœã€? 是å¦èƒ½æŠŠ C++ 的能力释放ã€é‡æ–°è®¾è®¡åƈé‡é“¸åˆîC¸€é—¨ç®€å•ã€æ£äº¤åƈ实用的è¯a€ä¸å‘¢åQ?˜q™ç§è¯è¨€æ˜¯å¦èƒ½åšåˆ°æ˜“于棼‹®å®žçŽŽÍ¼Œòq¶ä‹É¾~–译器有能力有效地生æˆé«˜åº¦ä¼˜åŒ–的代ç 呢? çŽ?
代编译器技术已¾lå–得了很大的进æ¥ï¼Œæœ‰äº›åŽŸæ¥ç”¨ä½œåŽŸå§‹¾~–译技术的补充的è¯a€ç‰ÒŽ€§å·²¾lå¯ä»¥è¢«å¿½ç•¥äº†ï¼ˆä¸€ä¸ªè¿™æ ïLš„ä¾‹åæ˜?C
è¯è¨€ä¸çš„‘register’关键å—åQŒä¸€ä¸ªæ›´ä¸ºå¾®å¦™çš„ä¾‹åæ˜?C
ä¸çš„å®é¢„处熽E‹åºåQ‰ã€‚我们å¯ä»¥ä¾èµ–çŽ°ä»£ç¼–è¯‘å™¨çš„ä¼˜åŒ–æŠ€æœ¯è€Œä¸æ˜¯ä‹É用è¯a€ç‰ÒŽ€§ï¼ˆå¦‚åŒåŽŸå§‹çš„ç¼–è¯‘å™¨æ‰€åšçš„é‚£æ ·åQ‰æ¥èŽ·å¾—å¯ä»¥æŽ¥å—的代ç è´¨é‡ã€? 使用 D òq¶ä¸æ„味瀽E‹åºå‘˜ä¼šå¦?Java 或è€?Smalltalk é‚£æ ·è¢«ä¸¥æ ¼çš„é™åˆ¶åœ¨æŸä¸€ä¸ªè¿è¡Œæ—¶ vm åQˆè™šæ‹ŸæœºåQ‰ä¸Šã€‚D 没有虚拟机,¾~–译器直接生æˆå¯˜qžæŽ¥çš„ç›®æ ‡æ–‡ä»¶ã€‚D å¦‚åŒ C é‚£æ ·è¢«ç›´æŽ¥è¿žæŽ¥åˆ°æ“作¾pÈ»Ÿã€‚é€šå¸¸é‚£äº›ä½ ç†Ÿæ‚‰çš„å·¥å…·å¦?make åŒæ ·é€‚用äº?D 的开å‘ã€? ½CÞZ¾‹åQ?/p>
  2ã€ä½“育锻炼å¯ä»¥ï¼ˆæœ‰æ—¶å¯ä»¥˜q…速)使ähä¹è§‚åQˆç§‘å¦å®žéªŒè¯æ˜Žï¼‰ã€?nbsp;
  3ã€å‹¤å¥‹ï¼ŒæœÞZ¼šåQŒä¹è§‚是æˆåŠŸçš„ä¸‰è¦ç´ 。(注æ„åQšä¼ ¾lŸè§‚念认为勤奋和æœÞZ¼šæ˜¯æˆåŠŸçš„è¦ç´ åQŒä½†æ˜¯ç»˜q‡ç»Ÿè®¡å¦å’ŒæˆåŠŸäh士的分æžå¾—出åQŒä¹è§‚是æˆåŠŸçš„ç¬¬ä¸‰è¦ç´ )
  4ã€è‡ªä¿¡æ˜¯äººæ ¼çš„æ ¸å¿ƒã€?nbsp;
  5ã€èŽ·å¾—çš„æˆåŠŸ‘Šå¤§åQŒå°±‘Šä×o人高兴。(野心是ä‹Éäººå‹¤å¥‹çš„åŽŸå› åQŒèŠ‚åˆ¶ä‹É人枯èŽï¼‰
  6ã€çƒçˆ×ƒ½ 所拥有的。——列å¤?#183;托尔斯泰
  7ã€ï¼ˆä¸€èˆ¬æƒ…况下åQ‰ä¸æƒ³ä¸‰òq´ä»¥åŽçš„äº‹ï¼Œåªæƒ³çŽ°åœ¨çš„äº‹åQˆçŽ°åœ¨æœ‰æˆå°±åQŒä»¥åŽæ‰èƒ½æ›´è¾‰ç…ŒåQ?nbsp;
  8ã€æŠŠé—®é¢˜çœ‹å®½òq¿äº›åQŒæ²¡æœ‰è§£å†³ä¸äº†çš„事。(真ç†è·¯å¹¿åQŒäh‹Æ²èµ\½H„;当然ä¸è¦‘…越时代åŽÀLƒ³çŽ°åœ¨ä»ÖM½•人都解决ä¸äº†çš„事åQ?nbsp;
  9ã€ä¸é—®æ”¶èŽøP¼Œåªé—®è€•耘。(如匿Uæ ‘åQŒå…ˆæœ‰æ ¹èŒŽï¼Œå†æœ‰æžå¶åQŒå°”åŽèŠ±å®žï¼Œå¥½å¥½åŠ›_ЍåQŒä¸è¦æƒ³å¤ªå¤šåQŒé‚£æ ·åªä¼šä‹Éäºø™ƒ†ž®ã€æ‡’惎ͼ‰
  10ã€å¿è€å’Œä¿¡äÔ’
  11ã€æœ‰æ’åˆ™æ–æ— 䏿ˆä¹‹äº‹ã€?nbsp;
  12ã€æ™ºæ…§ä¹‹æ³‰å¿…™åÈ•…饮æ‰èƒ½ä‹É人清醒ã€?nbsp;
  13ã€ç”Ÿ‹zÈš„ä¹è¶£çš„大ž®å–决于我们对生‹zÈš„å…›_¿ƒ½E‹åº¦ã€?nbsp;
  14ã€ä¸òq´ä»¥å‰ä¸è¦æ€•,ä¸å¹´ä»¥åŽä¸è¦æ‚”ã€?nbsp;
  15ã€æœºé‡å¯¹äºŽæœ‰å‡†å¤‡çš„头脑有特别的亲和力ã€?nbsp;
  16ã€å®ˆä¸šæœ€å¥½çš„办法ž®±æ˜¯ä¸æ–çš„å‘å±?nbsp;
  17ã€å¿ƒæ€¥åƒä¸äº†çƒæ±¤åœ?nbsp;
  18ã€å¿…æÕdˆ™ç”Ÿï¼Œòq¸ç”Ÿåˆ™æ»â€”—《å´å兵法》(æ¦ç»å…¸ç±ä¸ä»…‹Æ¡äºŽã€Šå™å兵法》)
  19ã€è¦æ”¹å˜å‘½è¿åQŒé¦–先改å˜è‡ªå·?nbsp;
20ã€èµ°è‡ªå·±çš„èµ\åQŒè®©åˆ«äh说去å§ï¼
  21ã€å¦ä¹ 的关键——é‡å¤?nbsp;
  22ã€åªä¸ºæˆåŠŸæ‰¾æ–ÒŽ³•åQŒä¸ä¸ºå¤±è´¥æ‰¾å€Ÿå£åQˆè¹©è„šçš„å·¥ähæ€ÀL˜¯è¯´å·¥å…·ä¸å¥½ï¼‰
  23ã€å›°éš‘Ö°±æ˜¯æœºé‡â€”—温斯顿·ä¸˜å‰ž®?nbsp;
  24ã€æˆ‘奋斗åQŒæ‰€ä»¥æˆ‘å¿«ä¹â€”â€”æ ¼æž—æ–¯æ½˜ï¼ˆæŒ½æ•‘ä¸œå—亚金èžå±æœºçš„人,我的å¶åƒåQ?nbsp;
  25ã€å¥½å¥‡è€…,知识之门
  26ã€ç”Ÿæ°”æ˜¯ç”¨åˆ«äººçš„é”™è¯¯æƒ©ç½šè‡ªå·±ã€‚â€”â€”åº·å¾øP¼ˆ˜q™ä¸ªå“²å¦å®¶è®©äººçœ‰å¼€çœ¼ç¬‘åQ?nbsp;
  27ã€å¤±å޻金é’Þqš„人æŸå¤Þq”šž®‘ï¼Œå¤±åŽ»å¥åº·çš„ähæŸå¤±æžå¤šåQŒå¤±åŽÕd‹‡æ°”的人æŸå¤×ƒ¸€åˆ‡ã€?nbsp;
  28ã€åªè¦ä¸‹å®šå†³å¿ƒå…‹æœææƒ§ï¼Œä¾¿å‡ 乎能克æœä»ÖM½•ææƒ§ã€‚å› ä¸ºï¼Œè¯¯‚®°ä½ï¼Œé™¤äº†åœ¨è„‘‹¹·ä¸åQŒææƒ§æ— 处è—íw«ã€‚——戴ž®?#183;å¡è€åŸº
  29ã€å®³æ€•æ—¶åQŒæŠŠå¿ƒæ€æ”¾åœ¨å¿…™åÕdšçš„事情上åQŒå¦‚果曾¾l彻底准备,便ä¸ä¼šå®³æ€•。——戴ž®?#183;å¡è€åŸº
  30ã€?#8220;ä¸å¯èƒ?#8221;˜q™ä¸ªå—ï¼ˆæ³•è¯æ˜¯ä¸€ä¸ªå—åQ‰ï¼Œåªåœ¨æ„šähçš„å—å…æ€¸æ‰‘Ö¾—åˆ°ã€‚â€”â€”æ‹¿ç ´ä»‘
  31ã€åŽ»åšä½ å®Ïx€•的事,å®Ïx€•自然就会消失。——罗å¤?#183;åŽå¤š·çˆ±é»˜ç”?nbsp;
  32ã€è¿™ä¸–上的一切都借希望而完æˆã€‚农夫ä¸ä¼šæ’下一¾_’玉¾c»I¼Œå¦‚æžœä»–ä¸æ›‘Ö¸Œæœ›å®ƒé•¿æˆ¿Uç±½åQ›å•íw«æ±‰ä¸ä¼šå¨¶å¦»åQŒå¦‚æžœä»–ä¸æ›¾å¸Œæœ›æœ‰å°å©ï¼›å•†äh或手è‰ÞZhä¸ä¼šå·¥ä½œåQŒå¦‚æžœä»–ä¸æ›¾å¸Œæœ›å› æ¤è€Œæœ‰æ”¶ç›Šã€‚——马ä¸?#183;è·¯å¯d
  33ã€ç›®æ ‡çš„åšå®šæ˜¯æ€§æ ¼ä¸æœ€å¿…è¦çš„åŠ›é‡æ³‰æºä¹‹ä¸€åQŒä¹Ÿæ˜¯æˆåŠŸçš„åˆ©å™¨ä¹‹ä¸€ã€‚æ²¡æœ‰å®ƒåQŒå¤©æ‰ä¹Ÿä¼šåœ¨çŸ›ç›¾æ— 定的迷径ä¸åQŒå¾’åŠÏx— 功。——查士å¯dæ–尔爵士
  34ã€è¦å†’一‹Æ¡é™©åQ整个生命就是一场冒险。走得最˜qœçš„人,常是愿æ„åŽÕdšåQŒåƈ愿æ„åŽÕd†’险的人ã€?#8220;½E›_¦¥”之船åQŒä»Žæœªèƒ½ä»Žå²¸è¾¹èµ°˜qœã€‚——戴ž®?#183;å¡è€åŸº
  35ã€å½“一个é’òq´ähç«™è“væ¥é¢å¯¹è¿™ä¸ªå¤§èŽ½æ±‰â€”â€”è¿™ä¸ªä¸–ç•Œâ€”â€”åÆˆå‹‡æ•¢åœ°æŠ“ä½ä»–的胡™åÀL—¶åQŒå¸¸ä¼šåƒæƒŠåœ°å‘现åQŒèƒ¡™å»è„±è½åœ¨ä»–手上,原æ¥å®ƒåªæ˜¯ç³»ä¸ŠåŽ»å“唬胆怯的冒险者的。——罗å¤?#183;åŽå¤š·çˆ±é»˜ç”?nbsp;
  36ã€å‹‡æ°”很有ç†ç”Þp¢«å½“作人类å¾äh€§ä¹‹é¦–ï¼Œå› äØ“˜q™ç§å¾äh€§ä¿è¯äº†æ‰€æœ‰å…¶ä½™çš„å¾äh€§ã€‚——温斯顿·ä¸˜å‰ž®?img src ="http://www.aygfsteel.com/scofield/aggbug/108801.html" width = "1" height = "1" />
索一下了ã€?br /> ˜q™æ¬¡æ¥å›žå¿†ä¸€ä¸‹JAVA ä¸çš„½Ž—法åQŒå¯¹äºŽä¸€ä¸ªç®—法的好ååQŒæˆ‘觉瀘q™æ˜¯ä¸€ä¸ªæ¯”较值得注æ„的地方,评äh一个算法è¦ä»Žå¤šæ–?br />
é¢åŽ»è€ƒè™‘åQŒä¸»è¦ä»Žä»¥ä¸‹å‡ 个斚w¢åŽ»è€ƒè™‘åQ?br />n 1.æ£ç¡®æ€§ï¼ˆ¾l“æžœè¦æ£¼‹®ï¼Œæ³¨æ„边界å€û|¼‰
2.¾l“构性(æ¯ä¸€å—ç©ºä¸¤æ ¼æˆ–å››æ û|¼‰
3.å¯è¯»æ€§ï¼ˆå‘½ååˆç†åQŒä¹¦å†™è§„范,表达å¼ä¸è¦å¤ª 夿‚åQŒè¦æœ‰æ³¨é‡Šï¼‰
4.æ—‰™—´å¤æ‚度(ž®½é‡ä½Žï¼Œæ³¨æ„循环è¯å¥åQ?br />5.½Iºé—´å¤æ‚度(ž®½é‡ä½Žï¼Œæ³¨æ„å˜é‡çš„ä‹É用)
  接下æ¥å°±æ˜¯å‡ 个常è§çš„½Ž—æ³•äº†ï¼Œåˆ«ä»¥ä¸ø™¿™äº›éƒ½å¾ˆç®€å•,有时候去公å¸é¢è¯•æ—Óž¼Œè€ƒå®˜é€šå¸¸ä¼šç»™ä½ 一个很½Ž€å•的问题åQŒä½†
æ˜¯å°±æ˜¯è¿™ä¸ªé—®é¢˜å´æ°æ°èƒ½å¤Ÿåæ˜ å‡ÞZ½ 的编½E‹æ€æƒ³ã€‚我在一个网站看到这么一个问题:
 打å°1åˆ?00åQŒå…¶ä¸é‡åˆ?çš„å€æ•°æ‰“å°TTåQŒé‡åˆ?çš„å€æ•°æ‰“å°HHåQŒæ—¢æ˜?åˆæ˜¯5çš„å€æ•°æ‰“å°TTFFã€?br />˜q™ä¸ªå¾ˆç®€å•å§åQŒä½†æ˜¯çœŸæ£åˆ°äº†è€ƒåœºä¸Šåƈä¸ä¸€å®šå°±èƒ½å¾ˆå¿«çš„æƒ›_‡ºæ¥ã€?br />Â ä¸‹é¢½Ž€å•介¾l一下算法:
 1.æžšä‹D½Ž—法åQŒä¹Ÿå?â€?½I·ä‹Dæ³?â€?åQŒä‹É用很òq¿æ³›ã€‚åŸºæœ¬æ€æƒ³æ˜¯å°†æ‰€æœ‰å¯èƒ½çš„解都列ä‹D出æ¥åQŒç„¶åŽä»£å…¥è¿›è¡Œæ¼”½Ž—,½W¦åˆæ?br />
件的解,å³äؓ所求的¾l“æžœã€?br />2.递推和è„P代算法常用在数列问题ä¸ã€‚关键是扑ֈ°å…¬å¼åQŒå…¬å¼æ‰¾åˆ?了,½E‹åºå¾ˆå®¹æ˜“实现ã€?br />3. 递归ž®±æ˜¯æŠŠå‡½æ•°æˆ–˜q‡ç¨‹ä¸æ–地自我调用。递归在解å†ÏxŸäº›é—®é¢˜ä¸åQŒå¯ä»¥ä‹ÉæŸäº›çœ‹è“væ¥ä¸æ˜“解决的问题å®ÒŽ˜“解决åQŒå†™å‡?br />
的程åºè¾ƒ½Ž€çŸã€‚但æ˜?递归也有自èín的缺点,˜q行旉™—´é•¿ï¼Œå 用å˜å‚¨½Iºé—´å¤šã€?br /> 其他ž®±æœ‰é«˜ç²¾åº¦ç®—法和˜q›åˆ¶è½¬æ¢çš„算法了。下é¢å‡ºå‡ 个问题åQŒå„ä½å‹äººæœ‰½Iºçš„æ—¶å€™å¯ä»¥åšä¸€ä¸‹å§ã€?br />Â
1 åQšæœ‰ N(N>=3) ä½åŒå¦åŽ»ç…§ç›¸åQŒæ¯‹Æ¡ç…§ä¸‰ä¸ªåŒå¦åQŒå…±å¯ç…§å‡ºå¤šž®?å¼ ä¸å…¨ç›¸åŒçš„照片åQŸæ¯å¼ 照片ä¸éƒ½æ˜¯è°ï¼Ÿ
   2: 买èœé—®é¢˜åQšå°æ˜Žæœ‰ 1 å…?5 è§’é’±åQŒåŽ»èœåœºä¹°èœåQŒè¥¿¾U¢æŸ¿ 3 分钱 1 斤,黄瓜 5 分钱 1 斤,土豆 7 分钱 1 æ–?br />
åQŒé—®ž®æ˜ŽæŠŠé’±å…¨éƒ¨èŠ±å®ŒåQŒä¸‰ ¿Uèœå„ä¹°å‡ æ–¤åQ?br />3 åQšæœ‰ä¸€å †æ¸¸æˆæ£’åQŒç¬¬ä¸€ä¸ªå‚åŠ æ¸¸æˆçš„人å–èµîCº†ä¸€åŠå¤šä¸€æ ¹ï¼Œ½W?二个游æˆè€…冞®†å‰©ä¸‹çš„å–走一åŠå¤šä¸€æ ¹ï¼Œä¾æ¤¾cÀLލåQŒåˆ°
½W¬åä¸?人æ¥å–æ—¶åQŒå‘现åªå‰©ä¸‹ä¸€æ ¹äº†ã€‚问游æˆå¼€å§‹å‰˜q™å †æ¸¸æˆ‹‚’å…±æœ?多少æ V€?br />4 åQšæ•°åˆ—é—®é¢˜ï¼šæœ‰ä¸€æ•°åˆ— A(N) çš„å‰å‡ 项æ˜?1,1,2,3,5,8, 13, â€?åQŒå·² 知åŽä¸€™å¹å’Œå‰ä¸¤™åÒŽœ‰æŸç§å…³ç³»åQŒè¯•¾~–程求出å‰?
15 ™å¹çš„和,òq¶å°† ˜q™ä¸ªæ•°åˆ—输出ã€?br />Â Â åŠ æÑaåQ?br />ä¸ÞZ»€ä¹ˆæ˜¯ D åQ?/h2>¼‹®å®žåQŒäؓ什么?有è°éœ€è¦å¦ä¸€¿Uç¼–½E‹è¯a€åQ?
D的主è¦ç›®æ ?/h3>
从C/C++ä¿ç•™è€Œæ¥çš„特å¾?/h3>¾_—看上去 D ž®±åƒ C å’?C++ ã€‚è¿™æ ·ä¸€æ¥å¦ä¹ 以åŠå°†ä»£ç ¿UÀL¤åˆ?D ž®±å¾ˆå®ÒŽ˜“。从 C/C++ è½¬å‘ D 应该很自然。程åºå‘˜ä¸å¿…从头å¦è“vã€?
废弃的特�/h3>
D 适åˆäºŽï¼Ÿ
D ä¸é€‚åˆäºŽï¼Ÿ
D 的主è¦ç‰¹å¾?/h2>本节列出了一些更有趣çš?D 的特å¾ã€?
é¢å‘对象¾~–程
¾c?/h4>D çš„é¢å‘对象天性æ¥è‡ªäºŽ¾c…R€‚采用的¾l§æ‰¿æ¨¡åž‹æ—¶å•æ ¹ç‘ôæ‰¿åŠ æŽ¥å£ã€‚Object ¾cÖMؓ与ç‘ô承体¾pÈš„最™å¶ç«¯åQŒæ‰€ä»¥æ‰€æœ‰çš„¾c»éƒ½å®žçŽ°äº†ä¸€ä¸ªé€šç”¨çš„åŠŸèƒ½é›†åˆã€‚类通过引用的方å¼å®žä¾‹åŒ–åQŒæ‰€ä»¥ä¸éœ€è¦ç”¨äºŽåœ¨å¼‚常åŽè¿›è¡Œæ¸…ç†å·¥ä½œçš„夿‚代ç ã€?
˜qç®—½W¦é‡è½?/h4>¾cÕd¯ä»¥é€šè¿‡é‡è²çŽ°æœ‰çš„è¿½Ž—ç¬¦æ‰©å±•¾cÕdž‹¾pÈ»Ÿæ¥æ”¯æŒæ–°¾cÕdž‹ã€‚例如创å»ÞZ¸€ä¸?bignumber class åQŒç„¶åŽé‡è½?+ã€?ã€? å’?/ ˜qç®—½W¦ï¼Œ˜q™æ ·å¤§æ•°¾cÕd°±å¯ä»¥ä½¿ç”¨æ™®é€šçš„代数˜qç®—è¯æ³•了ã€?
生äñ”åŠ?/h3>
模å—
æºæ–‡ä»¶åŒæ¨¡å—是一一对应的。D ä¸å†â€œåŒ…å«â€å¸¦æœ‰å£°æ˜Žçš„æ–‡äšg的文本,而是“导入â€è¯¥æ¨¡å—。ä¸ç”¨æ‹…心多‹Æ¡å¯¼å…¥ä¸€ä¸ªæ¨¡å—,也ä¸ç”¨å†æŠŠå¤´æ–‡äšgç”?tt> #ifndef/#endif 或è€?#pragma once 包è“væ¥äº†ã€?声明 vs 定义
C++ 的函数和¾c»é€šå¸¸éœ€è¦å£°æ˜Žä¸¤‹Æ¡â€”—声明ä½äº?.h 头文件ä¸åQŒå®šä¹‰ä½äº?.c æºæ–‡ä»¶ä¸ã€‚这个过½E‹æ˜“于出错而且冗长¾Jç。显ç„Óž¼Œåº”该åªéœ€è¦ç¨‹åºå‘˜¾~–写一‹Æ¡ï¼Œè€Œç”±¾~–译器æå–出声明信æ¯òq¶å°†å®ƒå¯¼å…¥åˆ°½W¦å·è¡¨ä¸ã€‚è¿™æ£æ˜¯ D 所åšçš„ã€?class ABC { int func() { return 7; } staticint z = 7; } int q;
ä¸å†éœ€è¦å•独定义æˆå‘˜å‡½æ•°ã€é™æ€æˆå‘˜ã€å¤–部声明之¾cÈš„åQŒä¹Ÿä¸éœ€è¦åƒ˜q™æ ·çƒ¦ähçš„è¯æ³•:int ABC::func() { return 7; } int ABC::z = 7; extern int q;
注记åQšå½“ç„Óž¼Œåœ?C++ ä¸ï¼Œç碎的函数如 { return 7; } 也å¯ä»¥ç›´æŽ¥å†™åœ¨å£°æ˜Žå¤„åQŒä½†æ˜¯å¤æ‚的函数ž®×ƒ¸è¡Œäº†åQˆuframeråQšè™½ç„¶ä»Žè¯æ³•上说ä¾ç„¶æ˜¯å¯ä»¥çš„åQŒä½†ä¼šè¿å?C++ 接å£å’Œå®žçŽ°åˆ†¼›Èš„原则。)。å¦å¤–,如果有å‰å‘引用的è¯ï¼Œž®±å¿…™åÖM¿è¯å·²¾l声明了被引用的那个函数一个原型。下é¢çš„代ç åœ?C++ 䏿˜¯ä¸åˆæ³•çš„åQ?class Foo { int foo(Bar *c) { return c->bar; } }; class Bar { public: int bar() { return 3; } };
但是½{‰ähçš?D ä»£ç ž®±å¯ä»¥æ£å¸¸å·¥ä½œï¼šclass Foo { int foo(Bar c) { return c.bar; } } class Bar { int bar() { return 3; } }
D 函数是å¦è¢«åœ¨¾U¿åŒ–å–决于优化程åºçš„讄¡½®ã€?未完待箋...
ã€€ã€€ä½ éœ€è¦å¦ä¹?/span> JAVA è¯è¨€çš„基¼‹€çŸ¥è¯†ä»¥åŠå®ƒçš„æ ¸å¿ƒ¾cÕdº“ (collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization, 以åŠå…¶ä»– ).
ã€€ã€€ä½ åº”è¯¥äº†è§?/span> JVM,classloaders,classreflect, 以åŠåžƒåœ¾å›žæ”¶çš„åŸºæœ¬å·¥ä½œæœºåˆ¶ç‰ . ä½ åº”è¯¥æœ‰èƒ½åŠ›å编译一个类文äšgòq¶ä¸”明白一些基本的汇编指ä×o .
ã€€ã€€å¦‚æžœä½ å°†è¦å†™å®¢æˆ·ç«¯ç¨‹åº?/span> , ä½ éœ€è¦å¦ä¹?/span> WEB çš„å°åº”用½E‹åº (applet), å¿…éœ€æŽŒæ¡ GUI è®¾è®¡çš„æ€æƒ³å’Œæ–¹æ³?/span> , ä»¥åŠæ¡Œé¢½E‹åºçš?/span> SWING,AWT, SWT. ä½ è¿˜åº”è¯¥å¯?/span> UI 部äšgçš?/span> JAVABEAN ¾l„äšgæ¨¡å¼æœ‰æ‰€äº†è§£ .JAVABEANS 也被应用åœ?/span> JSP ä¸ä»¥æŠŠä¸šåŠ¡é€»è¾‘ä»Žè¡¨çŽ°å±‚ä¸åˆ†¼›Õd‡ºæ?/span> .
ã€€ã€€ä½ éœ€è¦å¦ä¹?/span> java æ•°æ®åº“技æœ?/span> , å¦?/span> JDBCAPI òq¶ä¸”会ä‹É用至ž®‘一¿U?/span> persistence/ORM 构架 , 例如 Hibernate,JDO, CocoBase,TopLink,InsideLiberator( 国äñ” JDO ¾U¢å·¥åŽ‚èÊYä»?/span> ) 或è€?/span> iBatis. ä½ è¿˜åº”è¯¥äº†è§£å¯¹è±¡å…³ç³»çš„é˜»æŠ—å¤±é…çš„å«ä¹‰ , 以åŠå®ƒæ˜¯å¦‚何影å“业务对象的与关系型数æ®åº“的交äº?/span> , 和它的è¿è¡Œç»“æž?/span> , ˜q˜éœ€è¦æŽŒæ¡ä¸åŒçš„æ•°æ®åº“äñ”å“è¿ç”?/span> , 比如 :oracle,mysql, mssqlserver.
ã€€ã€€ä½ éœ€è¦å¦ä¹?/span> JAVA 的沙盒安全模å¼?/span> (classloaders,bytecodeverification,managers,policyandpermissions,
codesigning, digitalsignatures,cryptography,certification,Kerberos, 以åŠå…¶ä»– ) ˜q˜æœ‰ä¸åŒçš„安å…?/span> / è®¤è¯ API, 例如 JAAS(JavaAuthenticationandAuthorizationService),JCE (JavaCryptographyExtension),JSSE(JavaSecureSocketExtension), ä»¥åŠ JGSS (JavaGeneralSecurityService).
ã€€ã€€ä½ éœ€è¦å¦ä¹?/span> Servlets,JSP, ä»¥åŠ JSTL(StandardTagLibraries) å’Œå¯ä»¥é€‰æ‹©çš„第三方 TagLibraries.
ã€€ã€€ä½ éœ€è¦ç†Ÿæ‚‰ä¸»‹¹çš„¾|‘页框架 , 例如 JSF,Struts,Tapestry,Cocoon,WebWork, 以åŠä»–们下é¢çš„æ¶‰åŠæ¨¡å¼?/span> , å¦?/span> MVC/MODEL2.
ã€€ã€€ä½ éœ€è¦å¦ä¹ 如何ä‹Éç”¨åŠ½Ž¡ç† WEB æœåŠ¡å™?/span> , 例如 tomcat,resin,Jrun, òq¶ä¸”知é“如何在其基础上扩展和¾l´æŠ¤ WEB ½E‹åº .
ã€€ã€€ä½ éœ€è¦å¦ä¹ 分布å¼å¯¹è±¡ä»¥åŠ˜qœç¨‹ API, 例如 RMI å’?/span> RMI/IIOP.
ã€€ã€€ä½ éœ€è¦æŽŒæ¡å„¿Uæµè¡Œä¸é—´äšgæŠ€æœ¯æ ‡å‡†å’Œä¸?/span> java ¾l“åˆå®žçް , 比如 Tuxedo ã€?/span> CROBA, 当然也包æ‹?/span> javaEE 本èín .
ã€€ã€€ä½ éœ€è¦å¦ä¹ 最ž®‘一¿Uçš„ XMLAPI, 例如 JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J, æˆ?/span> JAXR(JavaAPIforXMLRegistries).
ã€€ã€€ä½ åº”è¯¥å¦ä¹ 如何利ç”?/span> JAVAAPI 和工å…äh¥æž„å¾ WebService. 例如 JAX-RPC(JavaAPIforXML/RPC),SAAJ (SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging), JAXR(JavaAPIforXMLRegistries), 或è€?/span> JWSDP(JavaWebServicesDeveloperPack).
ã€€ã€€ä½ éœ€è¦å¦ä¹ 一门轻é‡çñ”应用½E‹åºæ¡†æž¶ , 例如 Spring,PicoContainer,Avalon, 以åŠå®ƒä»¬çš?/span> IoC/DI é£Žæ ¼ (setter,constructor,interfaceinjection).
ã€€ã€€ä½ éœ€è¦ç†Ÿæ‚‰ä¸åŒçš„ J2EE 技æœ?/span> , 例如 JNDI(JavaNamingandDirectoryInterface),JMS (JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService),JMX (JavaManagementeXtensions), ä»¥åŠ JavaMail.
ã€€ã€€ä½ éœ€è¦å¦ä¹ ä¼ä¸šçñ” JavaBeans(EJB) 以åŠå®ƒä»¬çš„ä¸åŒç»„件模å¼ï¼š Stateless/StatefulSessionBeans,EntityBeans( åŒ…å« Bean- ManagedPersistence[BMP] 或è€?/span> Container-ManagedPersistence[CMP] 和它çš?/span> EJB-QL), 或è€?/span> Message-DrivenBeans(MDB).
ã€€ã€€ä½ éœ€è¦å¦ä¹ 如何管ç†ä¸Žé…置一ä¸?/span> J2EE 应用½E‹åºæœåŠ¡å™?/span> , å¦?/span> WebLogic,JBoss ½{?/span> , òq¶ä¸”åˆ©ç”¨å®ƒçš„é™„åŠ æœåŠ¡ , 例如½‡ç±» , ˜qžæŽ¥æ± 以åŠåˆ†å¸ƒå¼å¤„ç†æ”¯æ´ . ä½ è¿˜éœ€è¦äº†è§£å¦‚何在它上é¢å°è£…å’Œé…置应用½E‹åºòq¶ä¸”能够监控ã€è°ƒæ•´å®ƒçš„æ€§èƒ½ .
ã€€ã€€ä½ éœ€è¦ç†Ÿæ‚‰é¢å‘æ–¹é¢çš„½E‹åºè®¾è®¡ä»¥åŠé¢å‘属性的½E‹åºè®¾è®¡ ( ˜q™ä¸¤ä¸ªéƒ½è¢«å¾ˆå®ÒŽ˜“æ·äh·†çš„ç¾ƒå†™äØ“ AOP), 以åŠä»–们的主‹¹?/span> JAVA è§„æ ¼å’Œæ‰§è¡?/span> . 例如 AspectJ å’?/span> AspectWerkz.
ã€€ã€€ä½ éœ€è¦ç†Ÿæ‚‰å¯¹ä¸åŒæœ‰ç”¨çš?/span> API å’?/span> frame work ½{‰æ¥ä¸ÞZ½ æœåŠ¡ . 例如 Log4J(logging/tracing),Quartz(scheduling),JGroups (networkgroupcommunication),JCache(distributedcaching),Lucene(full-textsearch), JakartaCommons ½{‰ç‰ .
ã€€ã€€å¦‚æžœä½ å°†è¦å¯¹æŽ¥æˆ–者æ£å’Œæ—§çš„ç³»¾lŸæˆ–者本地åã^å?/span> , ä½ éœ€è¦å¦ä¹?/span> JNI(JavaNativeInterface)andJCA(JavaConnectorArchitecture).
ã€€ã€€ä½ éœ€è¦ç†Ÿæ‚?/span> JINI 技术以åŠä¸Žå®ƒç›¸å…³çš„分布å¼ç³»¾l?/span> , æ¯”å¦‚æŽŒæ¡ CROBA.
ã€€ã€€ä½ éœ€è¦?/span> JavaCommunityProcess(JCP) 以åŠä»–çš„ä¸åŒ JavaSpecificationRequests(JSRs), 例如 Portlets(168),JOLAP(69),DataMiningAPI(73), ½{‰ç‰ .
ã€€ã€€ä½ åº”è¯¥ç†Ÿ¾lƒæŽŒæ¡ä¸€¿U?/span> JAVAIDE 例如 sunOne,netBeans,IntelliJIDEA 或è€?/span> Eclipse.( 有些人更喜欢 VI æˆ?/span> EMACS æ¥ç¼–写文ä»?/span> . éšä¾¿ä½ 用什么了åQ?/span> ))
   JAVA( ¾_„¡¡®çš„说是有些酾|?/span> ) 是冗长的 , 它需è¦å¾ˆå¤šçš„人工代ç ( 例如 EJB), æ‰€ä»¥ä½ éœ€è¦ç†Ÿæ‚‰ä»£ç 生æˆå·¥å…?/span> , 例如 XDoclet.
ã€€ã€€ä½ éœ€è¦ç†Ÿæ‚‰ä¸€¿Uå•元测试体¾p?/span> (JNunit), òq¶ä¸”å¦ä¹ ä¸åŒçš„生æˆã€éƒ¨¾|²å·¥å…?/span> (Ant,Maven).
ã€€ã€€ä½ éœ€è¦ç†Ÿæ‚‰ä¸€äº›åœ¨ JAVA å¼€å‘举l常用到的èÊYä»¶å·¥½E‹è¿‡½E?/span> . 例如 RUP(RationalUnifiedProcess)andAgilemethodologies.
ã€€ã€€ä½ éœ€è¦èƒ½å¤Ÿæ·±å…¥äº†è§£åŠ ç†Ÿç»ƒæ“作和酾|®ä¸åŒçš„æ“ä½œ¾pÈ»Ÿ , 比如 GNU/linux,sunsolaris,macOS ½{?/span> , åšäؓ跨åã^å°èÊY件的开å‘è€?/span> .
ã€€ã€€ä½ è¿˜éœ€è¦ç´§è·?/span> java å‘展的æ¥ä¼?/span> , 比如现在å¯ä»¥æ·±å…¥çš„å¦ä¹?/span> javaME, 以åŠå„ç§ java æ–°è§„èŒ?/span> , 技术的˜q用 , 如新èµïLš„ web 富客æˆïL«¯æŠ€æœ?/span> .
ã€€ã€€ä½ å¿…éœ€è¦å¯¹ opensource 有所了解 , å› äØ“è‡›_°‘ java 的很多技术直接是é å¼€æºæ¥é©±åЍå‘展çš?/span> , å¦?/span> java3D 技æœ?/span> .