FAQ
¡@
C»y¨¥©MC++»y¨¥¦³¦ó¤£¦P¡H
C»y¨¥³QºÙ¬°µ{¦¡¤§¥À¡A¦]¬°¥Ø«e¥@¬É¤W¦³¹L¥bªºµ{¦¡³£¬O¥ÑC©Ò¼g¦¨ªº¡C§A¥i¯à¹ïC»y¨¥ªº¾ú¥v¨S¤°»ò¿³½ì¡A¦ý¬O§A¥²¶·ª¾¹D¡A¥Ø«eºô¸ô¤W¥D¾÷¨Ï¥ÎªºUNIX§@·~¨t²Î¡A´N¬O¥ÎC»y¨¥¼g¥X¨Óªº¡A¥Ñ©óC»y¨¥ªº§Ö³t¡B¯à¦b¦U§@·~¨t²Î¤¤¶¶§Q²¾´Ó(³N»y¥s¥iÄâ©Ê)¡A©Ò¥H«K¦¨¬°¥Ø«eµ{¦¡³]pªº¥D¬y¡C
C++»y¨¥«h¬O¤Þ¶i¤Fª«¥ó¾É¦VªºÆ[©À¡AÅýC»y¨¥ªºµo®iªº§ó¦¨¼ô¡AC»y¨¥©MC++»y¨¥¨âªÌÁöµM¬Û¦ü¡A¦ý¬O¦b¼g§@ªºÆ[©À¤W«o¤£ºÉ¬Û¦P¡A¤£¹L¥Ø«e¤j¦h¼Æªº½sĶµ{¦¡³£¯à¦P®É¤ä´©³o¨âºØ»y¨¥¡C ¥Ñ©óC»PC++ªº¦¨¥\¡A¤]«P¦¨¤FJava»y¨¥ªºµo®i¡A¨ä¹ê¡A³o¤TÓµ{¦¡»y¨¥®Ú¥»¬O¤@¯ß¬Û©Óªºµ{¦¡»y¨¥¡A¤]¥i¥H»¡¬O·í¤µ¸ê°T¬Éªº¥D¬y¬£¡C |
¡]¨ú¦Û¡GPC123¹q¸£¾Ç²ßºô¡^
Á|¨Ò¨Ó»¡¡A¼g¤@ÓHello World¡AC»PC++ªº®t§O¦p¤U¡G
C | C++ |
#include <stdio.h> int main() { printf("Hello! World!\n"); system("pause"); return 0; } |
#include <iostream>
using namespace std; int main() {cout << "Hello! World!" << endl;system("pause"); return 0; } |
C++»y¨¥©MJAVA»y¨¥¦³¦ó¤£¦P¡H
C++ | Java |
---|---|
©MC»y¨¥Ý®e,°£¤F¤@¨Ç¤ñ¸û¤Ö¨£ªº±¡ªp | ¨S¦³¹ï¥ô¦ó¤§«eªº»y¨¥¦V«eÝ®e.¦ý¦b»yªk¤W¨ü C/C++ ªº¼vÅT«Ü¤j |
¤@¦¸½s¼g¨ì³B½sĶ | ¤@¦¸½s¼g¨ì³B¹B¦æ |
¤¹³\¹Lµ{½sµ{©Mª«¥ó¾É¦V½sµ{ | ¹ªÀyª«¥ó¾É¦Vªº½sµ{¤è¦¡ |
¤¹³\ª½±µ½Õ¥Îì¥Íªº¨t²Î®w | n³q¹LJNI(en:Java Native Interface)½Õ¥Î, ©ÎªÌ JNA(en:Java Native Access) |
¯àª½±µ¨Ï¥Î©³¼h¨t²Î¤¶± | ¦b¤@Ó«OÅ@¼Ò¦¡¤UªºµêÀÀ¾÷¤¤¹B¦æ |
¥u´£¨Ñ¹ï¶HªºÃþ«¬©MÃþ«¬¦W | ¬O¤Ï®gªº, ¤¹³\¤¸½sµ{©M¹B¦æ®Éªº°ÊºA¥Í¦¨¥N½X |
¦³¦hºØ¤G¶i¨îÝ®e¼Ð·Ç (¨Ò¦p:·L³n©MItanium/GNU) | ¤@ºØ¤G¶i¨îÝ®e¼Ð·Ç,¤¹³\¹B¦æ®É®wªº¥¿½T©ÊÀˬd |
¥i¿ïªº¦Û°ÊÃä¬ÉÀˬd. (¨Ò¦p: vector ©M string ³o¨âÓ®e¾¹ªº at() ¤èªk) | ¤@¯ë³£¦³°µÃä¬ÉÀˬd. HotSpot (java)(Sun ªºµêÀÀ¾÷¹ê²{) ¥i¥H¥h±¼Ãä¬ÉÀˬd. |
¤ä«ùì¥ÍªºµL²Å¸¹¼Æ¾Ç¹Bºâ | ¤£¤ä«ùì¥ÍªºµL²Å¸¹¼Æ¾Ç¹Bºâ |
¹ï©Ò¦³ªº¼Æ¦rÃþ«¬¦³¼Ð·Çªº½d³ò¨î,¦ý¦ì¤¸²Õªø«×¬O¸ò¹ê²{¬ÛÃöªº. ¼Ð·Ç¤ÆªºÃþ«¬¥i¥H¥Î typdef ©w¸q (uint8_t, ..., uintptr_t). | ¦b©Ò¦³¥¥x¤W¹ï©Ò¦³ªº°ò¥»Ãþ«¬³£¦³¼Ð·Çªº½d³ò¨î©M¦ì¤¸²Õªø«×. |
¤ä«ù«ü°w,¤Þ¥Î,ȶǻ¼ |
°ò¥»Ãþ«¬Á`¬O¨Ï¥Îȶǻ¼. ¹ï¶H¥H¥i¥H¬°ªÅªº¤Þ¥Îªº¤è¦¡¶Ç»¼ (¬Û·í©ó¦bC++¨½¨Ï¥Î«ü¦V
class ©ÎªÌ struct °Ñ¼Æªº«ü°w).[1] |
Å㦡ªº¤º¦sºÞ²z,¦ý¦³²Ä¤T¤èªº®Ø¬[¥i¥H´£¨Ñ©U§£·j¶°ªº¤ä«ù. ¤ä«ùªRºc¨ç¼Æ. |
¦Û°Ê©U§£·j¶°(¥i¥H¤â°ÊIJµo).¨S¦³ªRºc¨ç¼Æªº·§©À,¹ï finalize()
ªº¨Ï¥Î¬O¤£±ÀÂ˪º. |
¤ä«ùÃþ,µ²ºc,Áp¦X,¥i¥H¦b°ï©ÎªÌ´Ì¨½¬°¥¦Ì°ÊºA¤À°t¤º¦s. | ¥u¤ä«ùÃþ,¥u¦b°ï¤¤¬°¹ï¶H¤À°t¤º¦s.Java SE 6¦b´Ì¬°¤@¨Ç¹ï¶H¤À°t¤º¦sªº¨Ï¥Î¤F°k¶h¤ÀªR(en:escape analysis)ªºÀu¤Æ¤èªk. |
¤¹³\Å㦡ªºÂл\(¤]¥s«¼g)Ãþ«¬ | ÄY®æªºÃþ«¬¦w¥þ(en:type safety),°£¤FÅܼeªºÃþ«¬Âà´«. Java 1.5 ¶}©l¤ä«ù¦Û°ÊÃþ«¬¥]¸Ë©M¸Ñ¥]¸Ë(Autoboxing/Unboxing). |
C++¼Ð·Ç®w¥]¬A:»y¨¥¤ä«ù,¶EÂ_¤u¨ã,±`¥Î¤u¨ã,¦r¤¸¦ê,¥»¦a¤Æ,®e¾¹,ºtºâªk,¡¥N¾¹,¼ÆÈ,¿é¤J/¿é¥X,C¼Ð·Ç®w. Boost®w´£¨Ñ¤F§ó¦hªº¥\¯à,¥]¬A°õ¦æºü©Mºô¸ôI/O.¨Ï¥ÎªÌ¥²¶·¦b¤@¤j°ï(¤j³¡¤À¤¬¬Û¤£Ý®e)²Ä¤T¤èGUI©ÎªÌ¨ä¥L¥\¯à®w¤¤¶i¦æ¿ï¾Ü. | ¼Ð·Ç®w¦b¨C¦¸ Java µo¥¬·sª©¥»ªº®ÉÔ³£·|§ó·s¨Ã¼W±j¥\¯à. 1.6ª©¥»¤ä«ù:¥»¦a¤Æ,logging,®e¾¹©M¡¥N¾¹,ºtºâªk,GUI ½sµ{(¦ý¨S¦³¥Î¨ì¨t²ÎªºGUI),¹Ï§Î,¦h°õ¦æºü,ºô¸ô,¥¥x¦w¥þ,¦Û¬Ù¾÷¨î,°ÊºAÃþ¸ü¤J,ªý¶ë©M«Dªý¶ëªºI/O,¹ï©óXML,XSLT,MIDI¤]´£¨Ñ¤F¬ÛÃö¤¶±©ÎªÌ¤ä«ùÃþ,¸ê®Æ®w,©R¦WªA°È(¨Ò¦p LDAP),±K½X¾Ç,¦w¥þªA°È(¨Ò¦p Kerberos),¦C¦LªA°È,WEB ªA°È.SWT ´£¨Ñ¤F¤@Ó¨t²Î¬ÛÃöªºGUIªº©â¶H. |
¹ï¤j³¡¤Àªº¾Þ§@²Å³£¥i¥H¶i¦æ¾Þ§@²Å«¸ü(en:Operator overloading) | ¾Þ§@²Åªº·N¸q¤@¯ë¨Ó»¡¬O¤£¥iÅܪº,¨Ò¥~¬O + ©M += ¾Þ§@²Å³Q¦r¤¸¦ê«¸ü¤F. |
§¹¥þªº¦h«Ä~©Ó,¥]¬AµêÀÀÄ~©Ó | Ãþ¥u¤¹³\³æÄ~©Ó,»Ýn¦hÄ~©Óªº±¡ªpn¨Ï¥Î¤¶±. |
¤ä«ù½sĶ´Á¼ÒªO | ªx«¬(en:Generics in Java)³Q¥Î¨Ó¹F¨ì©MC++¼ÒªOÃþ¦üªº®ÄªG,¦ý¥Ñ©óÃþ«¬®ø°£(en:Type Erasure)¥¦Ì¤£¯à¦b½sĶ´Á¶¡±q¥N½X³Q½sĶ¦¨¦ì¤¸²Õ½X. |
¤ä«ù¨ç¼Æ«ü°w,¨ç¼Æ¹ï¶H,lambda(¦b C++0x)©M¤¶± | ¨S¦³¨ç¼Æ«ü°w¾÷¨î.´À¥Nªº·§©À¬O¤¶±,Adapter ©M Listener¤]¬O³Q¼sªx¨Ï¥Îªº. |
¨S¦³¼Ð·Çªº¥N½X¤º´O¤åÀɾ÷¨î. ¤£¹L¦³²Ä¤T¤èªº³nÅé(¨Ò¦p Doxygen). | Javadoc ¼Ð·Ç¤åÀɥͦ¨¨t²Î. |
const ÃöÁä¦r¥Î¨Ó©w¸q¤£¥i§ïÅܪº±`¶q©M¦¨û¨ç¼Æ |
final ´£¨Ñ¤F¤@Ө¥»ªº const ,
µ¥»ù©ó type* const ªº¹ï¶H«ü°w©ÎªÌ const ªº°ò¥»Ãþ«¬¼Æ¾Ú. ¨S¦³
const ¦¨û¨ç¼Æ, ¤]¨S¦³const type* «ü°wªºµ¥»ùª«. |
¤ä«ù goto »y¥y. |
¤ä«ù´`Àô¼ÐÅÒ(label)©M»y¥y¶ô. |
ì©l½X¥i¥H¼g¦¨¥¥xµLÃöªº (¥i¥H³Q Windows, BSD, Linux, Mac OS X, Solaris µ¥½sĶ, ¤£¥Îקï) ,¤]¥i¥H¼g¦¨§Q¥Î¥¥x¯S¦³ªº¯S©Ê. ³q±`³Q½sĶ¦¨ì¥Íªº¾÷¾¹½X. | ³Q½sĶ¦¨JavaµêÀÀ¾÷ªº¦ì¤¸²Õ½X. ©MJava¥¥x¬ÛÃö,¦ý¬Oì©l½X¤@¯ë¨Ó»¡¬O¤£¨Ì¿à§@·~¨t²Î¯S¦³ªº¯S©Êªº. |
¡@
°Ñ¦Ò维°ò¦Ê¬ì¡G¤ñ¸ûJava©MC++
Á|¨Ò¨Ó»¡¡A¼g¤@ÓHello World¡AC¡BC++»PJAVAªº®t§O¦p¤U¡G
C | C++ | JAVA |
#include <stdio.h> int main() { printf("Hello! World!\n"); return 0; } |
#include <iostream>
using namespace std; int main() {cout << "Hello! World!" << endl;return 0; } |
public
class
FirstJava { public static void main(String[] argv) { System.out.println("Hello! World!"); } } |
¡@
JAVA SDK
n«Ø¥ßJava¶}µoÀô¹Ò¡AÂ÷¤£¶}SunªºJAVA2 SDK¡C
1998¦~12¤ëSun¤½¥qµo§G¤FJava Software Development Kit(²ºÙJAVA2 SDK)¡A¥Ø«eªº³Ì·sª©¥»¬OJ2sdk-1.4.2.05¡C
¥i¦bhttp://Java.sun.com¤U¸ü¡C®Ú¾Ú¹B¦æ¥»Oªº¤£¦P¡A¤U¸ü¬ÛÀ³ªºª©¥»¨Ã³]¸m¦nPATH©MCLASSPATH¡C
³oÓ®M¸Ë³nÅé´£¨Ñ¤FJava½sĶ¾¹¡BJava¸ÑÄÀ¾¹¡A¦ý¨S¦³´£¨ÑJava½s¿è¾¹¡A¦]¦¹»Ýn¨Ï¥ÎªÌ¦Û¤v¿ï¾Ü¤@Ó¤è«K©ö¥Îªº½s¿è¾¹©Î¶°¦¨¶}µo¤u¨ã¡C
ªì¾ÇªÌ¾A¥ÎªºJava¶}µo¤u¨ã¡C
¤@
UltraEdit
UltraEdit¬O¦@¥Î³nÅé¡A¥¦ªº©x¤èºô§}¬O¡Gwww.ultraedit.com¡C³Ì·sª©¥»¬OV10.20b¡C¥¦¬O¤@Ó¥\¯à±j¤jªº¤å¥»¡BHTML¡Bµ{¦¡·½¥N½X½s¿è¾¹¡C§@¬°·½¥N½X½s¿è¾¹¡A¥¦ªºÀq»{°t¸m¥i¥H¹ïC/C++,
VB, HTML, Java©M
Perl¶i¦æ»yªkµÛ¦â¡C¥Î¥¦³]pJavaµ{¦¡®É¡A¥i¥H¹ïJavaªºÃöÁä¦r¶i¦æÃѧO¨ÃµÛ¦â¡A¤è«K¤FJavaµ{¦¡³]p¡C¥¦¨ã¦³§¹³Æªº½Æ»s¡BÖ߶K¡B°Å¤Á¡B¬d§ä¡B´À´«¡B®æ¦¡±±¨îµ¥½s¿è¥\¯à¡C¥i¥H¦bAdvanced¥\¯àªíªºTool
Configuration ¥\¯àªí¶µ°t¸m¦nJavaªº½sĶ¾¹Javac©M¸ÑÄÀ¾¹Java¡Aª½±µ½sĶ¹B¦æJavaµ{¦¡¡C
°t¸mJavac¡G¦bCommand
LineùØ¿é¤J¡GD:\JSP\j2sdk\bin\Javac
%f,³oùØJavacªº¸ô®|n®Ú¾ÚJDKªº¹ê»Ú¦w¸Ë¸ô®|¨Ó«ü©w¡A%f¬O«ü·í«e¬¡°Ê¤åÀɪº¥þÀɮצW¡C¦bMenu
Item Name ùØ¿é¤JJavac
¡A¥¦Åã¥Ü¦bAdvanced¥\¯àªíùØ¡A³o¼Ë´N¥i¥Hª½±µ°õ¦æ¥¦¶i¦æ½sĶ¤F¡C¿ï¤¤Output
To List Box©MCapture
Output ,³o¼Ë´N¥i¥H¦b·½¥N½X¤U±ªº¿é¥Xµøµ¡ùجݨì½sĶ®Éªº¿ù»~¸ê°T¤F¡C°t¸m¤£±a°Ñ¼Æ¹B¦æªº¸ÑÄÀ¾¹Java¡G¦bCommand
LineùØ¿é¤J¡GD:\JSP\j2sdk\bin
Java %n¡A¦bMenu
Item Name ùØ¿é¤J:
Java filename¡A¿ï¤¤Output
To List Box©MCapture
Output
¡A¹B¦æµ²ªGÅã¥Ü¦b¿é¥Xµøµ¡ùØ¡C°t¸m±a°Ñ¼Æ¹B¦æªº¸ÑÄÀ¾¹Java¡G¦bCommand
LineùØ¿é¤J¡Gd:\JSP\j2sdk\bin\Java
%n%modify%¡A¦bMenu
Item Name ùØ¿é¤J¡GJava
filename parameter¡A³o¼Ë·í°õ¦æ³oÓ¥\¯àªí¶µªº®ÉÔ¡A·|Åã¥Ü¤@Ón¨D¿é¤J°Ñ¼Æªº¹ï¸Ü¤è¶ô¡C
¤G
Editplus
EditPlus¬O¦@¥Î³nÅé¡A¥¦ªº©x¤èºô§}¬O¡Gwww.editplus.com¡C³Ì·sª©¥»¬OEditPlus
2.12¡CEditPlus¤]¬O¥\¯à«Ü¥þ±ªº¤å¥»¡BHTML¡Bµ{¦¡·½¥N½X½s¿è¾¹¡CÀq»{ªº¤ä«ùHTML¡BCSS¡BPHP¡BASP¡BPerl¡BC/C++¡BJava¡Bjavascript©MVBScriptªº»yªkµÛ¦â¡C³q¹L©w¨î»yªkÀÉÁÙ¥i¥HÂX®i¨ì¨ä¥Lµ{¦¡»y¨¥¡C¥i¥H¦bTools¥\¯àªíªºConfigure
User Tools¥\¯àªí¶µ°t¸m¥Î¤á¤u¨ã¡AÃþ¦ü©óUltraEditªº°t¸m¡A°t¸m¦nJavaªº½sĶ¾¹Javac©M¸ÑÄÀ¾¹Java«á¡A³q¹LEditPlusªº¥\¯àªí¥i¥Hª½±µ½sĶ°õ¦æJavaµ{¦¡¡C
¤T
Jcreator
Jcreator¬O¤@ӥΩóJavaµ{¦¡³]pªº¶°¦¨¶}µoÀô¹Ò¡A¨ã¦³½s¿è¡B½Õ¸Õ¡B¹B¦æJavaµ{¦¡ªº¥\¯à¡C©x¤èºô§}¬O¡Gwww.jcreator.com¡C·í«e³Ì·sª©¥»¬OJcreator
3.10¡A¥¦¤S¤À¬°LE©MProª©¥»¡CLEª©¥»¥\¯à¤W¨ü¨ì¤@¨Ç¨î¡A¬O§K¶Oª©¥»¡CProª©¥»¥\¯à³Ì¥þ¡A¦ý³oÓª©¥»¬O¤@Ó¦@¥Î³nÅé¡C³oÓ³nÅé¤ñ¸û¤p¥©¡A¹ïµwÅén¨D¤£¬O«Ü°ª¡A§¹¥þ¥ÎC++¼gªº¡A³t«×§Ö¡B®Ä²v°ª¡C¨ã¦³»yªkµÛ¦â¡B¥N½X¦Û°Ê§¹¦¨¡B¥N½X°Ñ¼Æ´£¥Ü¡B¤uµ{ÂQ¾É¡BÃþÂQ¾Éµ¥¥\¯à¡C²Ä¤@¦¸±Ò°Ê®É´£¥Ü³]¸mJava
JDK¥D¥Ø¿ý¤ÎJDK
JavaDoc¥Ø¿ý¡A³nÅé¦Û°Ê³]¸m¦nÃþ¸ô®|¡B½sĶ¾¹¤Î¸ÑÄÀ¾¹¸ô®|¡AÁÙ¥i¥H¦bÀ°§U¥\¯àªí¤¤¨Ï¥ÎJDK
Help¡C¦ý¥Ø«e³oÓª©¥»¹ï¤¤¤å¤ä«ù©Ê¤£¦n¡C
¥|
Eclipse
Eclipse¬O¤@Ó¶}©ñ¥iÂX®iªº¶°¦¨¶}µoÀô¹Ò(IDE)¡C¥¦¤£¶È¥i¥H¥Î©óJavaªº¶}µo¡A³q¹L¶}µo´¡¥ó¡A¥¦¥i¥Hºc«Ø¨ä¥Lªº¶}µo¤u¨ã¡CEclipse¬O¶}©ñ·½¥N½Xªº¶µ¥Ø¡A¨Ã¥i¥H§K¶O¤U¸ü¡C¥¦ªº©x¤èºô§}¬O¡Gwww.eclipse.org
¡C¥¦ªº©x¤èºô¯¸´£¨ÑReleases¡BStable
Builds¡BIntegration
Builds©MNightly
Builds¤U¸ü¡C«Øij¨Ï¥ÎReleases©ÎStable
Buildsª©¥»¡C
Releasesª©¥»¬OEclipse¶}µo¹Î¶¤µo§Gªº¥Dnµo¦æª©¥»¡A¬O¸g¹L´ú¸ÕªºÃ©wªºª©¥»¡A¾A¦Xn¨Déw¦Ó¤£»Ýn³Ì·s§ï¶i¥\¯àªº¨Ï¥ÎªÌ¿ï¾Ü¡C¥Ø«e³Ì·sªºReleaseª©¥»¬OEclipse
3.0¡CStable
Buildsª©¥»¬O¹ï¤j¦h¼Æ¨Ï¥ÎªÌ¨¬°÷éwªºª©¥»¡A¥Ñ¶}µo¹Î¶¤±N»{¬°¤ñ¸ûéwªºIntegration
Buildª©¥»´£¤É¨ìStable
Build¦Ó¨Ó¡A¾A¦X·Q¨Ï¥ÎEclipse·s¥\¯àªº¨Ï¥ÎªÌ¿ï¾Ü¡C¹ï©óReleasesª©¥»2.1.x¡A¦bEclipseªº©x¤èºô¯¸¤W¦³¤@Ó»y¨¥¥]¥i¥H¤U¸ü¡A³o¼ËEclipse¤Î¨äÀ°§U³£¬O²Å餤¤åªº¡C¥Î©óJava¶}µo¡AEclipse»PUltraEdit©MEditplus¨âºØ½s¿è¾¹©MJcreator
IDE¤ñ¸û¡AEclipse§ó±M·~¡A¥\¯à§ó±j¤j¡C
¡]°Ñ¦Ò¸ê®Æ¡G<Java IDE¡GJavaªì¾ÇªÌ±`¥Î¶}µo¤u¨ã¤¶²Ð>¡^
¤ jbuilder
¤» myeclipse
¤C netbeans
Gel
TextPad
EditPlus
JAVA±`¥ÎIDE¤ñ¸û