【Java从0到1学习】10 Java常用类汇总
1. System类
System类对读者来说并不陌生,因为在之前所学知识中,需要打印结果时,使用的都是“System.out.println();”语句,这句代码中就使用了System类。System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。System类的常用方法如下表所示。
1.getProperties()方法
System类的getProperties()方法用于获取当前系统的全部属性,该方法会返回一个Properties对象,其中封装了系统的所有属性,这些属性是以键值对形式存在的。
package cn.itcast.chapter05.example09;
import java.util.*;
/*** System类的getProperties()方法*/
public class Example09 {public static void main(String[] args) {// 获取当前系统属性Properties properties = System.getProperties();// 获得所有系统属性的key,返回Enumeration对象Enumeration propertyNames = properties.propertyNames();while (propertyNames.hasMoreElements()) {// 获取系统属性的键keyString key = (String) propertyNames.nextElement();// 获得当前键key对应的值valueString value = System.getProperty(key);System.out.println(key + "--->" + value);}}
}
2.currentTimeMillis()
currentTimeMillis()方法返回一个long类型的值,该值表示当前时间与1970年1月1日0点0分0秒之间的时间差,单位是毫秒,通常也将该值称作时间戳。
package cn.itcast.chapter05.example10;
/*** 计算程序在进行求和操作时所消耗的时间*/
public class Example10 {public static void main(String[] args) {long startTime = System.currentTimeMillis();// 循环开始时的当前时间int sum = 0;for (int i = 0; i < 100000000; i++) {sum += i;}long endTime = System.currentTimeMillis();// 循环结束后的当前时间System.out.println("程序运行的时间为:" + (endTime - startTime) + "毫秒");}
}
3.arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
arraycopy()方法用于将一个数组中的元素快速拷贝到另一个数组。其中的参数具体作用如下:
- src:表示源数组。
- dest:表示目标数组。
- srcPos:表示源数组中拷贝元素的起始位置。
- destPos:表示拷贝到目标数组的起始位置。
- length:表示拷贝元素的个数。
package cn.itcast.chapter05.example11;
/*** 数组元素的拷贝*/
public class Example11 {public static void main(String[] args) {int[] fromArray = { 101, 102, 103, 104, 105, 106 }; // 源数组int[] toArray = { 201, 202, 203, 204, 205, 206, 207 }; // 目标数组System.arraycopy(fromArray, 2, toArray, 3, 4); // 拷贝数组元素// 打印目标数组中的元素for (int i = 0; i < toArray.length; i++) {System.out.println(i + ": " + toArray[i]);}}
}
4.SystemClock.uptimeMillis()
2. Runtime类
Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,对象不可以直接实例化。若想在程序中获得一个Runtime实例,只能通过以下方式:
案例代码
由于Runtime类封装了虚拟机进程,因此,在程序中通常会通过该类的实例对象来获取当前虚拟机的相关信息。
package cn.itcast.chapter05.example12;
/*** Runtime类的使用*/
public class Example12 {public static void main(String[] args) {Runtime rt = Runtime.getRuntime(); // 获取System.out.println("处理器的个数: " + rt.availableProcessors() + "个");System.out.println("空闲内存数量: " + rt.freeMemory() / 1024 / 1024 + "M");System.out.println("最大可用内存数量: " + rt.maxMemory() / 1024 / 1024 + "M");}
}
案例代码
Runtime类中提供了一个exec()方法,该方法用于执行一个dos命令,从而实现和在命令行窗口中输入dos命令同样的效果。例如,通过运行“notepad.exe”命令打开一个Windows自带的记事本程序
package cn.itcast.chapter05.example13;
import java.io.IOException;
/*** 使用exec()方法打开记事本*/
public class Example13 {public static void main(String[] args) throws IOException {Runtime rt = Runtime.getRuntime(); // 创建Runtime实例对象rt.exec("notepad.exe"); // 调用exec()方法}
}
打开记事本并在3秒后自动关闭
package cn.itcast.chapter05.example14;
/*** 打开的记事本并在3秒后自动关闭*/
public class Example14 {public static void main(String[] args) throws Exception {Runtime rt = Runtime.getRuntime(); // 创建一个Runtime实例对象Process process = rt.exec("notepad.exe");// 得到表示进程的Process对象Thread.sleep(3000); // 程序休眠3秒process.destroy(); // 杀掉进程}
}
Runtime.getRuntime().availableProcessors(); // 获取CPU核心数
Runtime.getRuntime().maxMemory(); // 获取应用被分配的最大内存
3. Math类
Math类是数学操作类,Math类提供了常用的一些数学函数,如:三角函数、对数、指数等。一个数学公式如果想用代码表示,则可以将其拆分然后套用Math类下的方法即可。
Math类中有两个静态常量PI和E,分别代表数学常量π和e。
Math.abs(12.3); //12.3 返回这个数的绝对值
Math.abs(-12.3); //12.3 Math.copySign(1.23, -12.3); //-1.23,返回第一个参数的量值和第二个参数的符号
Math.copySign(-12.3, 1.23); //12.3 Math.signum(x); //如果x大于0则返回1.0,小于0则返回-1.0,等于0则返回0
Math.signum(12.3); //1.0
Math.signum(-12.3); //-1.0
Math.signum(0); //0.0 //指数
Math.exp(x); //e的x次幂
Math.expm1(x); //e的x次幂 - 1 Math.scalb(x, y); //x*(2的y次幂)
Math.scalb(12.3, 3); //12.3*2³ //取整
Math.ceil(12.3); //返回最近的且大于这个数的整数13.0
Math.ceil(-12.3); //-12.0 Math.floor(12.3); //返回最近的且小于这个数的整数12.0
Math.floor(-12.3); //-13.0 //x和y平方和的二次方根
Math.hypot(x, y); //√(x²+y²) //返回概述的二次方根
Math.sqrt(x); //√(x) x的二次方根
Math.sqrt(9); //3.0
Math.sqrt(16); //4.0 //返回该数的立方根
Math.cbrt(27.0); //3
Math.cbrt(-125.0); //-5 //对数函数
Math.log(e); //1 以e为底的对数
Math.log10(100); //10 以10为底的对数
Math.log1p(x); //Ln(x+ 1) //返回较大值和较小值
Math.max(x, y); //返回x、y中较大的那个数
Math.min(x, y); //返回x、y中较小的那个数 //返回 x的y次幂
Math.pow(x, y);
Math.pow(2, 3); //即2³ 即返回:8 //随机返回[0,1)之间的无符号double值
Math.random(); //返回最接近这个数的整数,如果刚好居中,则取偶数
Math.rint(12.3); //12.0
Math.rint(-12.3); //-12.0
Math.rint(78.9); //79.0
Math.rint(-78.9); //-79.0
Math.rint(34.5); //34.0
Math.rint(35.5); //36.0 Math.round(12.3); //与rint相似,返回值为long //三角函数
Math.sin(α); //sin(α)的值
Math.cos(α); //cos(α)的值
Math.tan(α); //tan(α)的值 //求角
Math.asin(x/z); //返回角度值[-π/2,π/2] arc sin(x/z)
Math.acos(y/z); //返回角度值[0~π] arc cos(y/z)
Math.atan(y/x); //返回角度值[-π/2,π/2]
Math.atan2(y-y0, x-x0); //同上,返回经过点(x,y)与原点的的直线和经过点(x0,y0)与原点的直线之间所成的夹角 Math.sinh(x); //双曲正弦函数sinh(x)=(exp(x) - exp(-x)) / 2.0;
Math.cosh(x); //双曲余弦函数cosh(x)=(exp(x) + exp(-x)) / 2.0;
Math.tanh(x); //tanh(x) = sinh(x) / cosh(x); //角度弧度互换 360°角=2π弧度
Math.toDegrees(angrad); //角度转换成弧度,返回:angrad * 180d / PI Math.toRadians(angdeg); //弧度转换成角度,返回:angdeg / 180d * PI Math.PI
package cn.itcast.chapter05.example15;
/*** Math类中比较常见的方法*/
public class Example15 {public static void main(String[] args) {System.out.println("计算绝对值的结果: " + Math.abs(-1));System.out.println("求大于参数的最小整数: " + Math.ceil(5.6));System.out.println("求小于参数的最大整数: " + Math.floor(-4.2));System.out.println("对小数进行四舍五入后的结果: " + Math.round(-4.6));System.out.println("求两个数的较大值: " + Math.max(2.1, -2.1));System.out.println("求两个数的较小值: " + Math.min(2.1, -2.1));System.out.println("生成一个大于等于0.0小于1.0随机值: " + Math.random());}
}
4. Random类
在JDK的java.util包中有一个Random类,它可以在指定的取值范围内随机产生数字。在Random类中提供了两个构造方法,具体如下表所示。
表中列举了Random类的两个构造方法,其中第一个构造方法是无参的,通过它创建的Random实例对象每次使用的种子是随机的,因此每个对象所产生的随机数不同。如果希望创建的多个Random实例对象产生相同序列的随机数,则可以在创建对象时调用第二个构造方法,传入相同的种子即可。
相对于Math的random()方法而言,Random类提供了更多的方法来生成各种伪随机数,不仅可以生成整数类型的随机数,还可以生成浮点类型的随机数,表中列举了Random类中的常用方法。
表中,列出了Random类常用的方法,其中,Random类的nextDouble()方法返回的是0.0和1.0之间double类型的值,nextFloat()方法返回的是0.0和1.0之间float类型的值,nextInt(int n)返回的是0(包括)和指定值n(不包括)之间的值。
package cn.itcast.chapter05.example16;
import java.util.Random;
/*** 使用构造方法Random()产生随机数*/
public class Example16 {public static void main(String args[]) {Random r = new Random(); // 不传入种子// 随机产生10个[0,100)之间的整数for (int x = 0; x < 10; x++) {System.out.println(r.nextInt(100));}}
}
package cn.itcast.chapter05.example17;
import java.util.Random;
/*** 使用构造方法Random(long seed)产生随机数*/
public class Example17 {public static void main(String args[]) {Random r = new Random(13); // 创建对象时传入种子// 随机产生10个[0,100)之间的整数for (int x = 0; x < 10; x++) {System.out.println(r.nextInt(100));}}
}
package cn.itcast.chapter05.example18;
import java.util.Random;
/*** Random类中的常用方法*/
public class Example18 {public static void main(String[] args) {Random r1 = new Random(); // 创建Random实例对象System.out.println("产生float类型随机数: " + r1.nextFloat());System.out.println("产生0~100之间int类型的随机数:" + r1.nextInt(100));System.out.println("产生double类型的随机数:" + r1.nextDouble());}
}
5. 日期
求当前时间100天后的时间日期,格式化为xxxx年xx月xx日
Date
方法声明 | 功能描述 |
---|---|
getTime() | |
setTime() |
SimpleDateFormat
返回值 | 方法声明 | 功能描述 |
---|---|---|
Stirng | format() | 格式化日期 |
Date | parse() |
Calendar
方法声明 | 功能描述 |
---|---|
get(int field) | 返回给定日历字段的值 |
getInstance() | |
add(int field,int amount) | 根据给定的日历字段和对应的时间,来对当前的日历进行操作 |
set(int year,int month,int date) | 设置当前日历的年月日 |
Calendar rightNow = Calendar.getInstance(); // 子类对象public void add(int field,int amount); //根据给定的日历字段和对应的时间,来对当前的日历进行操作。public final void set(int year,int month,int date); //设置当前日历的年月日// 三年前的今天
c.add(Calendar.YEAR, -3);
相关文章:
【Java从0到1学习】10 Java常用类汇总
1. System类 System类对读者来说并不陌生,因为在之前所学知识中,需要打印结果时,使用的都是“System.out.println();”语句,这句代码中就使用了System类。System类定义了一些与系统相关的属性和方法,它所提供的属性和…...
第三届人工智能与智能制造国际研讨会(AIIM 2023)
第三届人工智能与智能制造国际研讨会(AIIM 2023) The 3rd International Symposium on Artificial Intelligence and Intelligent Manufacturing 第三届人工智能与智能制造国际研讨会(AIIM 2023)将于2023年10月27-29日在成都召开…...
层次分析法
目录 一:问题的引入 二:模型的建立 1.分析系统中各因素之间的关系,建立系统的递阶层次结构。 2.对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较矩阵(判断矩阵)。 3.由判…...
Error Handling
有几个特定的异常类允许用户代码对与CAN总线相关的特定场景做出反应: Exception (Python standard library)+-- ...+-- CanError (python-can)+-- CanInterfaceNotImplementedError+-- CanInitializationError...
leetcode:字符串相乘(两种方法)
题目: 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 "2", nu…...
【爬虫练习之glidedsky】爬虫-基础2
题目 链接 爬虫往往不能在一个页面里面获取全部想要的数据,需要访问大量的网页才能够完成任务。 这里有一个网站,还是求所有数字的和,只是这次分了1000页。 思路 找到调用接口 可以看到后面有个参数page来控制页码 代码实现 import reques…...
03.有监督算法——决策树
1.决策树算法 决策树算法可以做分类,也可以做回归 决策树的训练与测试: 训练阶段:从给定的训练集构造出一棵树(从根节点开始选择特征,如何进行特征切分) 测试阶段:根据构造出来的树模型从上…...
网络协议详解之STP
目录 一、STP协议(生成树) 1.1 生成树协议核心知识点: 1.2 生成树协议与导致问题: 生成树含义: 1.3 802.1D 规则: 802.1D 缺点: 1.4 PVST cisco私有 1.5 PVST 1.6 快速生成树 快速的原…...
Eltima USB Network Gate 10.0 Crack
USB Network Gate -通过网络共享USB 设备 USB Network Gate (前身为以太网USB控制器USB) 轻松的通过网络(Internet/LAN/WAN)分享您的一个或者多个连接到您计算机的USB设备。 无论您身处异国还是近在隔壁办公室,您都可以轻松使用远程扫描仪、打印机、摄像头、调制解…...
SpringCloudGateway网关实战(一)
SpringCloudGateway网关实战(一) 目前对cloud的gateway功能还是不太熟悉,因此特意新建了对应的应用来尝试网关功能。 网关模块搭建 首先我们新建一个父模块用于添加对应的springboot依赖和cloud依赖。本模块我们的配置读取使用的是nacos&a…...
django中使用ajax发送请求
1、ajax简单介绍 浏览器向网站发送请求时 是以URL和表单的形式提交的post 或get 请求,特点是:页面刷新 除此之外,也可以基于ajax向后台发送请求(异步) 依赖jQuery 编写ajax代码 $.ajax({url: "发送的地址"…...
C++之std::list<string>::iterator迭代器应用实例(一百七十九)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
VSCode好用的插件
文章目录 前言1.Snippet Creator & easy snippet(自定义代码)2.Indent Rainbow(代码缩进)3.Chinese (Simplified) Language Pack(中文包)4.Path Intellisense(路径提示)5.Beauti…...
js实现滚轮滑动到底部自动加载(完整版)
这里我们用vue实现(原生js相似), 这里我们用一个div当作一个容器; <div class="JL" @scroll="onScroll" ref="inin"> <div v-for="(item,index) in this.list" :key="index" > ....…...
如何限制PDF打印?限制清晰度?
想要限制PDF文件的打印功能,想要限制PDF文件打印清晰度,都可以通过设置限制编辑来达到目的。 打开PDF编辑器,找到设置限制编辑的界面,切换到加密状态,然后我们就看到 有印刷许可。勾选【权限密码】输入一个PDF密码&am…...
python计算模板图像与原图像各区域的相似度
目录 1、解释说明: 2、使用示例: 3、注意事项: 1、解释说明: 在Python中,我们可以使用OpenCV库进行图像处理和计算机视觉任务。其中,模板匹配是一种常见的方法,用于在一幅图像中识别出与给定…...
阿里云云解析DNS核心概念与应用
文章目录 1.DNS解析基本概念1.1.DNS基本介绍1.2.域名的分层结构1.3.DNS解析原理1.4.DNS递归查询和迭代查询的区别1.5.DNS常用的解析记录 2.使用DNS云解析将域名与SLB公网IP进行绑定2.1.进入云解析DNS控制台2.2.添加域名解析记录2.3.验证解析是否生效 1.DNS解析基本概念 DNS官方…...
计算机竞赛 垃圾邮件(短信)分类算法实现 机器学习 深度学习
文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 垃圾邮件(短信)分类算…...
compositionAPI
面试题:composition api相比于option api有哪些优势? 不同于reactivity api,composition api提供的函数很多是与组件深度绑定的,不能脱离组件而存在。 1. setup // component export default {setup(props, context){// 该函数在…...
vscode配置调试环境-windows系统
1. 下载Vscode 下载网址code.visualstudio.com 2. 安装vscode 直打开下载好的.exe文件进行安装即可 3.安装插件 4下载mingw编译器 4.1下载 下载网址sourceforge.net/projects/mingw-w64/files/ 下拉找到该位置,下载圈中的版本。下载速度有点慢 临时下载地址 htt…...
智慧城市能实现嘛?数字孪生又在其中扮演什么角色?
数字孪生智慧城市是将数字孪生技术与城市智能化相结合的新兴概念,旨在通过实时数字模拟城市运行,优化城市管理与服务,创造更智能、高效、可持续的城市环境。 在智慧城市中,数字孪生技术可以实时收集、分析城市各个方面的数据&…...
【置顶帖】关于博主/关于博客/博客大事记
关于博主 ● 信息安全从业者 ● 注册信息安全认证专家资质 ● CSDN认证业界专家、安全博客专家 、全栈安全领域优质创作者 ● 中国信通院【2021-GOLF IT新治理领导力论坛】演讲嘉宾 ● 安世加【2021-EISS企业信息安全峰会-上海】演讲嘉宾 ● CSDN【2022-隐私计算论坛】演讲嘉宾…...
华为数通方向HCIP-DataCom H12-821题库(单选题:01-20)
第01题 下面关于OSPF邻居关系和邻接关系描述正确的是 A、邻接关系由 OSPF的 DD 报文维护 B、OSPF 路由器在交换 Hello 报文之前必须建立邻接关系 C、邻居关系是从邻接关系中选出的为了交换路由信息而形成的关系 D、并非所有的邻居关系都可以成为邻接关系 答案:D 解析…...
Java【手撕双指针】LeetCode 11. “盛水最多的容器“, 图文详解思路分析 + 代码
文章目录 前言一、盛水最多的容器1, 题目2, 思路分析3, 代码展示 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: 📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 📗 Java数据结构: 顺序表…...
vue3——递归组件的使用
该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>,且包含 typescript 的基础用法 一、使用场景 递归组件 的使用场景,如 无限级的菜单 ,接下来就用菜单的例子来学习 二、具体使用 先把菜单的基础内容写出来再说 父…...
【爬虫练习之glidedsky】爬虫-基础1
题目 链接 爬虫的目标很简单,就是拿到想要的数据。 这里有一个网站,里面有一些数字。把这些数字的总和,输入到答案框里面,即可通过本关。 思路 找到调用接口 分析response 代码实现 import re import requestsurl http://www.…...
计算机视觉入门 1)卷积分类器
目录 一、卷积分类器(The Convolutional Classifer)训练分类器 二、【代码示例】汽车卡车图片分类器步骤1. 导入数据步骤2 - 定义预训练模型步骤3 - 连接头部步骤4 - 训练模型 一、卷积分类器(The Convolutional Classifer) 卷积…...
SpringBoot 配置优先级
一般而言,SpringBoot支持配置文件进行配置,即在resources下的application.properties或application.yml。 关于配置优先级而言, application.properties>application.yml>application.yaml 另外JAVA程序程序还支持java系统配置和命令行…...
钢筋的形变屈服度测量
钢筋力学性能检测方法与检测报告《建筑材料检测技术》杨丛慧 建筑形变检测锚点,本身无实质内容。 建筑的倾角和形变检测方法,工程测量学,李章树 毫米级的卫星位移定位 挠度检测。 赛格事件:SHM-Structural Health Monitoring…...
【BASH】回顾与知识点梳理(三十七)
【BASH】回顾与知识点梳理 三十七 三十七. 基础系统设定与备份策略37.1 系统基本设定网络设定 (手动设定与 DHCP 自动取得)手动设定 IP 网络参数(nmcli)自动取得 IP 参数(dhcp)修改主机名(hostnamectl) 37.2 日期与时间设定时区的显示与设定时间的调整用 ntpdate 手动网络校时 …...
禅城网站建设费用/怎样开网站
Material Theme提供了一下功能:1、系统widgets可以设置调色板2、系统widgets的触摸反馈3、Activity过渡动画你可以根据你品牌的色彩来定义Material Theme,可以使用Material Theme的色彩为status bar、action bar着色。参考下图。系统Widgets有新的设计和…...
it外包wordpress模板/信息流广告投放公司
CentOS 6.5 系统配置nfs服务 了解一下什么是nfs 网络文件系统(Network File System,NFS),一种使用于分散式文件系统的协议,由升阳公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能…...
wordpress 手动采集/网络市场调研
默认类和实例的内置属性一致 class A:"""测试类"""name "maotai"def __init__(self):self.age 22## 打印类的属性 for i in dir(A):print(i)## 打印实例的属性 for i in dir(A):print(i)print(A.__doc__) # 测试类 __class__ __dela…...
兰亭集势的网站平台建设/域名解析查询工具
为了让jmeter的结果报告更有内容,往往需要提供测试时服务器端的性能数据 我知道的有几种方式1. jmeter的perfmon插件 我只知道它可以在GUI下运行,如果非GUI是什么效果?同时它也需要在服务器上安装agent2. nmon监控数据 运行…...
河源和平县建设局网站/免费企业网站建设流程
在控制台转到目录D:\Program Files\DevExpress 2010.2\Components\Tools下,执行下面的命令:ToolboxCreator.exe /ini:toolboxcreator.ini 如果要删除:ToolboxCreator.exe /ini:toolboxcreator.ini /remove 我的操作:1.打开D:\Prog…...
新疆建设厅招投标网站/sem 优化价格
原文:http://coolketang.com/staticPhotoshop/5a98d5fd0b61607bf6cc2ebe.html 1. 本节课程将为您演示,如何全选图片,和取消对图片的选择。依次点击[选择 > 全部]命令,全部选择示例图片。 2. 3. 然后点击键盘上的快捷键…...