日韩性视频-久久久蜜桃-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类的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产欧美精品一区二区色综合朱莉 | 精品久久久久久久久久久国产字幕 | 黄色免费视频网站 | 2021国产精品视频 | 精品无码久久久久久国产 | 无码人妻一区二区三区精品视频 | 日本一区二区精品视频 | 日韩色道 | 国产av一区二区不卡 | 亚洲熟女乱综合一区二区三区 | 夜夜综合网 | 亚洲一级中文字幕 | 青青国产在线视频 | 国产精品伦一区 | 天天躁日日躁aaaxxⅹ | 无码一区二区三区免费 | 日本一本在线观看 | 国产精品自产拍在线观看 | 国产麻豆精品一区二区 | 免费av入口 | 欧美另类精品 | 人人妻人人澡人人爽欧美一区 | 日本精品视频网站 | 欧美成人免费在线观看 | 中文字幕人妻一区二区三区在线视频 | 亚洲色图40p | 91网在线看 | 日韩资源在线观看 | 欧美色图13p | 亚洲最大成人在线 | 男女激情啪啪 | 成人羞羞在线观看网站 | 四虎影院污 | 欧美成人综合一区 | 极品探花在线 | 免费色视频 | 秘密基地电影免费版观看国语 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 精品在线播放视频 | 欧美天天射 | 久久77 | 91九色视频 | 草草在线视频 | 美女三级网站 | 免费看av毛片 | 国产精品一区无码 | 国产成人在线播放视频 | 青青偷拍视频 | 亚洲欧美日韩国产一区二区三区 | 人人妻人人澡人人爽欧美一区双 | 伊人网伊人网 | 手机免费av| 天天搞夜夜爽 | 99视频久久| 国产成人无遮挡在线视频 | av影视天堂| 欧美成人免费高清视频 | 国产毛片高清 | 69精品久久 | 三级三级久久三级久久18 | 在线成人一区二区 | 亚洲午夜久久久 | 亚洲色图自拍 | 免费一级suv好看的国产网站 | www.com亚洲 | 国产成年无码久久久久毛片 | 久久久久三级 | 亚洲欧洲激情 | 亚洲精品.www | 国产videos | 亚洲伦理一区二区 | 国产欧美一区二区精品忘忧草 | 国产精品白丝喷水在线观看 | 亚洲最大av | 国产一区视频观看 | 草逼网站 | 免费无码一区二区三区 | 欧美综合在线一区 | 2023av在线| 中文在线资源天堂 | 欧美七区 | 亚洲AV蜜桃永久无码精品性色 | 国产又猛又黄又爽 | 日本理论片在线 | 国产亚洲精品精品精品 | 免费精品视频一区二区三区 | 亚洲av无码乱码国产精品 | 色综合天天综合网天天狠天天 | 欧美 日韩 国产 成人 在线 91 | 欧美xxxx性 | av电影在线观看不卡 | 中文字幕 日本 | 久久爱99| 丰满熟妇乱又伦 | 欧美视频在线不卡 | 强辱丰满人妻hd中文字幕 | 男女av| 免费观看亚洲 | 黄色网址链接 |