Java "ÓÐÀíÓÉ" ±È C++ ¿ì
Java "ÓÐÀíÓÉ" ±È C++ ¿ì
×î½üÉÏCSDN±È½Ï¶à£¬ÓÖ¿´µ½ËµJava±ÈC++¸ü¿ìµÄÌû×Ó¡£
JavaÔÚijЩÇé¿öϱÈC++¿ìÎÒÈÏΪÊǺÜÓеÀÀíµÄ¡£ÀýÈç¿ÉÒÔ¸ù¾ÝÌØ¶¨µÄCPU½øÐÐÓÅ»¯µÈµÈ¡£
ÓÐλ½Ð wingfiring(±ð¶ºÁË)(·ÇµäÐÍͺ×Ó) µÄÀÏÐÖ·¢ÁËÒ»¸öÌû×Ó£¬ÔÎÄÈçÏ£º
ºÃ£¬ÎÒûÄÇô¶àʱ¼ä³³C++ºÃ»¹ÊÇJavaºÃ£¬ËùÒÔ£¬ÎÒ¾ÍÏÈÕ°ÑöÒ»ÏÂÂ¥Ö÷¸ø³öµÄÁ´½Ó°É£¬
µÚÒ»¸ö£º
http://kano.net/javabench/
ÀïÃæÓÐÁ½¶Î´úÂë
http://kano.net/javabench/src/cpp/
http://kano.net/javabench/src/java/
È»ºó¸ø³öÁË×Ô¼ºµÄÀíÓɲµ³âÕâ¸ö¹Ûµã¡£¿ÉϧÂíÉϾÍÑÍûÔÚÎÞÐÝÖ¹µÄÀ¬»øÌù×ÓºóÃæ¡£
ÎÒÈ»ºó¾ÍÄÃÉÏÃæµÄÕâ¸öÁ´½ÓÀ´Ëµ£¬·ÖÎöΪʲôJava±ÈC++¿ì¡£
´ó¸ÅµÄÔ´´úÂëÌù³öÀ´£º
Java°æ±¾£º
try {
byte[] buff = new byte[4096];
boolean inword = false;
int length;
while ((length = System.in.read(buff)) != -1) #1
{
nc += length;
for(int i = 0; i < length; i++) { #2
char c = (char)buff[i];
if (c == '\n')
++nl;
if (Character.isWhitespace(c))
inword = false;
else if (inword == false) {
++nw;
inword = true;
}
}
}
×¢Òâ#1ÕâÒ»ÐУ¬read½«4K×Ö½Ú¶ÁÈëbuffÖУ¬È»ºóÔÚ#2½øÐÐÄÚ²ãÑ»·£¬
C++°æ±¾£»
char buff[4096];
cin.rdbuf()->pubsetbuf(buff, 4096); #0// enable buffering
state = OUT;
nl = nw = nc = 0;
int intc;
streambuf* sbuf = cin.rdbuf();
while ((intc = sbuf->sbumpc()) != EOF) { #1
c = (char)intc;
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\n' || c == '\t')
state = OUT;
else if (state == OUT) {
state = IN;
++nw;
}
}
cout << nl << " " << nw << " " << nc << endl;
×¢ÒâC++°æ±¾Ö»Óе¥²ãÑ»·£¬ËäÈ»ÔÚ#0Ã²ËÆ¹«ÕýµÄ¿ª±ÙÁËͬÑù´óСµÄ4K buffer£¬µ«ÊÇÿһ¸ö×ֽڵĻñµÃ¶¼ÊÇͨ¹ýsbumpc()º¯Êý£¬µ÷ÓÃÒ»´Î¶Áȡһ¸ö×Ö½Ú£¬sbumpc´ó¸ÅÆäÖеÄÂß¼ÊÇÊ²Ã´ÄØ£¿Ê×ÏÈÒªÅжÏÊÇ·ñ¶Áµ½ÄÚ²¿»º³åÇøÎ²ÁË£¬Èç¹ûûÓУ¬ÄÇôµÝÔöÒ»¸öÖ¸Õ룬Èç¹û¶Áµ½Î²ÁË£¬ÄÇô½øÐÐϵͳµ÷ÓøüÐÂbuffer¡£¹âÆäÖÐifÓïÑԵĿªÏú¾Í¾ªÈË¡£
¶øJava°æ±¾¾Íͨ¹ýÒ»¸öreadº¯Êýµ÷Óã¬Ö±½Ó½«²»¶àÓÚ4KµÄÊý¾Ý´ÓÁ÷ÖжÁÈ¡µ½±¾µØbufferÖУ¬È»ºó½øÐÐÄÚ²ãÑ»·¡£
ÕâÑù¶ÔÓÚC++µÄ°æ±¾£¬ËäÈ»¶ÔOSµ×²ãµÄϵͳµ÷ÓúÍJavaÒ»Ñù¶à£¬µ«ÊǺ¯Êýµ÷ÓõĴÎÊý¿ªÏú¼¸ºõÊÇJavaµÄ4000±¶¡£
¼´Ò»¸ö8KµÄÎļþ£¬Javaµ÷ÓÃÁ½´Îread£¬È»ºó½øÈëÄÚ²ãÑ»
Ïà¹ØÎĵµ£º
java.lang.Object ÌṩÁËÒ»¸ötoString()µÄ·½·¨£¬µ«Êµ¼ÊÉÏÕâ¸ö·½·¨·µ»ØµÄÍùÍù²»ÊÇÎÒÃÇÐèÒªµÄ£¬Ëü·µ»ØµÄÊÇÀàÃû¼ÓÉÏ“@”¼ÓÉÏÊ®Áù½øÖƵÄhashÖµ¡£ÕâÏÔÈ»²»ÊÇÎÒÃÇÏëÒªµÄ£¬ËùÒÔ±ØÐëÖØÔØtoStringº¯Êý¡£
ºÜ¼òµ¥µÄÀý×Ó£¬ÈçÏÂ
System.out.println("Failed to connect: " + phoneNumber);
Èç¹û²»ÖØÔØ£¬ÔòÓÐ
Failed to co ......
CloneÕâ¸ö·½·¨ºÜ¼¦Àߣ¬ÔÒòÊÇÒòΪËüÊÇÊܱ£»¤µÄ(protected)£¬Æä¶þCloneÕâ¸ö·½·¨ÊÇ¿ÉÑ¡µÄ£¬¼´ÓпÉÄÜÀàûÓÐÌṩÕâ¸ö·½·¨¡£
cloneûÓе÷Óù¹Ô캯Êý£¬¶øÇÒÈç¹û¸¸ÀàûÓÐʵÏÖcloneµÄ»°£¬×ÓÀàÓÀÔ¶Ò²²»¿ÉÄÜÕýȷʵÏÖclone.
×ÜÖ®£¬cloneÊǸöºÜÍ·Í´µÄº¯Êý£¬Èç¹ûÒªÕýȷʵÏÖ£¬±ØÐ뿼Âǵ½É±´µÄÇé¿ö£¬·ñÔò±»¿Ë¡³öÀ´µÄ¶ÔÏó¾Í²»ÊǶÀÁ¢µÄ ......
Ò»¡¢
HTTP
ÐÒéµÄÀí½â
1.
ʲôÊÇ
HTTP
ÐÒé
HTTP
ÊÇÒ»ÖÖ³¬±¾ÎÄ´«ÊäÐÒ飬ÊÇÒ»Ì×¼ÆËã»úÔÚÍøÂçÖÐͨÐŵĹæÔò¡£ËûÊÇÒ»ÖÖÎÞ״̬µÄ´«Ê䷽ʽ¡£
2.
HTTP
ÐÒéµÄ¸ñʽ
HTTP
µÄÇëÇó£º
Ç ......
¡¡¡¡Àà¼ÓÔØÊÇjavaÓïÑÔÌṩµÄ×îÇ¿´óµÄ»úÖÆÖ®Ò»¡£¾¡¹ÜÀà¼ÓÔØ²¢²»ÊÇÌÖÂÛµÄÈȵ㻰Ì⣬µ«ËùÓеıà³ÌÈËÔ±¶¼Ó¦¸ÃÁ˽âÆä¹¤×÷»úÖÆ£¬Ã÷°×Ôõô×ö²ÅÄÜÈÃÆäÂú×ãÎÒÃǵÄÐèÒª¡£ÕâÄÜÓÐЧ½ÚÊ¡ÎÒÃǵıàÂëʱ¼ä£¬´Ó²»¶Ïµ÷ÊÔClassNotFoundException, ClassCastExceptionµÄ¹¤×÷ÖнâÍѳöÀ´¡£
¡¡¡¡ÕâÆªÎÄÕ´ӻù´¡½²Æð£¬±ÈÈç´úÂëºÍÊý¾ÝµÄ²»Í¬Ö®´¦ÊÇʲ ......
Ï£¶ûÅÅÐòËã·¨Äܹ»³ÉÁ¢µÄ»ù´¡ÊÇÊý×éÒ²½Ó½üÓÐÐòÖ±½Ó²åÈëÅÅÐòËã·¨µÄʱ¼äЧÂÊÔ½¸ß¡£Ï£¶ûÅÅÐòËã·¨ÊÇÔÚ²»¼õÉÙÊý×éÔªËØµÄ¸öÊýÇé¿öϽ«Êý×é·Ö×飬´Ó¶ø½«ÅÅÐòºÃµÄÊý²åÈëµ½ÐÂÊý×éÖÐÈ¥¡£¹Ø¼üÔÚÓÚÆä˼Ïë¡£
Ë㷨ʵÏÖÈçÏ£º
/**
* Ï£¶ûÅÅÐòÓÖ³ÆÎªËõСÔöÁ¿ÅÅÐò
* @param a ÓÃÓÚÅÅÐòµÄÊý×é
* @pa ......