System类、BigDecimal类、Calendar类 用法详解
System类
System类是Java中的一个核心类,提供了访问与系统相关的一些属性和方法。它包含了一些静态字段和静态方法,用于获取系统的标准输入、标准输出、标准错误流,以及加载动态链接库和系统属性等功能。
常见方法:
public static void exit(int status)
作用:终止当前正在运行的 Java 虚拟机。
参数:
status整数值,用来指示程序的终止状态。不同的整数值通常被约定俗成地用于表示不同的意义或状态,虽然 Java 规范并未强制规定其具体含义。一般来说:
非零状态码:通常用来表示程序非正常退出,表示可能发生了错误或异常情况。不同的非零状态码可以表示不同的错误类型或级别。
零状态码:通常用来表示程序正常退出,表示程序顺利完成了其任务且没有发生异常。
具体使用时,状态码的具体含义可以由程序员自定义约定,也可以遵循某些标准或操作系统约定的状态码含义。在实际应用中,状态码的具体选择应该根据程序的具体需求和上下文来决定,以便于后续的程序调试、错误处理或者状态监控。
System.exit(0); // 正常退出程序
public static long currentTimeMillis()
作用:返回当前时间与1970年1月1日午夜(GMT)之间以毫秒为单位的时间差。
返回值:当前时间的毫秒表示。
long currentTime = System.currentTimeMillis(); System.out.println("Current time in milliseconds: " + currentTime);
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
作用:将数组中指定的数据复制到另一个数组中。
参数:
src:源数组。
srcPos:源数组中的起始位置。
dest:目标数组。
destPos:目标数组中的起始位置。
length:要复制的元素数量。int[] srcArray = {1, 2, 3, 4, 5}; int[] destArray = new int[5]; System.arraycopy(srcArray, 0, destArray, 0, 5);
public static String getProperty(String key)
作用:获取系统属性。
参数:
key属性名。返回值:属性值,以字符串形式返回。
String javaVersion = System.getProperty("java.version"); System.out.println("Java version: " + javaVersion);
public static void gc()
作用:请求 Java 虚拟机进行垃圾回收。
System.gc();
示例
import java.util.Arrays;
import java.util.Scanner;
public class SystemDemo {public static void main(String[] args) {//Scanner 是 Java 中的一个类,用于获取用户输入。System.in 标准输入流Scanner scanner = new Scanner(System.in);//调用垃圾回收的方法,但不知道什么时候回收
// System.gc();//终止虚拟机 一般不会用
// System.exit(1);//从1970.1.1 00:00:00 到目前时间的毫秒数用于测量时间间隔或者为时间戳生成唯一标识for (int i = 0; i < 15; i++) {long l = System.currentTimeMillis();System.out.println(l);}
int ints[] = {1,2,3,4,5};int ints1[] = new int[6];System.arraycopy(ints,1,ints1,1,4);//使用流操作将 `ints1` 数组的每个元素输出到控制台。Arrays.stream(ints1).forEach(System.out::println);}
}
BigDecimal类
BigDecimal类位于java.math包中,是 Java 中用于精确表示任意精度的十进制数的类。它提供了高精度的算术运算,适用于需要精确计算或者不希望因为浮点数计算带来的精度问题而影响计算结果的场景。
常见方法格式及用法
-
构造方法
public BigDecimal(String val)参数:
val- 要表示的数值的字符串形式。功能: 根据给定的字符串创建一个
BigDecimal对象。BigDecimal num1 = new BigDecimal("123.45"); BigDecimal num2 = new BigDecimal("678.90"); //也可以用下面的方法创建 Double a = 2.0; Double b = 1.1; //创建BigDecimal对象,一定要用字符串,不能用double,否则精度依然会丢失 BigDecimal bigDecimal = new BigDecimal(a.toString()); BigDecimal bigDecimal1 = new BigDecimal(b.toString()); -
加法操作
public BigDecimal add(BigDecimal augend)返回值: 加法结果的
BigDecimal对象。参数:
augend- 要加的BigDecimal对象。功能: 将当前
BigDecimal对象与参数相加。BigDecimal sum = num1.add(num2); -
减法操作
public BigDecimal subtract(BigDecimal subtrahend)返回值: 减法结果的
BigDecimal对象。参数:
subtrahend- 要减的BigDecimal对象。功能: 从当前
BigDecimal对象中减去参数。BigDecimal difference = num1.subtract(num2); -
乘法操作
public BigDecimal multiply(BigDecimal multiplicand)返回值: 乘法结果的
BigDecimal对象。参数:
multiplicand- 要乘的BigDecimal对象。功能: 将当前
BigDecimal对象与参数相乘。BigDecimal product = num1.multiply(num2); -
除法操作
public BigDecimal divide(BigDecimal divisor, RoundingMode roundingMode)返回值: 除法结果的
BigDecimal对象。参数:
divisor- 要除的BigDecimal对象。roundingMode- 舍入模式,用于确定如何处理除法的结果。功能: 将当前
BigDecimal对象除以参数。BigDecimal quotient = num1.divide(num2, RoundingMode.HALF_UP); -
比较操作
public int compareTo(BigDecimal val)返回值:
负整数,如果当前对象小于参数。
零,如果当前对象等于参数。
正整数,如果当前对象大于参数。
参数:
val- 要比较的BigDecimal对象。功能: 将当前
BigDecimal与参数进行比较。int comparison = num1.compareTo(num2); -
转换为字符串
public String toString()返回值: 表示当前
BigDecimal对象值的字符串。功能: 将
BigDecimal对象转换为字符串形式。String num1Str = num1.toString();
示例
import java.math.BigDecimal;
import java.math.RoundingMode;
public class BigDecimalExample {public static void main(String[] args) {BigDecimal num1 = new BigDecimal("123.45");BigDecimal num2 = new BigDecimal("678.90");// 加法BigDecimal sum = num1.add(num2);System.out.println("Sum: " + sum);// 减法BigDecimal difference = num1.subtract(num2);System.out.println("Difference: " + difference);// 乘法BigDecimal product = num1.multiply(num2);System.out.println("Product: " + product);// 除法BigDecimal quotient = num1.divide(num2, RoundingMode.HALF_UP);System.out.println("Quotient: " + quotient);// 比较int comparison = num1.compareTo(num2);System.out.println("Comparison result: " + comparison);// 转换为字符串String num1Str = num1.toString();System.out.println("num1 as String: " + num1Str);}
}
Calendar类
在Java中,
Calendar类位于java.util包中,是一个抽象类,用于处理日期和时间的操作。虽然它是抽象类,但可以通过静态工厂方法
getInstance()获得Calendar类的实例,该方法根据当前时区和语言环境返回一个适当类型的日历对象。Calendar类允许我们进行日期字段(如年、月、日)的操作,还可以进行日期之间的计算和比较。Calendar类的常见方法可以帮助我们获取和设置日期信息、进行日期计算等操作。
常见方法格式
下面是一些常见方法的格式,包括权限修饰符、返回值类型、方法名和参数类型。
-
获取和设置日期字段
-
权限 返回值 方法名(参数类型)
public int get(int field):获取给定字段的值,如年、月、日等。public void set(int field, int value):设置给定字段的值为指定值。public void add(int field, int amount):根据日历规则,将指定字段增加或减少指定的时间量。public void roll(int field, boolean up):增加或减少指定字段的值,而不影响更大的字段。示例用法:
Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH); // 注意:月份从 0 开始 cal.set(Calendar.DAY_OF_MONTH, 1); // 设置日期为本月的第一天 cal.add(Calendar.DAY_OF_MONTH, 7); // 增加一周
-
-
比较和判断
-
权限 返回值 方法名(参数类型)
public boolean before(Object when):比较当前日历是否在指定日历之前。public boolean after(Object when):比较当前日历是否在指定日历之后。public boolean equals(Object obj):比较两个日历对象是否表示相同的日期时间。示例用法:
Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal2.add(Calendar.DAY_OF_MONTH, 1); if (cal1.before(cal2)) {System.out.println("cal1 is before cal2"); }
-
-
格式化和输出
-
权限 返回值 方法名(参数类型)
public String toString():返回表示此 Calendar 的字符串描述。public void setTime(Date date):使用给定的 Date 设置此 Calendar 的时间。public Date getTime():返回表示此 Calendar 的时间值(作为 Date 对象)。示例用法:
Calendar cal = Calendar.getInstance(); System.out.println("Current date and time: " + cal.getTime());
-
示例
import java.util.Calendar;
public class CalendarExample {public static void main(String[] args) {Calendar cal = Calendar.getInstance();// 获取当前日期和时间System.out.println("Current date and time: " + cal.getTime());// 获取年、月、日int year = cal.get(Calendar.YEAR);int month = cal.get(Calendar.MONTH); // 月份从 0 开始int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);System.out.println("Year: " + year + ", Month: " + (month + 1) + ", Day: " + dayOfMonth);// 设置日期为本月第一天cal.set(Calendar.DAY_OF_MONTH, 1);System.out.println("First day of the month: " + cal.getTime());// 增加一周cal.add(Calendar.DAY_OF_MONTH, 7);System.out.println("After adding a week: " + cal.getTime());// 比较两个 Calendar 对象Calendar anotherCal = Calendar.getInstance();anotherCal.add(Calendar.DAY_OF_MONTH, 1);if (cal.before(anotherCal)) {System.out.println("cal is before anotherCal");}}
}
相关文章:
System类、BigDecimal类、Calendar类 用法详解
System类 System 类是Java中的一个核心类,提供了访问与系统相关的一些属性和方法。它包含了一些静态字段和静态方法,用于获取系统的标准输入、标准输出、标准错误流,以及加载动态链接库和系统属性等功能。 常见方法: public stat…...
SQLTools插件下载与使用说明
SQLTools是一个专注于SQL优化与管理的plsql developer插件,目的是把一些常用的SQL收集在一起,方便快速解决问题,提高工作效率。 当在SQL或PACKAGE窗口,或者选中表时,会有两个右键菜单: SQLTools聚焦在SQL方面…...
【人脸识别】数据集宝藏合集,速看!
本文将为您介绍10个经典、热门的数据集,希望对您在选择适合的数据集时有所帮助。 1 26,090张人脸肤质缺陷采集数据【数据堂】 发布方: 数据堂(北京)科技股份有限公司 发布时间: 2021 简介: 26,090张人脸…...
mysql操作(进阶)
1.数据库约束 数据库自动对数据的合法性进行校验检查的一系列机制,目的是为了保证数据库中能够避免被插入或者修改一些非法数据。 (1)mysql中提供了以下的约束: a.NOT NULL:指定某列不能为null b.UNIQUE࿱…...
[000-01-025].第07节:WorkBench
我的后端学习大纲 我的Drools学习大纲 8. WorkBench 8.1 WorkBench简介: 1.WorkBench是KIE组件中的元素,也称为KIE-WB,是Drools-WB与JBPM-WB的结合体。它是一个可视化的规则编辑器。WorkBench其实就是一个war包,安装到tomcat中就可以运行。…...
JavaScript - 变量声明(let、const 和其他)
目录 一、引言 1. let 的作用 2. const 的作用 3. let 与 const 的选择 4. let 和 const 的性能 5. var, let, const 的对比 6. 常见误区 二、其他变量定义 1. var 关键字 2. 全局对象属性 3. 使用 IIFE(立即调用函数表达式) 4. ES6 模块 总结 …...
AC800PEC PC D231 3BHE025541R0101控制模块面价
AC800PEC PC D231 3BHE025541R0101控制模块面价 AC800PEC PC D231 3BHE025541R0101控制模块面价 AC800PEC PC D231 3BHE025541R0101控制模块面价 AC800PEC PC D231 3BHE025541R0101控制模块引脚线 AC800PEC PC D231 3BHE025541R0101控制模块说明书 AC800PEC PC D231 3BHE0…...
2024年3款免费录屏软件,你的电脑桌面上缺哪一个?
现在,不管是上网课、在家工作,还是拍视频,录屏软件都变得越来越重要了。想做个教学视频、录个操作指南,或者录个游戏的高光时刻,好的录屏软件都能帮你轻松搞定。这篇文章就是要聊聊免费录屏软件一般都有啥功能…...
Python爬虫新手指南及简单实战
网络爬虫是自动化获取网络信息的高效工具,Python因其强大的库支持和简洁的语法成为编写网络爬虫的首选语言。本教程将通过一个具体的案例(基于Microsoft Edge浏览器的简单爬取),指导你使用Python实现一个完整的网络爬虫࿰…...
如何有效开展产业链招商?
产业链招商是一种以产业大数据为依托、以产业链图谱为基础、以产业链分析为核心、以完善产业链结构为目标的招商引资方式。相比于传统招商模式,产业链招商比拼的并不是土地、政策优惠,而是以产业链分析为核心,诊断区域产业链结构及长短板&…...
爬虫中使用多进程、多线程的混合方式遇到的数据丢失问题
项目场景: 网络爬虫项目,主要实现多进程、多线程方式快速缓存网页资源到MongoDB,并解析网页数据,将信息写入到csv文件中。 问题描述 在单独使用多线程的过程中,是没有问题的,比如这个爬虫示例是爬取豆瓣电…...
多云应用安全平台RegData利用MongoDB简化数据控制和合规流程
在高度规范化市场中,为了保障数据安全,企业可能需要部署一系列繁琐且成本高昂的IT基础设施系统。随着各项数据安全保护措施的出台,企业需要遵守的法规数量越多,尤其是跨越多个地域的企业,其IT基础设施就会越复杂。如今…...
VUE实现TAB切换不同页面
VUE实现TAB切换不同页面 实现效果 资源准备 ReceiveOrderList, TodoListMulti, SignList 这三个页面就是需要切换的页面 首页代码 <template><div><el-tabs v-model"activeTab" type"card" tab-click"handleTabClick"><…...
C++ 80行 极简扫雷
一共5346个字符,MinGW编译通过(强烈不建议写这种代码!!!) 压行规则:一行不超过80个字符 代码: #include<windows.h> #include<stdio.h> #include<time.h> #def…...
常见VPS服务器附加组件一览
网络主机行业竞争非常激烈,因此主机服务提供商竭尽全力为客户提供完整的解决方案,其中包含构建和管理在线项目所需的一切。但客户通常有特定需求,因此需要不同的附加组件。在管理自己的网络服务器时尤其如此。 今天,我们将介绍您…...
Electron 使用Electron-build 进行打包
看完下面两篇就可以完成! 基于vue3vite的web项目改为Electron桌面应用(一)_vue3转electron-CSDN博客 将web项目打包成electron桌面端教程(二)vue3vitets_vue3 打包桌面端-CSDN博客 打包报错 1. 首先确定依赖包 npm …...
Springboot+Websocket+Security+Vue 实现弹幕推送功能
后端部分 (Spring Boot) 1. 创建一个 Spring Boot 项目 创建一个新的 Spring Boot 项目并添加以下依赖: <dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId…...
LangChain之网络爬虫
网络爬虫 概述 网络爬虫是LangChain中的一项关键功能,允许用户自动从互联网上收集信息。这项功能对于研究和数据收集尤其有价值,因为它可以大幅减少手动搜索和信息整理的工作量。 从网络收集内容有几个主要组件: Search搜索:使用…...
VueRouter 相关信息
VueRouter 是Vue.js官方路由插件,与Vue.js深度集成,用于构建单页面应用。构建的单页面是基于路由和组件,路由设定访问路径,将路径与组件进行映射。VueRouter有两中模式 :hash 和 history ,默认是hash模式。…...
[环境配置]Pycharm:Failed to start [PowerShell.exe]
解决方法,点Local旁边的 号,点击Command Prompt,即可在Pycharm中呼出控制台。 如果要修改Command Prompt的启动时访问的cmd.exe的路径,可以去Settings→Tools→Terminal中,修改Shell Path实现,改为cmd.exe…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...
