@OverWrite BlogJava

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            128 隨筆 :: 0 文章 :: 29 評論 :: 0 Trackbacks

          -Xms<size>

          設(shè)置虛擬機(jī)可用內(nèi)存堆的初始大小,缺省單位為字節(jié),該大小為1024的整數(shù)倍并且要大于1MB,可用k(K)m(M)為單位來設(shè)置較大的內(nèi)存數(shù)。初始堆大小為2MB

          例如:-Xms6400K-Xms256M



          -Xmx<size>

          設(shè)置虛擬機(jī)內(nèi)存堆的最大可用大小,缺省單位為字節(jié)。該值必須為1024整數(shù)倍,并且要大于2MB。可用k(K)m(M)為單位來設(shè)置較大的內(nèi)存數(shù)。缺省堆最大值為64MB

          例如:-Xmx81920K-Xmx80M

          當(dāng)應(yīng)用程序申請了大內(nèi)存運(yùn)行時(shí)虛擬機(jī)拋出java.lang.OutOfMemoryError: Java heap space錯(cuò)誤,就需要使用-Xmx設(shè)置較大的可用內(nèi)存堆。


          -Xss<size>

          設(shè)置線程棧的大小,缺省單位為字節(jié)。與-Xmx類似,也可用KM來設(shè)置較大的值。通常操作系統(tǒng)分配給線程棧的缺省大小為1MB

          另外也可在java中創(chuàng)建線程對象時(shí)設(shè)置棧的大小,構(gòu)造函數(shù)原型為Thread(ThreadGroup group, Runnable target, String name, long stackSize)


          -client-server

          這兩個(gè)參數(shù)用于設(shè)置虛擬機(jī)使用何種運(yùn)行模式,client模式啟動(dòng)比較快,但運(yùn)行時(shí)性能和內(nèi)存管理效率不如server模式,通常用于客戶端應(yīng)用程序。相反,server模式啟動(dòng)比client慢,但可獲得更高的運(yùn)行性能。

          windows上,缺省的虛擬機(jī)類型為client模式,如果要使用server模式,就需要在啟動(dòng)虛擬機(jī)時(shí)加-server參數(shù),以獲得更高性能,對服務(wù)器端應(yīng)用,推薦采用server模式,尤其是多個(gè)CPU的系統(tǒng)。在LinuxSolaris上缺省采用server模式。


          -classpath,-cp

          虛擬機(jī)在運(yùn)行一個(gè)類時(shí),需要將其裝入內(nèi)存,虛擬機(jī)搜索類的方式和順序如下:

          Bootstrap classesExtension classesUser classes

          Bootstrap 中的路徑是虛擬機(jī)自帶的jarzip文件,虛擬機(jī)首先搜索這些包文件,用System.getProperty("sun.boot.class.path")可得到虛擬機(jī)搜索的包名。


          Extension是位于jre\lib\ext目錄下的jar文件,虛擬機(jī)在搜索完Bootstrap后就搜索該目錄下的jar文件。用System. getProperty("java.ext.dirs”)可得到虛擬機(jī)使用Extension搜索路徑。

          User classes搜索順序?yàn)楫?dāng)前目錄、環(huán)境變量 CLASSPATH-classpath

          -classpath告知虛擬機(jī)搜索目錄名、jar文檔名、zip文檔名,之間用分號;分隔。

          例如當(dāng)你自己開發(fā)了公共類并包裝成一個(gè)common.jar包,在使用common.jar中的類時(shí),就需要用-classpath common.jar 告訴虛擬機(jī)從common.jar中查找該類,否則虛擬機(jī)就會拋出java.lang.NoClassDefFoundError異常,表明未找到類定義。

          在運(yùn)行時(shí)可用System.getProperty(“java.class.path”)得到虛擬機(jī)查找類的路徑。


          使用-classpath后虛擬機(jī)將不再使用CLASSPATH中的類搜索路徑,如果-classpathCLASSPATH都沒有設(shè)置,則虛擬機(jī)使用當(dāng)前路徑(.)作為類搜索路徑。


          推薦使用-classpath來定義虛擬機(jī)要搜索的類路徑,而不要使用環(huán)境變量CLASSPATH的搜索路徑,以減少多個(gè)項(xiàng)目同時(shí)使用CLASSPATH時(shí)存在的潛在沖突。例如應(yīng)用1要使用a1.0.jar中的類G,應(yīng)用2要使用a2.0.jar中的類G,a2.0.jara1.0.jar的升級包,當(dāng)a1.0.jara2.0.jar都在CLASSPATH中,虛擬機(jī)搜索到第一個(gè)包中的類G時(shí)就停止搜索,如果應(yīng)用1應(yīng)用2的虛擬機(jī)都從CLASSPATH中搜索,就會有一個(gè)應(yīng)用得不到正確版本的類G

          posted on 2008-03-05 16:39 vesung 閱讀(1674) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 田林县| 宝丰县| 邹城市| 武宁县| 科技| 静安区| 朔州市| 安塞县| 盐边县| 临安市| 平安县| 阿城市| 贺州市| 大英县| 西畴县| 伽师县| 大埔区| 廊坊市| 赤城县| 林西县| 平陆县| 金昌市| 章丘市| 建阳市| 大兴区| 托克托县| 邢台市| 同心县| 嘉禾县| 桦南县| 梓潼县| 天长市| 彰化县| 临沂市| 金昌市| 高邑县| 拜泉县| 庆元县| 邹平县| 新安县| 阳谷县|