当前位置: 首页 > news >正文

System类

System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。

         由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。

         1、成员变量

System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。

                   例如:

                            System.out.println(“Test”);

该行代码的作用是将字符串”Test”输出到系统的标准输出设备上,也就是显示在屏幕上。

后续在学习完IO相关的知识以后,可以使用System类中的成员方法改变标准输入流等对应的设备,例如可以将标准输出流输出的信息输出到文件内部,从而形成日志文件等。

         2、成员方法

                   System类中提供了一些系统级的操作方法,这些方法实现的功能分别如下:

                   a、arraycopy方法

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

该方法的作用是数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native方法,所以性能上比使用循环高效。

使用示例:

         int[] a = {1,2,3,4};

         int[] b = new int[5];

         System.arraycopy(a,1,b,3,2);

该代码的作用是将数组a中,从下标为1开始,复制到数组b从下标3开始的位置,总共复制2个。也就是将a[1]复制给b[3],将a[2]复制给b[4],这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成{0,0,0,2,3}。

                   b、currentTimeMillis方法

                            public static long currentTimeMillis()

该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。例如:

         long l = System. currentTimeMillis();

则获得的将是一个长整型的数字,该数字就是以差值表达的当前时间。

使用该方法获得的时间不够直观,但是却很方便时间的计算。例如,计算程序运行需要的时间则可以使用如下的代码:

         long start = System. currentTimeMillis();

         for(int i = 0;i < 100000000;i++){

                   int a = 0;

         }

         long end = System. currentTimeMillis();

         long  time = end – start;

则这里变量time的值就代表该代码中间的for循环执行需要的毫秒数,使用这种方式可以测试不同算法的程序的执行效率高低,也可以用于后期线程控制时的精确延时实现。

                   c、exit方法

                            public static void exit(int status)

该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。

                   d、gc方法

                            public static void gc()

该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。

                   e、getProperty方法

                            public static String getProperty(String key)

该方法的作用是获得系统中属性名为key的属性对应的值。系统中常见的属性名以及属性的作用如下表所示。

属性名列表

属性名

属性说明

java.version

Java 运行时环境版本

java.home

Java 安装目录

os.name

操作系统的名称

os.version

操作系统的版本

user.name

用户的账户名称

user.home

用户的主目录

user.dir

用户的当前工作目录

                            例如:

                                     String osName = System.getProperty(“os.name”);

                                     String user = System.getProperty(“user.name”);

                                     System.out.println(“当前操作系统是:” + osName);

                                     System.out.println(“当前用户是:” + user);

                            使用该方法可以获得很多系统级的参数以及对应的值。

转载于:https://www.cnblogs.com/thiaoqueen/p/6547711.html

相关文章:

  • PyOdps 0.4版本发布,从一个故事说起
  • 电话面试总结
  • link visited hover actived顺序
  • Log4Net 在ASP.NET WebForm 和 MVC的全局配置
  • 也谈谈Unity的transform使用
  • 多个文本框录入,使用回车键替找Tab键
  • debian8 更新系统内核
  • 查询SQL存储过程创建时间
  • 利用反射——查看类的成员
  • 【码云周刊第 12 期】走过微软20年,埋头并发编程15年,如何减少代码的认知负荷?...
  • 直方图、基数、选择性、群集因子
  • Codeforces 771C:Bear and Tree Jumps
  • 胡适:一个最低限度的国学书目
  • 网站功能小Demo——图片文件上传
  • Linux常用命令汇总
  • 【附node操作实例】redis简明入门系列—字符串类型
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • GitUp, 你不可错过的秀外慧中的git工具
  • JAVA之继承和多态
  • JS基础之数据类型、对象、原型、原型链、继承
  • PAT A1050
  • Spring Cloud中负载均衡器概览
  • springMvc学习笔记(2)
  • STAR法则
  • windows下使用nginx调试简介
  • 从tcpdump抓包看TCP/IP协议
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 项目实战-Api的解决方案
  • 小而合理的前端理论:rscss和rsjs
  • Java总结 - String - 这篇请使劲喷我
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (2022 CVPR) Unbiased Teacher v2
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (接口自动化)Python3操作MySQL数据库
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .FileZilla的使用和主动模式被动模式介绍
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET6 命令行启动及发布单个Exe文件
  • .Net的DataSet直接与SQL2005交互
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET轻量级ORM组件Dapper葵花宝典
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET文档生成工具ADB使用图文教程
  • @AutoConfigurationPackage的使用
  • @Bean, @Component, @Configuration简析
  • @WebService和@WebMethod注解的用法
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ SNOI 2013 ] Quare
  • [android] 切换界面的通用处理
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn