日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

浅析Java.lang.Runtime类

發布時間:2025/3/20 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅析Java.lang.Runtime类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概述
????? Runtime類封裝了運行時的環境。每個 Java 應用程序都有一個 Runtime 類實例,使應用程序能夠與其運行的環境相連接。
????? 一般不能實例化一個Runtime對象,應用程序也不能創建自己的 Runtime 類實例,但可以通過 getRuntime 方法獲取當前Runtime運行時對象的引用。
????? 一旦得到了一個當前的Runtime對象的引用,就可以調用Runtime對象的方法去控制Java虛擬機的狀態和行為。?
????? 當Applet和其他不被信任的代碼調用任何Runtime方法時,常常會引起SecurityException異常。

二、API預覽
??? addShutdownHook(Thread hook)?
????? 注冊新的虛擬機來關閉掛鉤。?
??? availableProcessors()?
????? 向 Java 虛擬機返回可用處理器的數目。?
??? exec(String command)?
????? 在單獨的進程中執行指定的字符串命令。?
??? exec(String[] cmdarray)?
????? 在單獨的進程中執行指定命令和變量。?
??? exec(String[] cmdarray, String[] envp)?
????? 在指定環境的獨立進程中執行指定命令和變量。?
??? exec(String[] cmdarray, String[] envp, File dir)?
????? 在指定環境和工作目錄的獨立進程中執行指定的命令和變量。?
??? exec(String command, String[] envp)?
????? 在指定環境的單獨進程中執行指定的字符串命令。?
??? exec(String command, String[] envp, File dir)?
????? 在有指定環境和工作目錄的獨立進程中執行指定的字符串命令。?
??? exit(int status)?
????? 通過啟動虛擬機的關閉序列,終止當前正在運行的 Java 虛擬機。?
??? freeMemory()?
????? 返回 Java 虛擬機中的空閑內存量。?
??? gc()?
????? 運行垃圾回收器。?
??? InputStream getLocalizedInputStream(InputStream in)?
????? 已過時。 從 JDK 1.1 開始,將本地編碼字節流轉換為 Unicode 字符流的首選方法是使用 InputStreamReader 和 BufferedReader 類。?
??? OutputStream getLocalizedOutputStream(OutputStream out)?
????? 已過時。 從 JDK 1.1 開始,將 Unicode 字符流轉換為本地編碼字節流的首選方法是使用 OutputStreamWriter、BufferedWriter 和 PrintWriter 類。?
??? getRuntime()?

? ? ?返回與當前 Java 應用程序相關的運行時對象。?
??? halt(int status)?
????? 強行終止目前正在運行的 Java 虛擬機。?
??? load(String filename)?
????? 加載作為動態庫的指定文件名。?
??? loadLibrary(String libname)?
????? 加載具有指定庫名的動態庫。?
??? maxMemory()?
????? 返回 Java 虛擬機試圖使用的最大內存量。?
??? removeShutdownHook(Thread hook)?
????? 取消注冊某個先前已注冊的虛擬機關閉掛鉤。?
??? runFinalization()?
????? 運行掛起 finalization 的所有對象的終止方法。?
??? runFinalizersOnExit(value)?
????? 已過時。 此方法本身具有不安全性。它可能對正在使用的對象調用終結方法,而其他線程正在操作這些對象,從而導致不正確的行為或死鎖。?
??? totalMemory()?
????? 返回 Java 虛擬機中的內存總量。?
??? traceInstructions(on)?
????? 啟用/禁用指令跟蹤。?
??? traceMethodCalls(on)?
????? 啟用/禁用方法調用跟蹤。

?

三、常見的應用 1、內存管理:
Java提供了無用單元自動收集機制。通過totalMemory()和freeMemory()方法可以知道對象的堆內存有多大,還剩多少。
Java會周期性的回收垃圾對象(未使用的對象),以便釋放內存空間。但是如果想先于收集器的下一次指定周期來收集廢棄的對象,可以通過調用gc()方法來根據需要運行無用單元收集器。一個很好的試驗方法是先調用gc()方法,然后調用freeMemory()方法來查看基本的內存使用情況,接著執行代碼,然后再次調用freeMemory()方法看看分配了多少內存。下面的程序演示了這個構想。
//此實例來自《java核心技術》卷一 class MemoryDemo{ public static void main(String args[]){ Runtime r = Runtime.getRuntime(); long mem1,mem2; Integer someints[] = new Integer[1000]; System.out.println("Total memory is :" + r.totalMemory()); mem1 = r.freeMemory(); System.out.println("Initial free is : " + mem1); r.gc(); mem1 = r.freeMemory(); System.out.println("Free memory after garbage collection : " + mem1); //allocate integers for(int i=0; i<1000; i++) someints[i] = new Integer(i); mem2 = r.freeMemory(); System.out.println("Free memory after allocation : " + mem2); System.out.println("Memory used by allocation : " +(mem1-mem2)); //discard Intergers for(int i=0; i<1000; i++) someints[i] = null; r.gc(); //request garbage collection mem2 = r.freeMemory(); System.out.println("Free memory after collecting " + "discarded integers : " + mem2); } }

編譯后運行結果如下(不同的機器不同時間運行的結果也不一定一樣):
Total memory is :2031616
Initial free is : 1818488
Free memory after garbage collection : 1888808
Free memory after allocation : 1872224
Memory used by allocation : 16584
Free memory after collecting discarded integers : 1888808

2、執行其他程序
在安全的環境中,可以在多任務操作系統中使用Java去執行其他特別大的進程(也就是程序)。ecec()方法有幾種形式命名想要運行的程序和它的輸入參數。ecec()方法返回一個Process對象,可以使用這個對象控制Java程序與新運行的進程進行交互。ecec()方法本質是依賴于環境。
下面的例子是使用ecec()方法啟動windows的記事本notepad。這個例子必須在Windows操作系統上運行。

//此實例來自《Java核心技術》卷一
class?ExecDemo {?
????????public?static?void?main(String args[]){?
????????????????Runtime r = Runtime.getRuntime();?
????????????????Process p =?null;?
????????????????try{?
????????????????????????p = r.exec("notepad");?
????????????????}?catch?(Exception e) {?
????????????????????????System.out.println("Error executing notepad.");?
????????????????}?
????????}?
} ecec()還有其他幾種形式,例子中演示的是最常用的一種。ecec()方法返回Process對象后,在新程序開始運行后就可以使用Process的方法了??梢杂胐estory()方法殺死子進程,也可以使用waitFor()方法等待程序直到子程序結束,exitValue()方法返回子進程結束時返回的值。如果沒有錯誤,將返回0,否則返回非0。下面是關于ecec()方法的例子的改進版本。例子被修改為等待,直到運行的進程退出:

//此實例來自《Java核心技術》卷一
class ExecDemoFini {
??? public static void main(String args[]){
??????? Runtime r = Runtime.getRuntime();
??????? Process p = null;
??????? try{
??????????? p = r.exec("notepad");
??????????? p.waitFor();
??????? } catch (Exception e) {
??????????? System.out.println("Error executing notepad.");
??????? }
??????? System.out.println("Notepad returned " + p.exitValue());
??? }
}
下面是運行的結果(當關閉記事本后,會接著運行程序,打印信息):
Notepad returned 0
請按任意鍵繼續. . .

當子進程正在運行時,可以對標準輸入輸出進行讀寫。getOutputStream()方法和getInPutStream()方法返回對子進程的標準輸入和輸出。
四、來自SUN公司的java.long.Runtime類的API文檔,網上有chm中文版的,很好找。為了查閱方便,我從SUN公司的JavaDoc站點上復制出來了Runtime類的API文檔。

?

轉載于:https://www.cnblogs.com/mistor/p/6129633.html

總結

以上是生活随笔為你收集整理的浅析Java.lang.Runtime类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人人狠狠综合久久亚洲 | 欧美日韩一区二区三区四区五区六区 | 欧美日韩国产大片 | 91在线看 | 老汉av | 91久久精品国产91久久性色tv | 99热在线免费观看 | 日韩在线国产精品 | 久久天堂电影 | 久久网址 | 亚洲午夜精品一区二区 | 久久婷婷国产 | 无码人妻精品中文字幕 | 午夜成人免费电影 | 国产精品美女久久久网av | 久久国产福利 | 香蕉视频在线免费播放 | 久久久永久久久人妻精品麻豆 | 成人一二三区 | 日韩不卡av在线 | 日韩欧美视频一区二区三区 | 女同一区二区 | 激情内射亚洲一区二区三区爱妻 | 中文字幕网站在线观看 | 爱久久| 亚洲视频日韩 | 国产乱码一区二区 | 国产精品国产三级国产aⅴ浪潮 | 亚洲第一视频在线播放 | 成人福利视频在线观看 | 国产精品一区二区免费视频 | 亚洲av永久无码国产精品久久 | 小视频在线免费观看 | 亚洲天堂av网 | 日韩人妻精品一区二区三区视频 | 一区三区视频 | 中文字幕 亚洲一区 | 欧美性生活精品 | 国产在线一级 | 操极品| 超碰成人免费电影 | 天天综合天天添夜夜添狠狠添 | 美国性生活大片 | 一区不卡在线观看 | 日本国产精品一区 | 成人av网站在线 | 亚洲免费观看视频 | 亚洲欧洲日产av | 久久不卡视频 | 色肉色伦交av色肉色伦 | 中国女人内精69xxxxxx | 国产毛片一区二区三区va在线 | 999免费视频 | 国产精品久久久99 | 枫可怜av| 亚洲激情综合 | 毛片a片免费观看 | 四季av中文字幕一区 | 久久黄色网络 | 午夜小视频在线播放 | 美女吞精视频 | 国产一区二区在线观看免费 | 欧美色香蕉 | 麻豆系列在线观看 | 伊人久久大香线蕉成人综合网 | 中文字幕国产日韩 | 欧美美女性生活视频 | 亚洲一区中文字幕在线观看 | 中出白浆 | 精国产人伦一区二区三区 | 99国产精品99久久久久久粉嫩 | 又色又爽又黄gif动态图 | 五月激情天 | 综合激情网 | 色av性av丰满av | 国产成人在线电影 | 天天干,天天操,天天射 | 制服丝袜在线播放 | 丰满雪白极品少妇流白浆 | 貂蝉被到爽流白浆在线观看 | 亲子乱aⅴ一区二区三区 | 精品一区二区久久久久久久网站 | 亚洲欧美天堂网 | www.在线看 | 人人草人人看 | 女人和拘做爰正片视频 | 女仆乖h调教跪趴1v1 | 久久九九热 | 国产亚洲区| av先锋影音 | 8x国产一区二区三区精品推荐 | 美女毛片在线 | 91丨porny丨中文| 人妻少妇偷人精品视频 | 日韩va| 亚洲精品动漫在线观看 | 日本三级网站在线观看 | 欧美粗暴jizz性欧美20 | 久草视频福利在线 |