Java中的System类和一些练习

​​​​​​​

目录

常用方法:

第一个方法:

第二个方法:

第三个方法:

方法 三 的拓展:


  • System 和 Math 一样,也是一个工具类,提供了一些与系统相关的方法

常用方法:

第一个方法:

//        方法的形参:0表示虚拟机是正常停止
//        非0表示虚拟机异常停止System.out.println("会执行");System.exit(0);System.out.println("看看我执行了吗");//但我们需要把整个程序停止,就可以调用这个方法

第二个方法:

返回当前时间毫秒值,并且以 1970 年 1 月 1 日 08:00:00 作为计算机中的时间原点(含时差); 1 秒=1000 毫秒

System.out.println(System.currentTimeMillis());
//分两次时间打印 :第一次1705373724363  第二次1705373737774
//看得出时间是在变化的

那这个方法的作用在哪?

public class Test02 {public static void main(String[] args) {/*求1~100000中的质数*/long start = System.currentTimeMillis();//开始for (int i = 1; i < 100000; i++) {if (check1(i)) {System.out.println(i);}}long end = System.currentTimeMillis();//结束//获取程序运行时间System.out.println(end-start);//老方法需要578毫秒}public static boolean check1(int number) {//验证是否是质数的方法(老方法)for (int i = 2; i < number; i++) {if (number % i == 0) {return false;}}return true;}
}
public class Test02 {public static void main(String[] args) {/*求1~100000中的质数*/long start = System.currentTimeMillis();//开始for (int i = 1; i < 100000; i++) {if (check2(i)) {System.out.println(i);}}long end = System.currentTimeMillis();//结束//获取程序运行时间System.out.println(end-start);//新方法只需要33毫秒//可以验证出改进的方法效率确实更高了}//验证是否是质数的方法(新方法--效率更高)public static boolean check2(int number) {for (int i = 2; i <= Math.sqrt(number); i++) {if (number % i == 0) {return false;}}return true;}
}

得出此方法可以验证程序运行速度。


第三个方法:

int []arr1={1,2,3,4,5,6,7,8,9,10};
int []arr2=new int[10];//拷贝arr1到arr2System.arraycopy(arr1,0,arr2,0,10);//遍历arr2for (int i = 0; i <arr2.length ; i++) {System.out.print(arr2[i]+" ");}System.out.println();

控制台:

1 2 3 4 5 6 7 8 9 10

练习:使 arr2 为: 0 0 0 0 1 2 3 0 0 0

    	//拷贝arr1到arr2System.arraycopy(arr1,0,arr2,4,3);

练习:使 arr2 为:0 0 7 8 9 0 0 0 0 0

    	//拷贝arr1到arr2System.arraycopy(arr1,6,arr2,2,3);

方法 三 的拓展:

  1. 如果数据源数组和目的数组是基本数据类型,那么类型必须一致,否则报错
int []arr1={1,2,3,4,5,6,7,8,9,10};
double []arr2=new double[10];

  1. 在拷贝的时候必须考虑数组长度,如果超出范围也会报错
int []arr1={1,2,3,4,5,6,7,8,9,10};
int []arr2=new int[5];

3.若数据源数组和目的数组都是引用数据类型,那么子类类型可以拷贝给父类类型

public class Test05 {public static void main(String[] args) {Student s1=new Student("张胜男1",21);Student s2=new Student("李胜男2",22);Student s3=new Student("王胜男3",23);//数据源数组和目的数组都是引用数据类型Student []arr1={s1,s2,s3};Person []arr2=new Person[3];//arr1拷贝到arr2System.arraycopy(arr1,0,arr2,0,3);//遍历arr2for (int i = 0; i <arr2.length ; i++) {System.out.println(arr2[i].getName()+" ,"+arr2[i].getAge());}}
}//父类
class Person{private  String name;private int age;public Person(){};public Person (String name ,int age){this.name=name;this.age=age;}public void setName(String name){this.name=name;}public String getName(){return name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}//子类
class Student extends Person{public  Student(){};public Student(String name,int age){super(name, age);}
}

控制台:

张胜男1 ,21

李胜男2 ,22

王胜男3 ,23

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】机器学习变量分析第02课

当我们谈论用机器学习来预测咖啡店的销售额时&#xff0c;我们实际上是在处理一系列与咖啡销售相关的变量。这些变量就像是我们用来理解销售情况的“线索”或“指标”。那么&#xff0c;让我们用通俗易懂的方式来聊聊这些变量是怎么工作的。 特征变量&#xff1a;咖啡店的“档…

分类预测 | Matlab实现ZOA-CNN-MATT-SVM斑马优化卷积神经网络多头注意力机制结合支持向量机的数据分类预测【24年新算法】

分类预测 | Matlab实现ZOA-CNN-MATT-SVM斑马优化卷积神经网络多头注意力机制结合支持向量机的数据分类预测【24年新算法】 目录 分类预测 | Matlab实现ZOA-CNN-MATT-SVM斑马优化卷积神经网络多头注意力机制结合支持向量机的数据分类预测【24年新算法】分类效果基本描述程序设计…

mall整合Redis实现缓存功能

mall整合Redis实现缓存功能 本文主要讲解mall整合Redis的过程&#xff0c;以短信验证码的存储验证为例。 Redis的安装和启动 Redis是用C语言开发的一个高性能键值对数据库&#xff0c;可用于数据缓存&#xff0c;主要用于处理大量数据的高访问负载。 下载Redis,下载地址&…

【HTML】-- 02 HTML进阶

2.HTML进阶 2.1 块元素和行内元素 块元素 无论内容多少&#xff0c;该元素独占一行(p段落标签、h1-h6标题标签…) 行内元素 内容撑开宽度&#xff0c;左右都是行内元素的可以排在一行(a链接标签 . strong粗体 . em斜体 …) 2.2 列表标签 列表就是信息资源的一种展示形式。…

VUE组件--动态组件、组件保持存活、异步组件

动态组件 有些场景可能会需要在多个组件之间进行来回切换&#xff0c;在vue中则使用<component :is"..."> 来实现组件间的来回切换 // App.vue <template><component :is"tabComponent"></component><button click"change…

SMART PLC 模拟量批量转换功能块“Multi_ITR“

模拟量输入转换功能块S_ITR详细公式和代码介绍请查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/121347697https://rxxw-control.blog.csdn.net/article/details/121347697Smart PLC指针和FOR循环组合应用 https://rxxw-control.blog.csdn.net/arti…

Docker上安装Elasticsearch、Kibana 和IK分词器

Docker上安装Elasticsearch、Kibana 和IK分词器 随着大数据和日志管理的兴起&#xff0c;Elasticsearch和Kibana成为了许多开发者和系统管理员首选的工具&#xff0c;我接下来使用的版本是 8.11.0 &#xff0c;我实测测试过都能成功安装的版本有&#xff1a;7.6.2、8.1.0、8.6…

接口自动化测试框架设计

文章目录 接口测试的定义接口测试的意义接口测试的测试用例设计接口测试的测试用例设计方法postman主要功能请求体分类JSON数据类型postman内置参数postman变量全局变量环境变量 postman断言JSON提取器正则表达式提取器Cookie提取器postman加密接口签名 接口自动化测试基础getp…

AJAX和Axios异步框架

AJAX&#xff1a;Asynchronous JavaScript And XML 异步的JavaScript和XML 作用&#xff1a;1、与服务器进行数据交换&#xff0c;通过AJAX可以给服务器发送请求&#xff0c;并获取服务器响应数据。使用了AJAX和服务器进行通信&#xff0c;就可以使用ajax和html来代替jsp页面了…

图形化编程:开启无代码时代的编程之旅

在当今数字化时代&#xff0c;编程已经成为一项重要的技能。然而&#xff0c;对于许多初学者和非专业人士来说&#xff0c;传统的文本编程语言往往显得复杂和难以理解。图形化编程&#xff0c;作为一种新兴的编程范式&#xff0c;正逐渐改变这一现状&#xff0c;为更多人打开了…

【51单片机】数码管的静态与动态显示(含消影)

数码管在现实生活里是非常常见的设备&#xff0c;例如 这些数字的显示都是数码管的应用。 目录 静态数码管&#xff1a;器件介绍&#xff1a;数码管的使用&#xff1a;译码器的使用&#xff1a;缓冲器&#xff1a; 实现原理&#xff1a;完整代码&#xff1a; 动态数码管&#…

Flutter:跨平台移动应用开发的未来

Flutter&#xff1a;跨平台移动应用开发的未来 引言 Flutter的背景和概述 Flutter是由Google开发的一个开源UI工具包&#xff0c;用于构建漂亮、快速且高度可定制的移动应用程序。它于2017年首次发布&#xff0c;并迅速引起了开发者们的关注。Flutter采用了一种全新的方法来…