Java-API简析_java.lang.Runtime类(基于 Latest JDK)(浅析源码)

news2024/11/24 18:45:41

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/131714695
出自【进步*于辰的博客】

因为我发现目前,我对Java-API的学习意识比较薄弱,需要慢慢习惯使用Java-API,乃至剖析源码来提升自己的源码阅读能力和编码素质。
大家如果需要Java-API文档,我上传了【https://download.csdn.net/download/m0_69908381/87691693】。

注:
源博文1:Java-API简析_java.lang.Process类(基于 Latest JDK)(浅析源码);
源博文2:Java-API简析_java.lang.ProcessBuilder类(基于 Latest JDK)(浅析源码)。

文章目录

  • 1、概述
  • 2、方法摘要
    • 2.1 void addShutdownHook(Thread hook)
    • 2.2 int availableProcessors()
    • 2.3 Process exec(String command)
    • 2.4 Process exec(String[] cmdarray)
    • 2.5 Process exec(String[] cmdarray, String[] envp)
    • 2.6 Process exec(String[] cmdarray, String[] envp, File dir)
    • 2.7 Process exec(String command, String[] envp)
    • 2.8 Process exec(String command, String[] envp, File dir)
    • 2.9 void exit(int status)
    • 2.10 long freeMemory()
    • 2.11 void gc()
    • 2.12 InputStream getLocalizedInputStream(InputStream in)
    • 2.13 OutputStream getLocalizedOutputStream(OutputStream out)
    • 2.14 static Runtime getRuntime()
    • 2.15 void halt(int status)
    • 2.16 void load(String filename)
    • 2.17 void loadLibrary(String libname)
    • 2.18 long maxMemory()
    • 2.19 boolean removeShutdownHook(Thread hook)
    • 2.20 void runFinalization()
    • 2.21 static void runFinalizersOnExit(boolean value)
    • 2.22 long totalMemory()
    • 2.23 void traceInstructions(boolean on)
    • 2.24 void traceMethodCalls(boolean on)

1、概述

public class Runtime extends Object

每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime() 方法获取当前运行时。

应用程序不能创建自己的 Runtime 类实例。

从以下版本开始:
JDK1.0
另请参见:
getRuntime()

2、方法摘要

2.1 void addShutdownHook(Thread hook)

注册新的虚拟机来关闭挂钩。

2.2 int availableProcessors()

向 Java 虚拟机返回可用处理器的数目。
说明:
看源码。
在这里插入图片描述

注译:
返回Java虚拟机可用的处理器数。
该值可能在虚拟机的特定调用期间更改。因此,对可用处理器数量敏感的应用程序应该偶尔轮询此属性并适当调整其资源使用情况。

2.3 Process exec(String command)

在单独的进程中执行指定的字符串命令。
说明:
先看源码。
在这里插入图片描述
底层调用第8项。

2.4 Process exec(String[] cmdarray)

在单独的进程中执行指定命令和变量。

2.5 Process exec(String[] cmdarray, String[] envp)

在指定环境的独立进程中执行指定命令和变量。

2.6 Process exec(String[] cmdarray, String[] envp, File dir)

在指定环境和工作目录的独立进程中执行指定的命令和变量。
说明:
先看源码。
在这里插入图片描述
关于ProcessBuilder类这4个方法,分别见源博文2的第2.1、4.1、3.5、3.9项。

此方法逻辑:命令数组cmdarray构造 ProcessBuilder 实例;先使用环境变量数组envp设置运行环境;再将工作目录设置为目录dir;最后调用start(),使用此进程生成器的属性启动一个新进程。

2.7 Process exec(String command, String[] envp)

在指定环境的单独进程中执行指定的字符串命令。

2.8 Process exec(String command, String[] envp, File dir)

在有指定环境和工作目录的独立进程中执行指定的字符串命令。
说明:
先看源码。
在这里插入图片描述
关于new StringTokenizer()countTokens(),分别见StringTokenizer类的第2.1、3.1项;关于exec(),见第6项。

2.9 void exit(int status)

通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。

2.10 long freeMemory()

返回 Java 虚拟机中的空闲内存量。

2.11 void gc()

运行垃圾回收器。

2.12 InputStream getLocalizedInputStream(InputStream in)

已过时。 从 JDK 1.1 开始,将本地编码字节流转换为 Unicode 字符流的首选方法是使用 InputStreamReader 和 BufferedReader 类。

2.13 OutputStream getLocalizedOutputStream(OutputStream out)

已过时。 从 JDK 1.1 开始,将 Unicode 字符流转换为本地编码字节流的首选方法是使用 OutputStreamWriter、BufferedWriter 和 PrintWriter 类。

2.14 static Runtime getRuntime()

返回与当前 Java 应用程序相关的运行时对象。

2.15 void halt(int status)

强行终止目前正在运行的 Java 虚拟机。

2.16 void load(String filename)

加载作为动态库的指定文件名。

2.17 void loadLibrary(String libname)

加载具有指定库名的动态库。

2.18 long maxMemory()

返回 Java 虚拟机试图使用的最大内存量。

2.19 boolean removeShutdownHook(Thread hook)

取消注册某个先前已注册的虚拟机关闭挂钩。

2.20 void runFinalization()

运行挂起 finalization 的所有对象的终止方法。

2.21 static void runFinalizersOnExit(boolean value)

已过时。 此方法本身具有不安全性。它可能对正在使用的对象调用终结方法,而其他线程正在操作这些对象,从而导致不正确的行为或死锁。

2.22 long totalMemory()

返回 Java 虚拟机中的内存总量。

2.23 void traceInstructions(boolean on)

启用/禁用指令跟踪。

2.24 void traceMethodCalls(boolean on)

启用/禁用方法调用跟踪。


本文持续更新中。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GESP】2023年06月图形化四级 -- 按身高排序

按身高排序 【题目描述】 默认小猫角色和白色背景。有两个列表,第一个列表“names”存储名字,第二个列表“heights”存储这组名字对应的身高,这些身高由互不相同的正整数组成。 请按身高由大到小排序,同时能够得到对应名字的列表“names”。 例如: 名字列表:names = …

变压器试验交流耐压

试验目的 交流耐压试验是鉴定电力设备绝缘强度最有效和最直接的方法。 电力设备在运行中, 绝缘长期受着电场、 温度和机械振动的作用会逐渐发生劣化, 其中包括整体劣化和部分劣化,形成缺陷, 例如由于局部地方电场比较集中或者局部…

unity 调用C++ dll 操作升级套娃函数调用

之前一直以为C生成dll,在unity中调用时要把传出去的值设置在主函数中,以参数或反回值的形式。 当然在DLL工程中可以说没有主函数,那个可以运行一个函数,其会调用其他函数从而一直调其他相关函数。 那问题是在层级是二或三------…

Android CoroutineScope Dispatchers.Main主线程delay,kotlin

Android CoroutineScope Dispatchers.Main主线程delay,kotlin import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.View import android.view.View.OnClickListener import android.widget.Bu…

【sgWaterfall】Vue实现图文瀑布流布局模式,图片预加载显示占位区域阴影,加载完成后向上浮动动画出现,支持不同浏览器尺寸宽度下自适应显示列数

特性: 自动计算每个图片最佳坐标位置,以达到最新加在图片占据位置尽量让整体更加协调图片预加载显示占位区域阴影加载完成后向上浮动动画出现支持不同浏览器尺寸宽度下自适应显示列数 Vue实现图文瀑布流布局模式,图片预加载显示占位区域阴影&…

SQL语法与数据库快速入门(2)

目录: 多表简介SQL 约束-外键约束多表关系简介多表查询多表查询-内连接查询多表查询-外连接查询子查询简介子查询实战数据库进阶redis 内存数据库mongodb nosql 数据库neo4j 图数据库 1.多表简介 多表及使用场景介绍: 多表顾名思义就是在数据库设计中…

【NacosSync】注册中心同步组件使用教程ZooKeeper迁移到Nacos

目录 介绍系统模块架构获取安装包数据库配置启动服务器控制台添加注册中心集群信息添加同步任务注意事项 介绍 NacosSync是一个支持多种注册中心的同步组件,基于Spring boot开发框架,数据层采用Spring Data JPA,遵循了标准的JPA访问规范,支持多种数据源存储,默认使用Hibernate…

【论文阅读】《Distilling the Knowledge in a Neural Network》

【论文阅读】《Distilling the Knowledge in a Neural Network》 推荐指数: 1. 动机 (1)虽然一个ensemble的模型可以提升模型的效果,但是在效率方面实在难以接受,尤其是在每个模型都是一个大型的网络模型的时候。 &…

《TCP IP网络编程》第五章

第5章 基于 TCP 的服务端/客户端(2) 5.1 回声客户端的完美实现 先回顾一下服务器端的 I/O 相关代码: //持续接收客户端发送的数据,并将数据原样发送回客户端,直到客户端关闭连接。 while ((str_len read(clnt_sock,…

CMS垃圾收集器三色标记-JVM(十二)

上篇文章说了CMS垃圾收集器是赋值清除,所以他不可以碎片整理,于是jvm支持两个参数,几次fullGC之后碎片整理压缩空间。Cms他会抢占cpu资源,因为是并行运行,所以会有浮动垃圾。还有执行不确定性,垃圾收集完&a…

Python爬虫学习笔记(三)————urllib

目录 1.使用urllib来获取百度首页的源码 2.下载网页图片视频 3.总结-1 4.请求对象的定制(解决第一种反爬) 5.编解码 (1)get请求方式:urllib.parse.quote() (2)get请求…

深度学习——RNN解决回归问题

详细代码与注释 import torch from torch import nn import numpy as np import matplotlib.pyplot as plt# 有利于复现代码 # torch.manual_seed(1) # reproducible# Hyper Parameters TIME_STEP 10 # rnn time step # 输入sin函数的y值,所以输入尺寸为1 INP…

posix ipc之消息队列

note 1.mq_open函数的参数pathname应以/开始&#xff0c;且最多一个/ 2.mq_receive的参数msg_len应大于等于attr.msgsize 3.消息队列写方写时不要求读方就绪&#xff0c;读方读时不要求写方就绪(和管道不同) code #include <fcntl.h> #include <sys/stat.h> #…

汽车销售数据可视化分析实战

1、任务 市场需求&#xff1a;各年度汽车总销量及环比&#xff0c;各车类、级别车辆销量及环比 消费能力/价位认知&#xff1a;车辆销售规模及环比、不同价位车销量及环比 企业/品牌竞争&#xff1a;各车系、厂商、品牌车销量及环比&#xff0c;市占率及变化趋势 热销车型&…

x86架构ubuntu22下运行SFC模拟器zsnet

0. 环境 ubuntu22 1. apt安装 sudo apt install zsnes 2. 运行 zsnet 参考&#xff1a;在Ubuntu上用zsnes玩SFC游戏&#xff0c;https://blog.csdn.net/gqwang2005/article/details/3877121

MyBatis学习笔记之首次开发及文件配置

文章目录 MyBatis概述框架特点 有关resources目录开发步骤从XML中构建SqlSessionFactoryMyBatis中有两个主要的配置文件编写MyBatis程序关于第一个程序的小细节MyBatis的事务管理机制JDBCMANAGED 编写一个较为完整的mybatisjunit测试mybatis集成日志组件 MyBatis概述 框架 在…

win11 系统暂无可用音频设备导致播放失败/音频服务未响应

win11 系统暂无可用音频设备导致播放失败/音频服务未响应 win11再一次更新后音频突然用不了了&#xff0c;驱动和输出设备都显示正常&#xff0c;但每次播放就会出现下面的问题&#xff0c;重启和更新驱动也没用。最后百度了好久终于解决了。 最后发现可能是新的驱动和电脑不兼…

【C++11】function包装器的简单使用

function 1 function包装器使用场景2 包装器3 包装成员函数4 一道例题5 包装器的意义 1 function包装器使用场景 现在有代码如下&#xff1a; 要求声明出这两个函数的类型 int f(int a,int b) {return a b; } struct Functor {int operator(int a,int b){return a b;} }可以…

(atan2)+(最小回文字符统计)

C - Nearest vectors long double eps1e-18 atan2:x正轴旋转的弧度角&#xff0c;y>0为正&#xff0c;y<0为负const long double PIacos(-1.0); const long double eps1e-18; struct node {ll id;long double x,y,z; }t[NN]; bool cmp1(node l,node r) {return l.zep…

布隆过滤器在海量数据去重验证中应用

布隆过滤器在海量数据去重验证中应用 文章目录 布隆过滤器在海量数据去重验证中应用引子面试结束级方案——从数据库中取新手级方案——利用redis的set数据结构专业级方案——利用布隆过滤器 布隆过滤器基本概念优点缺点布隆过滤器的数据结构布隆过滤器的工作流程布隆过滤器的优…