当前位置: 首页 > news >正文

System类、BigDecimal类、Calendar类 用法详解

System类

System 类是Java中的一个核心类,提供了访问与系统相关的一些属性和方法。它包含了一些静态字段和静态方法,用于获取系统的标准输入、标准输出、标准错误流,以及加载动态链接库和系统属性等功能。

常见方法:

public static void exit(int status)

  • 作用:终止当前正在运行的 Java 虚拟机。

  • 参数:status 整数值,用来指示程序的终止状态。

  • 不同的整数值通常被约定俗成地用于表示不同的意义或状态,虽然 Java 规范并未强制规定其具体含义。一般来说:

    1. 非零状态码:通常用来表示程序非正常退出,表示可能发生了错误或异常情况。不同的非零状态码可以表示不同的错误类型或级别。

    2. 零状态码:通常用来表示程序正常退出,表示程序顺利完成了其任务且没有发生异常。

    具体使用时,状态码的具体含义可以由程序员自定义约定,也可以遵循某些标准或操作系统约定的状态码含义。在实际应用中,状态码的具体选择应该根据程序的具体需求和上下文来决定,以便于后续的程序调试、错误处理或者状态监控。

    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 中用于精确表示任意精度的十进制数的类。它提供了高精度的算术运算,适用于需要精确计算或者不希望因为浮点数计算带来的精度问题而影响计算结果的场景。

常见方法格式及用法

  1. 构造方法

    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());
  2. 加法操作

    public BigDecimal add(BigDecimal augend)

    返回值: 加法结果的 BigDecimal 对象。

    参数: augend - 要加的 BigDecimal 对象。

    功能: 将当前 BigDecimal 对象与参数相加。

    BigDecimal sum = num1.add(num2);
  3. 减法操作

    public BigDecimal subtract(BigDecimal subtrahend)

    返回值: 减法结果的 BigDecimal 对象。

    参数: subtrahend - 要减的 BigDecimal 对象。

    功能: 从当前 BigDecimal 对象中减去参数。

    BigDecimal difference = num1.subtract(num2);
  4. 乘法操作

    public BigDecimal multiply(BigDecimal multiplicand)

    返回值: 乘法结果的 BigDecimal 对象。

    参数: multiplicand - 要乘的 BigDecimal 对象。

    功能: 将当前 BigDecimal 对象与参数相乘。

    BigDecimal product = num1.multiply(num2);
  5. 除法操作

    public BigDecimal divide(BigDecimal divisor, RoundingMode roundingMode)

    返回值: 除法结果的 BigDecimal 对象。

     

    参数

    divisor - 要除的 BigDecimal 对象。

    roundingMode - 舍入模式,用于确定如何处理除法的结果。

    功能: 将当前 BigDecimal 对象除以参数。

    BigDecimal quotient = num1.divide(num2, RoundingMode.HALF_UP);
  6. 比较操作

    public int compareTo(BigDecimal val)

    返回值

    负整数,如果当前对象小于参数。

     零,如果当前对象等于参数。

    正整数,如果当前对象大于参数。

    参数: val - 要比较的 BigDecimal 对象。

    功能: 将当前 BigDecimal 与参数进行比较。

    int comparison = num1.compareTo(num2);

  7. 转换为字符串

    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 类的常见方法可以帮助我们获取和设置日期信息、进行日期计算等操作。

常见方法格式

下面是一些常见方法的格式,包括权限修饰符、返回值类型、方法名和参数类型。

  1. 获取和设置日期字段

    • 权限 返回值 方法名(参数类型)

      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); // 增加一周

  2. 比较和判断

    • 权限 返回值 方法名(参数类型)

      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");
      }

  3. 格式化和输出

    • 权限 返回值 方法名(参数类型)

      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");}}
}

http://www.lryc.cn/news/416250.html

相关文章:

  • SQLTools插件下载与使用说明
  • 【人脸识别】数据集宝藏合集,速看!
  • mysql操作(进阶)
  • [000-01-025].第07节:WorkBench
  • JavaScript - 变量声明(let、const 和其他)
  • AC800PEC PC D231 3BHE025541R0101控制模块面价
  • 2024年3款免费录屏软件,你的电脑桌面上缺哪一个?
  • Python爬虫新手指南及简单实战
  • 如何有效开展产业链招商?
  • 爬虫中使用多进程、多线程的混合方式遇到的数据丢失问题
  • 多云应用安全平台RegData利用MongoDB简化数据控制和合规流程
  • VUE实现TAB切换不同页面
  • C++ 80行 极简扫雷
  • 常见VPS服务器附加组件一览
  • Electron 使用Electron-build 进行打包
  • Springboot+Websocket+Security+Vue 实现弹幕推送功能
  • LangChain之网络爬虫
  • VueRouter 相关信息
  • [环境配置]Pycharm:Failed to start [PowerShell.exe]
  • 搜狗爬虫(www.sogou.com)IP及UA,真实采集数据
  • 北京青蓝智慧科技ITSS服务经理:长安链ChainBridge“链桥”问世 加速国家级区块链网络互联互通
  • 音视频入门基础:WAV专题(5)——FFmpeg源码中解码WAV Header的实现
  • 爬虫:csv存储:写入和读取
  • Opencv-绘制几何图形
  • ElasticSearch安装与集群部署
  • 盘点12款企业常用源代码加密软件,源代码防泄密很重要!
  • 文件上传和下载
  • 机械学习—零基础学习日志(高数22——泰勒公式理解深化)
  • Java | Leetcode Java题解之第318题最大单词长度乘积
  • 科普文:JUC系列之多线程门闩同步器Condition的使用和源码解读