System类是jdk提供的一个工具类,有final修饰,不可继承,由名字可以看出来,其中的操作多数和系统相关。其功能主要如下:

• 标准输入输出,如out、in、err
• 外部定义的属性和环境变量的访问,如getenv()/setenv()和getProperties()/setProperties()
• 加载文件和类库的方法,如load()和loadLibrary()、
• 一个快速拷贝数组的方法:arraycopy()
• 一些jvm操作,如gc()、runFinalization()、exit(),该部分并未在源码的java doc中提到,可能因为本身不建议主动调用吧。而且这几个方法都仅仅是Runtime.getRuntime()的调用,两者没有区别 下边直接看图,主要的方法和功能都已经列出来。
下边我们重点来该类是如何初始化的。 首先在开头我们就可以看如下代码:
private static native void registerNatives();
static {
registerNatives();
}
类中的静态代码块调用了一个native方法registerNatives(),可以猜到该方法应该是一个入口方法,看一*释:通过静态初始化注册native方法,该方法会令vm通过调用initializeSystemClass方法来完成初始化工作。果然如此,那么接下来我们看下initializeSystemClass方法吧:
private static void initializeSystemClass() {
// 初始化props
props = new Properties();
initProperties(props);
sun.misc.VM.saveAndRemoveProperties(props);
//获取系统相关的换行符
lineSeparator = props.getProperty("line.separator");
sun.misc.Version.init();
//分别创建in、out、err的实例对象,并通过setXX0()初始化,查看setXX0()方法可知,这是个native方法,将系统的标准流管理到类内的对象
FileInputStream fdIn = new FileInputStream(FileDescriptor.in);
FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);
FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err);
setIn0(new BufferedInputStream(fdIn));
setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true));
setErr0(new PrintStream(new BufferedOutputStream(fdErr, 128), true));
//加载zip包以获取java.util.zip.ZipFile这个类,以便之后加载利库使用
loadLibrary("zip");
// 设置平台相关的信号处理
Terminator.setup();
// 初始化sun.misc相关的环境变量
sun.misc.VM.initializeOSEnvironment();
// 主线程不会在同一个线程组中添加相同的线程,我们必须在这里自己实现。注释半天没弄明白,看代码就是主线程自己把自己加到了自己的线程组中......
Thread current = Thread.currentThread();
current.getThreadGroup().add(current);
// 注册共享秘钥?注释没看明白,该方法就是实例化一个JavaLangAccess
setJavaLangAccess();
// 子系统在初始化的时候可以调用sun.misc.VM.isBooted(),以保证在application类加载器启动前不做任何事。booted()其实就是改了个状态,使isBooted()变为true。
sun.misc.VM.booted();
}
以上所述是小编给大家介绍的Java System类详解_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# java
# system类
# Java System类用法实战案例
# Java Math类、Random类、System类及BigDecimal类用法示例
# 十分钟速懂java知识点 System类
# java system类使用方法示例 获取系统信息
# java基础(System.err和System.out)详解
# Java获取当前系统事件System.currentTimeMillis()方法
# Java System类两个常用方法代码实例
# 加载
# 小编
# 流管
# 自己的
# 组中
# 是一个
# 在这里
# 在此
# 果然如此
# 半天
# 给大家
# 仅仅是
# 不做
# 可以看出
# 这几个
# 这是个
# 我们必须
# 改了
# 来完成
# 所述
相关文章:
高性能网站服务器部署指南:稳定运行与安全配置优化方案
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
表情包在线制作网站免费,表情包怎么弄?
如何高效配置IIS服务器搭建网站?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
网站制作软件有哪些,制图软件有哪些?
如何快速搭建高效WAP手机网站吸引移动用户?
php json中文编码为null的解决办法
如何在建站之星绑定自定义域名?
建站之星如何修改网站生成路径?
网站网页制作专业公司,怎样制作自己的网页?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
北京制作网站的公司,北京铁路集团官方网站?
小型网站制作HTML,*游戏网站怎么搭建?
学校为何禁止电信移动建设网站?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何快速建站并高效导出源代码?
ppt制作免费网站有哪些,ppt模板免费下载网站?
太原网站制作公司有哪些,网约车营运证查询官网?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
已有域名如何免费搭建网站?
如何在局域网内绑定自建网站域名?
如何配置支付宝与微信支付功能?
建站为何优先选择香港服务器?
如何挑选高效建站主机与优质域名?
如何在云服务器上快速搭建个人网站?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
建站主机选哪家性价比最高?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
建站之星北京办公室:智能建站系统与小程序生成方案解析
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
微信推文制作网站有哪些,怎么做微信推文,急?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
如何在建站之星网店版论坛获取技术支持?
定制建站策划方案_专业建站与网站建设方案一站式指南
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
电脑免费海报制作网站推荐,招聘海报哪个网站多?
制作网站的模板软件,网站怎么建设?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
全景视频制作网站有哪些,全景图怎么做成网页?
免费视频制作网站,更新又快又好的免费电影网站?
如何在宝塔面板创建新站点?
教学网站制作软件,学习*后期制作的网站有哪些?
建站主机服务器选型指南与性能优化方案解析
宝塔建站后网页无法访问如何解决?
如何快速搭建个人网站并优化SEO?
建站主机选择指南:服务器配置与SEO优化实战技巧
*请认真填写需求信息,我们会在24小时内与您取得联系。