39Java System类

news2024/11/28 6:53:07

目录

System类

1.定义

2.预备知识

3.常用方法

        (1).currentTimeMillis返回系统时间

        (2).exit终止虚拟机

        (3).arraycopy拷贝数组


System类

1.定义

        Java System类是一个提供与系统相关的方法

  • System类所在包为java.lang包,因此在使用的时候不需要进行导包。并且System类被final修饰了,因此该类是不能被继承的。
  • 在API文档中没有体现可用的构造方法,因此我们就不能直接通过new关键字去创建System类的对象。
  • System类中的方法都是静态的,因此在使用的时候我们可以直接通过类名去调用

2.预备知识

计算机中的时间原点

        1970年1月1日0点0分0秒

原因:
        1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机开始着手创造一个全新的革命性的操作系统。他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本。随后,汤普逊和同事丹尼斯里奇改进了B语言,开发出了C语言,重写了UNIX。所以,1970年1月1日算C语言的生日。
        我国位于东八区所以在中国的操作系统的计算机时间原点是1970年1月1日8点0分0秒。

时间进制:

  • 1秒=1000毫秒
  • 1毫秒=1000微秒
  • 1微秒=1000纳秒

此之外还有皮秒、飞秒、阿托秒、仄(ze)秒、幺秒,它们之间的进制也是1000。

3.常用方法

        (1).currentTimeMillis返回系统时间

        返回当前系统的时间以毫秒值的形式

public static long currentTimeMillis()			

如图输出1656569533325,,表示从时间原点1970.1.1.8到运行当前代码度过的时间,单位毫秒

注:快捷键Alt+v生成变量左侧的一个接收值,比如该代码中输入System.currentTimeMillis()后点击快捷键自动生成“long l = ”。

应用:

        统计某一段代码的执行时间。此时我们可以在执行这段代码之前获取一次时间,在执行完毕以后再次获取一次系统时间,然后计算两个时间的差值,这个差值就是这段代码执行完毕以后所需要的时间。

public class SystemDemo2 {
    public static void main(String[] args) {
        //判断1~100000之间有多少个质数

        long start = System.currentTimeMillis();

        for (int i = 1; i <= 100000; i++) {
            boolean flag = isPrime2(i);
            if (flag) {
                System.out.println(i);
            }
        }
        long end = System.currentTimeMillis();
        //获取程序运行的总时间
        System.out.println(end - start); //方式一:1514 毫秒  方式二:71毫秒
    }

    //以前判断是否为质数的方式
    public static boolean isPrime1(int number) {
        for (int i = 2; i < number; i++) {
            if (number % i == 0) {
                return false;
            }
        }
        return true;
    }

    //改进之后判断是否为质数的方式(效率高)
    public static boolean isPrime2(int number) {
        for (int i = 2; i <= Math.sqrt(number); i++) {
            if (number % i == 0) {
                return false;
            }
        }
        return true;
    }
}

        (2).exit终止虚拟机

        终止当前运行的java虚拟机

public static void exit(int status)

方法的形参是一个状态码

  • 0:表示虚拟机正常停止
  • 非0:表示虚拟机异常停止,通常情况下写1

 应用:当我们需要把整个程序结束时,就可以调用这个方法。

        (3).arraycopy拷贝数组

        拷贝数组

public static native void arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length); 
// src: 	 源数组(被拷贝数组)
// srcPos:  源数值的开始位置(从第几个索引开始被拷贝)
// dest:    目标数组(源数组要拷贝到目标数组中)
// destPos: 目标数组开始位置(从哪里接受被拷贝数组的元素值)
// length:   要复制的元素个数

注意:

  1. 如果数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错
  2. 在拷贝的时候需要考虑数组的长度,如果超出范围也会报错
  3. 如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型
     

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

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

相关文章

外汇天眼:FCA 已向交易应用程序运营商发出警告,要求其停止交易游戏化

英国市场监管机构希望交易应用程序开发商重新考虑关键设计元素。 根据新的研究&#xff0c;游戏化可能会导致类似赌博的行为。 负责监管英国金融市场的金融行为监管局 ( FCA )周一发布了有关交易应用程序设计的市场警告。金融业监管机构担心零售交易越来越像一场游戏&#xff…

A. Row GCD(更相减损术+gcd的性质)

Problem - 1458A - Codeforces 给你两个正整数序列a1,...,an和b1,...,bm。对于每个j1,...,m&#xff0c;求a1bj,...,anbj的最大公除数。 输入 第一行包含两个整数n和m&#xff08;1≤n&#xff0c;m≤2⋅105&#xff09;。 第二行包含n个整数a1,...,an&#xff08;1≤ai≤101…

Linux学习记录——이 基本指令(2)

接着上一篇继续写指令。 man指令 man指令是一个手册功能的指令&#xff0c;可以查看系统内的接口&#xff0c;指令等等&#xff0c;也可以查看一个指令有什么用法。如果是需要查看C语言中的指令&#xff0c;比如printf&#xff0c;就可以man 3 printf。不过man大多数情况是用…

旋转数组的最小数字、二维数组中的查找、调整数组顺序使奇数位于偶数前面

文章目录1、 旋转数组的最小数字2、调整数组顺序使奇数位于偶数前面3、二维数组中的查找1、 旋转数组的最小数字 本题考点&#xff1a;核心考点&#xff1a;数组理解&#xff0c;二分查找&#xff0c;临界条件 牛客链接 题目描述&#xff1a; 有一个长度为 n 的非降序数组&am…

简述Spring Bean生命周期

前言 在Spring容器里&#xff0c;Bean的完整生命周期比较长。但是我们必须要掌握它。 Bean周期总览 Bean周期总体如下所示。 接下来会简单讲下各个步骤的主要功能。 Bean实例化 必须步骤。 此步骤主要是实例化一个Bean&#xff0c;例如new一个对象。这个步骤主要是设置be…

运动无线耳机什么牌子好?六款实用性不错的运动耳机推荐

跑步的过程如果没有音乐真的很难继续跑下去&#xff0c;当然&#xff0c;有了音乐的加入&#xff0c;运动过程也变得更加有动力&#xff0c;烦恼的心情也会随着烟消云散。一款好的运动耳机能让我们运动变得更加轻松&#xff0c;什么运动耳机值得大家入手&#xff1f;今天我就来…

计算机毕业设计java+ssm舞蹈管理系统(源码+系统+mysql数据库+Lw文档)

项目介绍 舞蹈管理系统是使用JAVA的SSM技术&#xff0c;MySQL作为数据库开发&#xff0c;用户通过查看舞蹈信息&#xff0c;在线预约课程&#xff0c;实现舞蹈管理。首先对本论文进行分析后&#xff0c;提出平台的相关技术&#xff0c;然后整理系统的需求分析&#xff0c;根据…

_c++11( lambda)

lambda表达式1 C98中的一个例子2 lambda表达式3 lambda表达式语法4 函数对象与lambda表达式1 C98中的一个例子 在C98中&#xff0c;如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用std::sort方法。 #include <algorithm> #include <functional> voi…

[附源码]计算机毕业设计JAVA教师业绩考核系统

[附源码]计算机毕业设计JAVA教师业绩考核系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…

Sharding-JDBC 基础

Sharding-JDBC 是当当网开源的适用于微服务的分布式数据访问基础类库&#xff0c;完整的实现了分库分表&#xff0c;读写分离和分布式主键功能&#xff0c;并初步实现了柔性事务。 从 2016 年开源至今&#xff0c;在经历了整体架构的数次精炼以及稳定性打磨后&#xff0c;如今…

AQS源码解析 3.lock() unlock() 加锁解锁过程

AQS源码解析 3.lock() & unlock() 加锁解锁过程 Lock() 过程 这里使用 ReentrantLock 的公平锁去看 AQS 的加锁过程。在 ReentrantLock 的实现中&#xff0c;其默认构造的锁是非公平锁。 详细流程图 尝试获取锁 构造节点入队过程 在队列中被挂起 被唤醒重新抢锁的过…

说一下 ArrayList 和 LinkedList 的区别?

本文已收录到 AndroidFamily&#xff0c;技术和职场问题&#xff0c;请关注公众号 [彭旭锐] 提问。 前言 大家好&#xff0c;我是小彭。 在上一篇文章里&#xff0c;我们聊到了基于动态数组 ArrayList 线性表&#xff0c;今天我们来讨论一个基于链表的线性表 —— LinkedList…

JavaScript构造函数和原型:ES5 中的新增方法

ES5 新增方法概述 ES5 中给我们新增了一些方法&#xff0c;可以很方便的操作数组或者字符串&#xff0c;这些方法主要包括&#xff1a; 数组方法 字符串方法 对象方法 数组方法 迭代(遍历)方法&#xff1a;forEach()、map()、filter()、some()、every()&#xff1b; arr…

AVL右旋转思路分析与图解

AVL树右旋转思路分析与图解 其实我们前面讲过了左旋转之后再学习右旋转就会非常的简单了, 因为我们的右旋转相对我们的左旋转只是换了一个方向而已, 那么下面我们就来讲解右旋转的实现 对于数列{10, 12, 8, 9 ,7, 6} , 当我们插入6的时候leftHeight() - rightHeight() > 1…

Linux 之 Ubuntu 代码开发工具 Visual Studio Code(VSCode) 的安装与一些常用插件配置的简单整理

Linux 之 Ubuntu 代码开发工具 Visual Studio Code(VSCode) 的安装与一些常用插件配置的简单整理 目录 Linux 之 Ubuntu 代码开发工具 Visual Studio Code(VSCode) 的安装与一些常用插件配置的简单整理 一、简单介绍 二、Visual Studio Code 下载与安装 三、 Visual Studio…

【操作系统】第一章总结

1.1 操作系统介绍 1.1.1 操作系统的概念、功能和目标 1.1.1 操作系统的概念、功能和目标&#xff08;系统资源的管理者、提供接口、作为扩充机器、虚拟机&#xff09;_StudyWinter的博客-CSDN博客 1.1.2 操作系统的特点 1.1.2 操作系统的特征&#xff08;并发、共享、虚拟、…

[附源码]SSM计算机毕业设计基于Java烟支信息管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【计算机视觉OpenCV基础】实验四 尺寸测量

实验四 尺寸测量 计算机视觉OpenCV基础实验合辑&#xff08;实验1234扩展&#xff09; 资源下载地址&#xff1a; https://download.csdn.net/download/weixin_53403301 合辑&#xff1a;&#xff08;加在下载地址后面&#xff09; /87113581 讲义&#xff08;包括理论、图例、…

RVMedia VCL 8.0 for Delphi 10.1-10.4

RVMedia VCL 8.0 for Delphi 10.1-10.4 RVMedia是Dolphi和Lazarus的VCL和LCL计算机的集合&#xff0c;为视频处理提供了不同的功能。在RVMedia中&#xff0c;可以使用GStreamer和FFmpeg库以H.264等高级格式显示视频。请注意&#xff0c;此组不包含这两个库的源代码&#xff0c;…

临近2022年末: Android 开发者的出路在哪?转行还是进阶?

你可能知道 Android 的近况&#xff0c;大体上现在移动开发已经不像以前那么活跃了&#xff0c;完全没有了几年安卓开发的那种火热势头。 与此同时&#xff0c;有很多发言说 Android 的开发冷却了&#xff0c;不行了&#xff0c;没有前途了 那么到底该如何看待这一现象呢&#…