Java ---System类

news2024/11/24 10:49:28
    System 类位于 java.lang 包,代表当前  Java 程序的运行平台,系统级的很多属性和控制方法都放置在该类的内部。由于该类的构造方法是 private 的,所以无法创建该类的对象,也就是无法实例化该类。

System 类提供了一些类变量和类方法,允许直接通过 System 类来调用这些类变量和类方法。 System 类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang
   由于该类的构造器是 private 的,所以无法创建该类的对象。其内部的成员变量和成员方法都是 static ,所以也可以很方便的进行调用。
  •  成员变量 Scanner scan = new Scanner(System.in);

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

1.PrintStream out

标准输出流。此流已打开并准备接收输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。

例如,编写一行输出数据的典型方式是:

   System.out.println(data);
其中,println 方法是属于流类 PrintStream 的方法,而不是 System 中的方法。

2. InputStream in

标准输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。

3. PrintStream err

标准的错误输出流。其语法与 System.out 类似,不需要提供参数就可输出错误信息。也可以用来输出用户指定的其他信息,包括变量的值。

4.具体代码:

import java.io.IOException;
public class Test06 {
    public static void main(String[] args) {
        System.out.println("请输入字符,按回车键结束输入:");
        int c;
        try {
            c = System.in.read();    // 读取输入的字符
            while(c != '\r') {    // 判断输入的字符是不是回车
                System.out.print((char) c);    // 输出字符
                c = System.in.read();
            }
        } catch(IOException e) {
            System.out.println(e.toString());
        } finally {
            System.err.println();
        }
    }
}

  •    成员方法

    ①   native long currentTimeMillis() : 该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和 GMT 时间(格林威治时 间)1970 年 1 月 1 号 0 时 0 分 0 秒所差的毫秒数。
    ②   void exit(int status) : 该方法的作用是退出程序。其中 status 的值 为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。
    ③   void gc(): 该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。
    ④  String getProperty(String key): 该方法的作用是获得系统中属性名为 key 的属性对应的值。系统中常见的属性名以及属性的作用如下表所示:

package CC.test;
import java.util.Arrays;

public class TestSystem {

    public void test01(){
        long time = System.currentTimeMillis();
        System.out.println("现在的系统时间距离 1970 年 1 月 1 日凌晨:" + time + "毫秒");
        System.exit(0);
        System.out.println("over");//不会执行
    }

    public void test02(){
        String javaVersion = System.getProperty("java.version");
        System.out.println("java 的 version:" + javaVersion);
        String javaHome = System.getProperty("java.home");
        System.out.println("java 的 home:" + javaHome);
        String osName = System.getProperty("os.name");
        System.out.println("os 的 name:" + osName);
        String osVersion = System.getProperty("os.version");
        System.out.println("os 的 version:" + osVersion);
        String userName = System.getProperty("user.name");
        System.out.println("user 的 name:" + userName);
        String userHome = System.getProperty("user.home");
        System.out.println("user 的 home:" + userHome);
        String userDir = System.getProperty("user.dir");
        System.out.println("user 的 dir:" + userDir);
    }

    public void test03() throws InterruptedException {
        for (int i=1; i <=10; i++){
            MyDemo my = new MyDemo(i);
            //每一次循环 my 就会指向新的对象,那么上次的对象就没有变量引用它了,就成垃圾对象
        }
        //为了看到垃圾回收器工作,我要加下面的代码,让 main 方法不那么快结束,因为 main 结束就会导致 JVM 退出,GC 也会跟着结束。
        System.gc();//如果不调用这句代码,GC 可能不工作,因为当前内存很充足,GC 就觉得不着急回收垃圾对象。
        //调用这句代码,会让 GC 尽快来工作。
        Thread.sleep(5000);
    }
}
class MyDemo{
    private int value;
    public MyDemo(int value) {
        this.value = value;
    }
    @Override
    public String toString() {
        return "MyDemo{" + "value=" + value + '}';
    }
    //重写 finalize 方法,让大家看一下它的调用效果
    @Override
    protected void finalize() throws Throwable {
// 正常重写,这里是编写清理系统内存的代码
// 这里写输出语句是为了看到 finalize()方法被调用的效果
        System.out.println(this+ "轻轻的我走了,不带走一段代码....");
    }
}

class test{
    public static void main(String[] args) {
        new TestSystem().test01();
        new TestSystem().test02();
        try {
            new TestSystem().test03();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        try {
            new MyDemo(12).finalize();
        } catch (Throwable throwable) {
            throwable.printStackTrace();
        }

    }
}

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

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

相关文章

PBDB Data Service:Thumbnail images of lifeforms(生命形式的缩略图)

Thumbnail images of lifeforms&#xff08;生命形式的缩略图&#xff09; 描述用法参数方法响应值格式术语表 描述 此操作返回表示指定分类的图像&#xff0c;或关于图像的信息。如果后缀是 .png&#xff0c;则返回图像内容数据。否则&#xff0c;将以指定的格式返回一个描述…

2023年全国硕士研究生入学统一考试英语(二)试题

2023年全国硕士研究生入学统一考试英语&#xff08;二&#xff09;试题 Section I Use of English Directions: Read the following text. Choose the best word ( s) for each numbered blank and mark A, B , C or D on the ANSWER SHEET. ( 10 points) Here’s a common …

OSS文件打包下载

前言 OSS 存放了很多项目&#xff08;项目是 TMagic 低代码平台编辑生成&#xff0c;自动上传 OSS&#xff09;&#xff0c;现在需要在管理后台将项目打包ZIP下载&#xff0c;并不在本地生成文件。 OSS 要下载项目文件&#xff1a; 一、思路实现 创建 OSSClient 实例获取 Bu…

K8s基础6——应用配置管理方案、调度策略、污点和污点容忍

文章目录 一、应用配置管理方案1.1 ConfigMap1.1.1 注入变量1.1.2 挂载数据卷 1.2 Secret 二、调度策略2.1 nodeSelector定向调度2.1.1 正例2.1.2 反例 2.2 nodeAffinity亲和力调度2.2.1 In硬策略2.2.2 NotIn硬策略2.2.3 软策略 2.3 PodAffinity亲和力调度2.3.1 pod共存2.3.2 p…

【机器学习】信息量、香农熵、信息增益

这节可以搭配 【机器学习】Logistic回归&#xff08;重新整理&#xff09;信息量&#xff08;信息&#xff09;信息量公式的推理过程 香农熵信息增益 【机器学习】Logistic回归&#xff08;重新整理&#xff09; B站视频&#xff1a;“交叉熵”如何做损失函数&#xff1f;打包…

RabbitMQ、RabbitMQ发布/订阅模式

1.RabbiMQ RabbitMQ是一个消息中间件 MQ的基本结构 1.1RabitMQ安装 参考&#xff1a;Docker安装 Docker中部署RabbitMQ 2.入门案例 2.1.publisher实现 package cn.itcast.mq.helloworld;import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; im…

链表中倒数第k个结点

描述 输入一个链表&#xff0c;输出该链表中倒数第k个结点。 示例1 输入&#xff1a; 1,{1,2,3,4,5} 复制返回值&#xff1a; {5}看代码 struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {struct ListNode* fast pListHead, *slow pListHead;whi…

Redis实现分布式锁详细解读

文章目录 什么是分布式锁&#xff1f;如何用Redis实现分布式锁&#xff1f;分布式锁的改进锁过期处理集群环境下Redis宕机问题RedLock的引入RedLock的实现步骤RedLock带来的弊端 什么是分布式锁&#xff1f; 我们在学多线程的时候遇到过ReetrantLock&#xff0c;这种锁主要应用…

node install编译失败原因

关键报错信息 npm ERR! gyp verb check python checking for Python executable "python2.7" in the PATH npm ERR! gyp verb which failed Error: not found: python2.7 或者 npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! Whi…

车载以太网时间同步之EthTsync

车载以太网时间同步之EthTsync 前言 首先&#xff0c;请问大家几个小小问题&#xff0c;你清楚&#xff1a; 你知道EthTsync模块的主要作用是什么吗&#xff1f;EthTsync模块与其他AUTOSAR基础软件模块交互关系&#xff1b;Eth Tsync模块使用的时间同步协议是什么&#xff1f…

Java—JDK8新特性—函数式接口

目录 函数式接口 3.1 什么是函数式接口 3.2 functionalinterface注解 源码分析 3.3 Lambda表达式和函数式接口关系 3.4 使用函数式接口 函数式接口 3.1 什么是函数式接口 如果一个接口中只包含一个抽象方法&#xff0c;这个接口称为函数式接口 如果一个接口包含&#xff0…

mac php8 安装xdebug模块失败

安装 xdebug 模块,官网有详细介绍Xdebug: Documentation Installation 本机是mac php使用brew安装,想着可以直接使用以下方式安装,还是美滋滋的 但是安装途中发生了错误 PHP Warning: mkdir(): File exists in /usr/local/Cellar/php/8.0.10/share/php/pear/System.php on…

解决报错ERROR: No matching distribution found for torchvision==0.11.2+cu111

目录 一、猜测 二、验证 三、解决方案 四、检验 该报错是在按官网方法用指令&#xff1a; pip install torch1.9.1cu111 torchvision0.10.1cu111 torchaudio0.9.1 -f https://download.pytorch.org/whl/torch_stable.html 安装pytorch时出现的&#xff0c;以下是分析&#…

粗糙集属性约简方法与Python实现【1】

1. 方法概述 1.1 定义 粗糙集是波兰理工大学Z.pawlak教授提出用来研究不完整数据,不精确知识的表达、学习,归纳等的一套理论。它是一种新的处理模糊和不确定性问题的数学工具,已被广泛应用于知识发现、机器学习、决策支持、模式识别、专家系统及归纳推理等领域。 粗糙集理…

开源相亲小程序

此项目目前已完成前台开发。源码结构清晰&#xff0c;完美实现模块化组件化思想&#xff0c;易维护。 曾经&#xff0c;作者也为寻求自己的另一半苦恼&#xff0c;因为平时工作繁忙&#xff0c;交际圈窄小&#xff0c;而父母又各种催婚&#xff0c;无奈上了“XX网”去碰碰运气。…

webpack5搭建react框架-antd组件库使用

antd组件库使用 一、前言 前面已经完成了webpack5 react框架的配置搭建&#xff0c;我们在进行项目开发的时候大多还会使用第三方的组件库&#xff0c;而antd组件库在react项目中使用是非常非常多的&#xff0c;所以就将react框架使用最多的antd组件库引入并使用。 二、ant…

京东给了兄弟姐妹们稳稳的幸福

“今天我看了宿舍楼&#xff0c;我真的是气得想打人&#xff1b;我原来一直说的是高级单身公寓&#xff01;可实际情况呢&#xff1f;我说了多少遍了&#xff0c;要让员工、让兄弟们活的有尊严。而我们宿迁分公司的管理层是怎么做的呢&#xff0c;说难听的就是没有把员工当人去…

低代码平台的多租户SAAS系统实战解决方案—JeecgBoot

JeecgBoot免费低代码平台&#xff0c;提供一键切换多租户模式机制&#xff01;快速实现全系统的saas租户方案&#xff0c;通过租户ID进行数据隔离。 租户设计思路 1、开启全系统租户隔离 开启方法 将 org.jeecg.config.mybatis.MybatisPlusSaasConfig#OPEN_SYSTEM_TENANT_CO…

RabbitMQ --- 消息可靠性

消息队列在使用过程中&#xff0c;面临着很多实际问题需要思考&#xff1a; 一、消息可靠性 消息从发送&#xff0c;到消费者接收&#xff0c;会经理多个过程&#xff1a; 其中的每一步都可能导致消息丢失&#xff0c;常见的丢失原因包括&#xff1a; 发送时丢失&#xff1a; …

(java)继承和多态 (详解)

目录 1 继承 1.1为什么需要继承 1.2 继承概念 1.3 继承的语法 1.4 父类成员访问 1.4.1 子类中访问父类的成员变量 1.4.2 子类中访问父类的成员方法 1.5 super关键字 1.6 子类构造方法 1.7 super和this 1.7.1 this 1.7.2 super和this 1.8 再谈初始化 1.9 继承方…