{"rsdb":{"rid":"372603","subhead":"","postdate":"0","aid":"261537","fid":"76","uid":"1","topic":"1","content":"
\n

\u4e00\u3001Java\u5185\u5b58\u533a\u57df<\/strong><\/span><\/p> \n

1\u3001\u8fd0\u884c\u65f6\u6570\u636e\u533a\u57df<\/span><\/p> \n

\n

\u6839\u636e\u300aJava \u865a\u62df\u673a\u89c4\u8303(Java SE 7 \u7248)\u300b\u89c4\u5b9a\uff0cJava \u865a\u62df\u673a\u6240\u7ba1\u7406\u7684\u5185\u5b58\u5305\u62ec\u4ee5\u4e0b\u51e0\u4e2a\u8fd0\u884c\u65f6\u6570\u636e\u533a\u57df\uff1a<\/span><\/p> \n <\/blockquote> \n

\"\"<\/p> \n

 <\/p> \n

 1.1 \u7a0b\u5e8f\u8ba1\u6570\u5668<\/span><\/p> \n

\n

\u7a0b\u5e8f\u8ba1\u6570\u5668\u662f\u4e00\u5757\u8f83\u5c0f\u7684\u5185\u5b58\u7a7a\u95f4\uff0c\u53ef\u4ee5\u770b\u505a\u662f\u5f53\u524d\u7ebf\u7a0b\u6240\u6267\u884c\u7684\u5b57\u8282\u7801\u7684\u884c\u53f7\u6307\u793a\u5668\u3002\u5b57\u8282\u7801\u89e3\u91ca\u5668\u5728\u6267\u884c\u65f6\u901a\u8fc7\u6539\u53d8\u8ba1\u6570\u5668\u7684\u503c\u6765\u9009\u53d6\u4e0b\u4e00\u6761\u8981\u6267\u884c\u7684\u5b57\u8282\u7801\u7684\u6307\u4ee4\uff0c\u5206\u652f\u3001\u5faa\u73af\u3001\u8df3\u8f6c\u3001\u5f02\u5e38\u5904\u7406\u3001\u7ebf\u7a0b\u6062\u590d\u7b49\u57fa\u7840\u529f\u80fd\u90fd\u9700\u8981\u4f9d\u8d56\u8fd9\u4e2a\u8ba1\u6570\u5668\u6765\u5b8c\u6210<\/span><\/p> \n

\u7a0b\u5e8f\u8ba1\u6570\u5668\u662f\u7ebf\u7a0b\u79c1\u6709<\/strong>\u7684\u5185\u5b58\u533a\u57df<\/span><\/p> \n

\u6b64\u5185\u5b58\u533a\u57df\u662f\u552f\u4e00\u4e00\u4e2aJava\u865a\u62df\u673a\u89c4\u8303\u4e2d\u6ca1\u6709\u89c4\u5b9a\u4efb\u4f55OOM\uff08OutofMemoryError\uff09\u7684\u533a\u57df<\/span><\/p> \n <\/blockquote> \n

 1.2 \u865a\u62df\u673a\u6808<\/span><\/p> \n

\n

 Java\u865a\u62df\u673a\u6808\u4e5f\u662f\u7ebf\u7a0b\u79c1\u6709<\/strong>\u7684\u5185\u5b58\u533a\u57df\uff0c\u4ed6\u7684\u751f\u547d\u5468\u671f\u4e0e\u7ebf\u7a0b\u76f8\u540c<\/span><\/p> \n

\u63cf\u8ff0\u7684\u662f Java \u65b9\u6cd5\u6267\u884c\u7684\u5185\u5b58\u6a21\u578b\uff1a\u6bcf\u4e2a\u65b9\u6cd5\u5728\u6267\u884c\u65f6\u90fd\u4f1a\u5e8a\u521b\u5efa\u4e00\u4e2a\u6808\u5e27(Stack Frame)\u7528\u4e8e\u5b58\u50a8\u5c40\u90e8\u53d8\u91cf\u8868<\/code>\u3001\u64cd\u4f5c\u6570\u6808<\/code>\u3001\u52a8\u6001\u94fe\u63a5<\/code>\u3001\u65b9\u6cd5\u51fa\u53e3<\/code>\u7b49\u4fe1\u606f\u3002\u6bcf\u4e00\u4e2a\u65b9\u6cd5\u4ece\u8c03\u7528\u76f4\u81f3\u6267\u884c\u7ed3\u675f\uff0c\u5c31\u5bf9\u5e94\u7740\u4e00\u4e2a\u6808\u5e27\u4ece\u865a\u62df\u673a\u6808\u4e2d\u5165\u6808\u5230\u51fa\u6808\u7684\u8fc7\u7a0b\u3002<\/span><\/p> \n

 <\/p> \n

\u5c40\u90e8\u53d8\u91cf\u8868\uff1a<\/strong><\/span><\/p> \n

\u5b58\u653e\u4e86\u7f16\u8bd1\u671f\u53ef\u77e5\u7684\u5404\u79cd\u57fa\u672c\u7c7b\u578b(boolean\u3001byte\u3001char\u3001short\u3001int\u3001float\u3001long\u3001double)\u3001\u5bf9\u8c61\u5f15\u7528(reference \u7c7b\u578b)\u548c returnAddress \u7c7b\u578b(\u6307\u5411\u4e86\u4e00\u6761\u5b57\u8282\u7801\u6307\u4ee4\u7684\u5730\u5740)<\/span><\/p> \n

 <\/p> \n

\u4e24\u79cd\u5f02\u5e38\u60c5\u51b5\uff1a<\/strong><\/span><\/p> \n

\u5982\u679c\u7ebf\u7a0b\u8bf7\u6c42\u7684\u6808\u6df1\u5ea6\u5927\u4e8e\u865a\u62df\u673a\u6240\u5141\u8bb8\u7684\u6df1\u5ea6\uff0c\u5c31\u4f1a\u629b\u51faStackOverflowError\u5f02\u5e38<\/span>
\u5982\u679c\u865a\u62df\u673a\u6808\u53ef\u4ee5\u52a8\u6001\u6269\u5c55\uff0c\u800c\u6269\u5c55\u65f6\u65e0\u6cd5\u7533\u8bf7\u5230\u8db3\u591f\u7684\u5185\u5b58\uff0c\u5c31\u4f1a\u629b\u51faOutOfMemoryError\u5f02\u5e38<\/span><\/p> \n <\/blockquote> \n

 1.3 \u672c\u5730\u65b9\u6cd5\u6808<\/span><\/p> \n

\n

\u7ebf\u7a0b\u79c1\u6709<\/strong>\u3002\u672c\u5730\u65b9\u6cd5\u6808\u4e0e\u865a\u62df\u673a\u6808\u53d1\u6325\u7684\u4f5c\u7528\u662f\u975e\u5e38\u76f8\u4f3c\u7684\uff0c\u533a\u522b\u5728\u4e8eJava\u865a\u62df\u673a\u6808\u662f\u4e3aJava\u65b9\u6cd5\uff08\u4e5f\u5c31\u662f\u5b57\u8282\u7801\uff09\u670d\u52a1\u7684\uff0c\u800c\u672c\u5730\u65b9\u6cd5\u6808\u662f\u4e3a\u865a\u62df\u673a\u4f7f\u7528\u5230\u7684native\u65b9\u6cd5\u670d\u52a1\u7684<\/span><\/p> \n

\u4e24\u79cd\u5f02\u5e38\u4e5f\u4e0eJava\u865a\u62df\u673a\u6808\u76f8\u540c\uff1aStackOverflowError\u3001OutOfMemoryError<\/span><\/p> \n <\/blockquote> \n

 1.4 Java\u5806<\/span><\/p> \n

\n

\u5bf9\u4e8e\u5927\u591a\u6570\u5e94\u7528\u6765\u8bf4\uff0cJava\u5806\u662f\u865a\u62df\u673a\u6240\u7ba1\u7406\u7684\u5185\u5b58\u533a\u57df\u4e2d\u6700\u5927\u7684\u4e00\u5757\uff0cJava\u5806\u662f\u88ab\u6240\u6709\u7ebf\u7a0b\u5171\u4eab<\/strong>\u7684\u4e00\u5757\u5185\u5b58\u533a\u57df<\/span><\/p> \n

\u552f\u4e00\u76ee\u7684\u5c31\u662f\u5b58\u653e\u5bf9\u8c61\u5b9e\u4f8b\uff0c\u6240\u6709\u7684\u5bf9\u8c61\u5b9e\u529b\u4e0e\u6570\u7ec4\u90fd\u5728\u5806\u4e0a\u5206\u914d<\/span><\/p> \n

Java\u5806\u662f\u5783\u573e\u56de\u6536\u5668\u7ba1\u7406\u7684\u4e3b\u8981\u5185\u5b58\u533a\u57df\uff0c\u56e0\u6b64 \u5f88\u591a\u65f6\u5019\u4e5f\u88ab\u79f0\u4f5c\u201cGC\u5806\u201d<\/span><\/p> \n

Java\u5806\u53ef\u4ee5\u5904\u4e8e\u7269\u7406\u4e0a\u4e0d\u8fde\u7eed\u7684\u5185\u5b58\u7a7a\u95f4\u4e2d\uff0c\u53ea\u8981\u903b\u8f91\u4e0a\u8fde\u7eed\u5373\u53ef<\/span><\/p> \n

\u5982\u679c\u5806\u5185\u5b58\u4e2d\u6ca1\u6709\u5185\u5b58\u5b8c\u6210\u5b9e\u4f8b\u5206\u914d\uff0c\u5e76\u4e14\u5806\u4e5f\u65e0\u6cd5\u5728\u6269\u5c55\u65f6\uff0c\u5c31\u4f1a\u629b\u51faOutOfMemoryError\u5f02\u5e38<\/span><\/p> \n <\/blockquote> \n

 1.5 \u65b9\u6cd5\u533a<\/span><\/p> \n

\n

\u662f\u6240\u6709\u7ebf\u7a0b\u5171\u4eab<\/strong>\u7684\uff0c\u5b58\u50a8\u7c7b\u4fe1\u606f\u3001\u5e38\u91cf\u3001\u9759\u6001\u53d8\u91cf\u548c\u53ca\u65f6\u7f16\u8bd1\u5668\u7f16\u8bd1\u540e\u7684\u4ee3\u7801\u7b49\u6570\u636e<\/span><\/p> \n

\u6839\u636eJava\u89c4\u8303\u89c4\u5b9a\uff0c\u5f53\u65b9\u6cd5\u533a\u65e0\u6cd5\u6ee1\u8db3\u5185\u5b58\u7684\u5206\u914d\u9700\u6c42\u662f\uff0c\u5c06\u4f1a\u629b\u51faOutOfMemoryError\u5f02\u5e38<\/span><\/p> \n <\/blockquote> \n

 1.6  \u8fd0\u884c\u65f6\u5e38\u91cf\u6c60<\/span><\/p> \n

\n

\u8fd0\u884c\u65f6\u5e38\u91cf\u6c60\u662f\u65b9\u6cd5\u533a\u7684\u4e00\u90e8\u5206\uff0c\u5b58\u653e\u7f16\u8bd1\u671f\u95f4\u751f\u6210\u7684\u5404\u79cd\u5b57\u9762\u91cf\u548c\u7b26\u53f7\u5f15\u7528\uff0c\u8fd9\u90e8\u5206\u5c06\u5728\u7c7b\u52a0\u8f7d\u540e\u8fdb\u5165\u65b9\u6cd5\u533a\u7684\u8fd0\u884c\u65f6\u5e38\u91cf\u6c60\u5b58\u653e<\/span><\/p> \n

\u5f53\u5e38\u91cf\u6c60\u65e0\u6cd5\u5728\u7533\u8bf7\u5230\u5185\u5b58\u662f\uff0c\u5c06\u4f1a\u629b\u51faOutOfMemoryError\u5f02\u5e38<\/span><\/p> \n <\/blockquote> \n

  1.7 \u76f4\u63a5\u5185\u5b58<\/span><\/p> \n

\n

 <\/p> \n

\u5728 JDK 1.4 \u4e2d\u65b0\u52a0\u5165 NIO (New Input\/Output) \u7c7b\uff0c\u5f15\u5165\u4e86\u4e00\u79cd\u57fa\u4e8e\u901a\u9053(Channel)\u548c\u7f13\u5b58(Buffer)\u7684 I\/O \u65b9\u5f0f\uff0c\u5b83\u53ef\u4ee5\u4f7f\u7528 Native \u51fd\u6570\u5e93\u76f4\u63a5\u5206\u914d\u5806\u5916\u5185\u5b58\uff0c\u7136\u540e\u901a\u8fc7\u4e00\u4e2a\u5b58\u50a8\u5728 Java \u5806\u4e2d\u7684 DirectByteBuffer \u5bf9\u8c61\u4f5c\u4e3a\u8fd9\u5757\u5185\u5b58\u7684\u5f15\u7528\u8fdb\u884c\u64cd\u4f5c\u3002\u53ef\u4ee5\u907f\u514d\u5728 Java \u5806\u548c Native \u5806\u4e2d\u6765\u56de\u7684\u6570\u636e\u8017\u65f6\u64cd\u4f5c\u3002<\/span>
\u4f1a\u53d7\u5230\u672c\u673a\u5185\u5b58\u9650\u5236\uff0c\u5982\u679c\u5185\u5b58\u533a\u57df\u603b\u548c\u5927\u4e8e\u7269\u7406\u5185\u5b58\u9650\u5236\u4ece\u800c\u5bfc\u81f4\u52a8\u6001\u6269\u5c55\u65f6\uff0c\u5c06\u4f1a\u629b\u51faOutOfMemoryError\u5f02\u5e38<\/span><\/p> \n

 <\/p> \n <\/blockquote> \n

 <\/span><\/p> \n

 <\/p> \n<\/div>","orderid":"0","title":"JVM\u5b66\u4e60\uff08\u4e00\uff09Java\u865a\u62df\u673a\u8fd0\u884c\u65f6\u6570\u636e\u533a\u57df","smalltitle":"","mid":"0","fname":"JAVA","special_id":"0","bak_id":"0","info":"0","hits":"37","pages":"1","comments":"0","posttime":"2019-09-19 11:11:56","list":"1568862716","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"https:\/\/www.cppentry.com\/upload_files\/","ispic":"0","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"JVM<\/A> \u5b66\u4e60<\/A> Java<\/A> \u865a\u62df<\/A> \u884c\u65f6<\/A> \u6570\u636e<\/A> \u533a\u57df<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"14.17.22.32","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"JVM\u5b66\u4e60\uff08\u4e00\uff09Java\u865a\u62df\u673a\u8fd0\u884c\u65f6\u6570\u636e\u533a\u57df","lastview":"1711628539","digg_num":"0","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}