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…...
小说下载器终极指南:一站式解决100+网站小说保存难题
小说下载器终极指南:一站式解决100网站小说保存难题 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 在数字阅读时代,你是否曾因小说突然下架、网站404或网络中…...
Office RibbonX Editor:让Office界面定制变得像搭积木一样简单
Office RibbonX Editor:让Office界面定制变得像搭积木一样简单 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbon…...
2026智慧校园规划必读:如何在预算吃紧下选到高性价比方案
✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…...
Unity UI交互进阶:手把手教你打造一个支持单击、双击、长按的万能按钮组件
Unity UI交互进阶:手把手教你打造一个支持单击、双击、长按的万能按钮组件在游戏开发中,UI交互的流畅性和多样性直接影响玩家的游戏体验。想象一下,当你在开发一个RPG游戏的背包系统时,需要实现道具的单击查看详情、双击快速使用、…...
如何快速集成 react-native-bottom-sheet-behavior:5 分钟搞定 Android 底部弹窗
如何快速集成 react-native-bottom-sheet-behavior:5 分钟搞定 Android 底部弹窗 【免费下载链接】react-native-bottom-sheet-behavior react-native wrapper for android BottomSheetBehavior 项目地址: https://gitcode.com/gh_mirrors/re/react-native-bottom…...
通过用量看板分析团队大模型API消耗发现优化调用策略的机会
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过用量看板分析团队大模型API消耗发现优化调用策略的机会 作为团队的技术负责人,确保大模型API调用在满足业务需求的…...
别再死记公式了!用Python手写一个卷积层,彻底搞懂CNN里的‘卷’是怎么算的
用Python手写卷积层:从零理解CNN的"卷"运算 当你第一次看到卷积神经网络(CNN)的数学公式时,那些复杂的符号和下标是否让你望而却步?作为计算机视觉领域的基石,CNN的核心在于理解卷积运算的本质。本文将带你用NumPy从零实…...
Unity/Unreal开发者必看:用手机和陀螺仪实验,5分钟搞懂万向节死锁(附避坑指南)
Unity/Unreal开发者实战指南:用手机陀螺仪5分钟破解万向节死锁当你调试第一人称视角时,角色突然卡在墙面无法转动;当无人机模型在俯冲90度时失控乱转——这些很可能都是万向节死锁(Gimbal Lock)在作祟。作为实时3D开发中最恼人的数学陷阱之一…...
WMPFDebugger与微信开发者工具对比:哪个更适合你的调试需求?
WMPFDebugger与微信开发者工具对比:哪个更适合你的调试需求? 【免费下载链接】WMPFDebugger Yet another WeChat miniapp debugger on Windows 项目地址: https://gitcode.com/gh_mirrors/wm/WMPFDebugger 在Windows平台的微信小程序开发中&#…...
基于Jetson Nano与JNEEG Shield的脑电信号采集与边缘AI处理实战
1. 项目概述:低成本脑机接口的硬件基石 如果你对脑机接口、生物信号处理或者边缘AI应用感兴趣,但又苦于专业设备动辄数万甚至数十万的高昂门槛,那么JNEEG Shield的出现,可能会为你打开一扇新的大门。这是一个专为NVIDIA Jetson Na…...
