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

歡迎訪問 生活随笔!

生活随笔

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

java

美酒换咖啡用java编写_Java 配 Shell 等于美酒加咖啡

發布時間:2025/4/5 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 美酒换咖啡用java编写_Java 配 Shell 等于美酒加咖啡 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

化學中我們得知「氫氣加氧氣在點燃的情況下會生成水」。

生活中我們得知「良辰加美景的情況下會得到千金春宵一刻」。

技術上又何嘗不是如此呢?先假設一個場景:BOSS 讓你實現一個服務監控的指揮室,能看到每個服務器的磁盤剩余空間,能看到。。。能看到。。。

其實講真,實現思路有很多,但是不管黑貓白貓能抓住老鼠都是好貓,今天我們嘗試用 Java 與 Shell 搭配一下,看看是否會產生驚奇的反應。

1.

首先通過 JDK 源碼,品一品 Runtime 這杯美酒。

上圖是摘取 JDK 中 Runtime 的部分源碼,主要分成 4 大代碼段來粗略認識她。

第一塊代碼段,可以看出 Runtime 構造私有化,提供了靜態屬性,并提前創建對象實例,并提供獲取實例的靜態方法,這不就是單例設計模式的使用么,當有面試官再問設計模式,拿去狂噴。

第二塊代碼段,主要是 addShutdownHook() 方法,添加關閉的鉤子,說的直白點,其實允許研發人員插入一段在 JVM 關閉時執行的代碼。例如在搭建服務框架時,面對需要完成優雅停服,打掃戰場,釋放資源等等,諸如此類的場景下都很有用。其中在 Tomcat、Jetty 等容器中都可以看到 shutdownHook 的身影。

Runtime runtime = Runtime.getRuntime();

runtime.addShutdownHook(new Thread() {

@Override

public void run() {

System.out.println("打掃戰場,釋放資源,完成優雅停服");

}

});

System.out.println("服務啟動完成");

代碼運行效果如下。

服務啟動完成

打掃戰場,釋放資源,完成優雅停服

第三塊代碼段,主要展現 JDK 針對 Runtime 提供的系列 exec 重載方法,這個是本次分享的重點,重頭戲最后再說。

第四塊代碼段,主要是 Runtime 提供的一些獲取系統信息的 API,直接拋代碼,拿去用就行了。

Runtime runtime = Runtime.getRuntime();

System.out.println(String.format("JVM可用本機CPU內核數 %d", runtime.availableProcessors()));

//默認為系統的1/4

System.out.println(String.format("最大可用內存空間 %d M", runtime.maxMemory() / 1024 / 1024));

//默認為系統的1/64

System.out.println(String.format("可用內存空間 %d M", runtime.totalMemory() / 1024 / 1024));

System.out.println(String.format("空閑內存空間 %d M", runtime.freeMemory() / 1024 / 1024));

代碼運行輸出如下,其實真實環境中不妨用模板引擎 FreeMarker 渲染,然后通過郵件告警,實現的逼格高一些。

2.

在詳細說 Runtime.exec() 這個重頭戲之前,再品一品 df 這款咖啡。

Linux df 命令,用于顯示目前在系統上的磁盤使用情況統計,主要用于查看磁盤的分區,磁盤已使用的空間,剩余的空間。

命令如下:

df [選項]... [FILE]...

常用選項如下:

3.

Runtime 美酒加 Shell 咖啡會發生什么呢?

重頭戲開始,回到 Runtime 的源碼,我們看到 exec() 系列方法會幫我們啟動一個 Process 進程,那不妨把 df -h 命令傳入進去一探究竟。

public class Foo {

public static void main(String[] args) throws Exception {

//df命令用于查看磁盤的分區,磁盤已使用的空間,剩余的空間

//df -h以合適的單位來顯示信息

System.out.println(exec("df -h"));

}

private static String exec(String command) throws Exception {

String[] cmd = {"/bin/sh", "-c", command};

StringBuilder out = new StringBuilder();

BufferedReader reader = null;

InputStream in = null;

try {

Process process = Runtime.getRuntime().exec(cmd);

in = process.getInputStream();

reader = new BufferedReader(new InputStreamReader(in));

String line;

while ((line = reader.readLine()) != null) {

out.append(line + "n");

}

process.waitFor();

} finally {

if (reader != null) {

reader.close();

}

}

return out.toString();

}

}

代碼中會發現調用了 process 的 waitFor() 方法,此方法作用會導致當前線程等待,一直要等到由該 Process 對象表示的進程終止,其實也就是等待把 exec 里面啟動的 Process 中的所有事都干完(生產上出問題的大多出在這兒),代碼運行效果如下。

效果確實可以,那么這么一來,想監控統計什么功能,不妨直接把命令交給 Java 程序去執行即可。

4.

如果關注一猿小講的伙伴應該清楚,在《Runtime 與?ProcessBuilder 的主要區別是啥呢?

其實 Runtime.exec() 方法設計,可接受一個單獨的字符串,這個字符串是通過空格來分隔可執行命令程序和參數的;當然也可以接受字符串數組參數。

如上圖所示,ProcessBuilder 的方法入參是一個List或者多個字符串。

相同點是 ProcessBuilder.start() 和 Runtime.exec() 方法都被用來創建一個操作系統進程(執行命令行操作)。

5.

好了,幾分鐘的簡單分享,主要讓你接觸并真正認識一下 Runtime,希望能幫助你在工作中錦上添花。

最后依然用阿里新六脈神劍中的三脈送給大家:今天最好的表現是明天最低的要求;此時此刻非我莫屬;認真生活快樂工作!

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的美酒换咖啡用java编写_Java 配 Shell 等于美酒加咖啡的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久久精品视频在线 | 欧美怡红院视频一区二区三区 | 欧美黑人又粗又大的性格特点 | 国产伦精品一区二区三区四区 | 99热6这里只有精品 三级av在线免费观看 | 国产精久久一区二区三区 | 啪啪自拍 | 久久都是精品 | 男女视频一区 | 果冻传媒18禁免费视频 | 成人三级视频 | 欧美色成人 | 麻豆视频免费观看 | 欧美视频一 | 亚洲黄色一区二区 | 成人激情av | 国产最新精品视频 | 欧美日韩视频免费 | 国产夫妻在线 | 精品国产免费人成在线观看 | 无码人妻aⅴ一区二区三区玉蒲团 | 欧美a级成人淫片免费看 | 亚洲精品久 | 欧美精品亚洲精品日韩精品 | 韩国无码av片在线观看网站 | 一区二区日韩在线观看 | 人人人干 | 国产人妻aⅴ色偷 | 国产污视频网站 | xxx麻豆| 日本免费在线 | 国产男同gay网站 | 国产激情视频一区二区 | www.com久久| 国产在线中文字幕 | wwwav网站 | 国产精选在线 | 专干中国老太婆hd | 亚洲国产丝袜 | 免费一区二区三区视频在线 | 美女免费福利视频 | 欧美日韩成人一区二区 | 中国无码人妻丰满熟妇啪啪软件 | 一区视频 | 国产精品成人免费看片 | 久久国产综合 | 在线观看亚洲国产 | 天天射夜夜爽 | 色婷婷综合成人 | 国产精品wwww | 亚洲777 | 国产一区二区三区毛片 | 欧美91视频 | 韩国午夜影院 | 色吧视频 | 人妻丰满熟妇av无码区hd | 国产精品扒开腿做爽爽爽a片唱戏 | 中文字幕黄色片 | 日韩欧美片 | 欧美日韩一区二区视频在线观看 | 欧美黑粗硬| 一区二区三区黄色 | 国产一区高清 | 日本免费在线播放 | 亚洲最大黄色 | 欧美色鬼| 少妇精品久久久久久久久久 | 欧美人与性动交ccoo | 亚洲狼人综合 | a级在线观看网站 | 九九热这里只有精品6 | 国产 日韩 欧美 综合 | 手机在线一区 | 福利视频一二区 | 在线成人一区 | 国产精品久久久久久婷婷天堂 | 大奶一区 | 日韩一级片视频 | 夜色精品| 大粗鳮巴久久久久久久久 | 免费视频爱爱太爽 | 成人av动漫 | 欧美三级午夜理伦三级小说 | 上海毛片 | 国产精品电影 | 豆花视频成人 | 好av在线| 亚洲人人在线 | 波多野吉衣在线观看视频 | 在线看免费av | 久久精品国产精品亚洲色婷婷 | 中文字幕在线免费看线人 | 日韩激情小视频 | 男人天堂2021 | av动漫网站 | 欧美三级理论片 | 免费一区二区三区四区 | 性欧美日本| 99re这里 |