全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java System类详解_动力节点Java学院整理

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类两个常用方法代码实例  # 加载  # 小编  # 流管  # 自己的  # 组中  # 是一个  # 在这里  # 在此  # 果然如此  # 半天  # 给大家  # 仅仅是  # 不做  # 可以看出  # 这几个  # 这是个  # 我们必须  # 改了  # 来完成  # 所述 


相关文章: 广东专业制作网站有哪些,广东省能源集团有限公司官网?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何通过网站建站时间优化SEO与用户体验?  油猴 教程,油猴搜脚本为什么会网页无法显示?  建站上传速度慢?如何优化加速网站加载效率?  ,有什么在线背英语单词效率比较高的网站?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  如何通过万网虚拟主机快速搭建网站?  如何用IIS7快速搭建并优化网站站点?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  建站之星各版本价格是多少?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  ,sp开头的版面叫什么?  广州营销型建站服务商推荐:技术优势与SEO优化解析  建站之星安装后如何自定义网站颜色与字体?  定制建站流程解析:需求评估与SEO优化功能开发指南  Python文件管理规范_工程实践说明【指导】  建站之星IIS配置教程:代码生成技巧与站点搭建指南  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  用v-html解决Vue.js渲染中html标签不被解析的问题  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  c# await 一个已经完成的Task会发生什么  建站之星收费标准详解:套餐费用及年费价格表一览  建站之星后台管理系统如何操作?  常州企业建站如何选择最佳模板?  建站VPS配置与SEO优化指南:关键词排名提升策略  简单实现Android验证码  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  如何在IIS中配置站点IP、端口及主机头?  已有域名和空间如何快速搭建网站?  建站主机选虚拟主机还是云服务器更好?  如何通过二级域名建站提升品牌影响力?  建站VPS能否同时实现高效与安全翻墙?  如何打造高效商业网站?建站目的决定转化率  制作国外网站的软件,国外有哪些比较优质的网站推荐?  名字制作网站免费,所有小说网站的名字?  如何选择香港主机高效搭建外贸独立站?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  独立制作一个网站多少钱,建立网站需要花多少钱?  实现虚拟支付需哪些建站技术支撑?  网站制作新手教程,新手建设一个网站需要注意些什么?  C#如何使用XPathNavigator高效查询XML  浅谈Javascript中的Label语句 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。