全网整合营销服务商

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

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


相关文章: 高性能网站服务器部署指南:稳定运行与安全配置优化方案  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  表情包在线制作网站免费,表情包怎么弄?  如何高效配置IIS服务器搭建网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  网站制作软件有哪些,制图软件有哪些?  如何快速搭建高效WAP手机网站吸引移动用户?  php json中文编码为null的解决办法  如何在建站之星绑定自定义域名?  建站之星如何修改网站生成路径?  网站网页制作专业公司,怎样制作自己的网页?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  北京制作网站的公司,北京铁路集团官方网站?  小型网站制作HTML,*游戏网站怎么搭建?  学校为何禁止电信移动建设网站?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何快速建站并高效导出源代码?  ppt制作免费网站有哪些,ppt模板免费下载网站?  太原网站制作公司有哪些,网约车营运证查询官网?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  已有域名如何免费搭建网站?  如何在局域网内绑定自建网站域名?  如何配置支付宝与微信支付功能?  建站为何优先选择香港服务器?  如何挑选高效建站主机与优质域名?  如何在云服务器上快速搭建个人网站?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  建站主机选哪家性价比最高?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  建站之星北京办公室:智能建站系统与小程序生成方案解析  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  微信推文制作网站有哪些,怎么做微信推文,急?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  如何在建站之星网店版论坛获取技术支持?  定制建站策划方案_专业建站与网站建设方案一站式指南  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  电脑免费海报制作网站推荐,招聘海报哪个网站多?  制作网站的模板软件,网站怎么建设?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  全景视频制作网站有哪些,全景图怎么做成网页?  免费视频制作网站,更新又快又好的免费电影网站?  如何在宝塔面板创建新站点?  教学网站制作软件,学习*后期制作的网站有哪些?  建站主机服务器选型指南与性能优化方案解析  宝塔建站后网页无法访问如何解决?  如何快速搭建个人网站并优化SEO?  建站主机选择指南:服务器配置与SEO优化实战技巧 

您的项目需求

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