常见对象:各类的概述和使用

本文详细介绍了Java中几个常用对象的功能及使用方法,包括BigDecimal确保浮点数运算精度、Date和SimpleDateFormat处理日期与时间、Calendar操作日历字段,以及Random生成随机数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

14.1常见对象:BigDecimal类的概述和方法使用

A:BigDecimal的概述
由于在运算的时候,float类型和double很容易丢失精度,演示案例。
所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
不可变的、任意精度的有符号十进制数。
B:构造方法
public BigDecimal(String val)
C:成员方法
public BigDecimal add(BigDecimal augend)//加
public BigDecimal subtract(BigDecimal subtrahend)//减
public BigDecimal multiply(BigDecimal multiplicand)//乘
public BigDecimal divide(BigDecimal divisor)//除法
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)//scale 小数点后面保留几位
// roundingMode 取舍模式 比如四舍五入
案例演示:
如果对精度要求比较高,就可以使用 BigDecimal

public class MyTest {
    public static void main(String[] args) {
        double a=10;
        double b=3;
        System.out.println(a/b);
        BigDecimal aNum = new BigDecimal(a);
        BigDecimal bNum = new BigDecimal(b);
        BigDecimal add = aNum.add(bNum); //加
        System.out.println(add);
        BigDecimal subtract = aNum.subtract(bNum); //减
        System.out.println(subtract);
        BigDecimal multiply = aNum.multiply(bNum);
        System.out.println(multiply); //乘
        //不能整除时,我们要规定,保留位数,以及取舍方式
        BigDecimal divide = aNum.divide(bNum,30,BigDecimal.ROUND_CEILING);
        System.out.println(divide);
        System.out.println(1==0.1528965487899525455);
    }
}

14.2常见对象:Date类的概述和方法使用

A:Date类的概述
类 Date 表示特定的瞬间,精确到毫秒。
B:构造方法
public Date()
public Date(long date) //把一个long类型的毫秒值转换成一个日期对象
C:成员方法

public long getTime(): 获取一个日期对象对象毫秒值
public void setTime(long time): 给一个日期对象设置上指定的毫秒值 例:date.setTime(1000 * 60 * 60) ;、
小结:Date ---- long 的转换
调用getTime方法

long — Date 的转换
可以使用构造方法
setTime(long time)

14.3常见对象:SimpleDateFormat类实现日期和字符串的相互转换

SimpleDateFormat:

可以把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象。

构造方法:

  • public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象
  • public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象

成员方法:

public String format(Date date): 把一个日期对象格式化成一个字符串
public Date parse(String dateStr): 把一个日期字符串解析成一个日期对象 注意要以指定格式解析

组成规则

y 年
M 月
d 天
H 时
m 分
s 秒

14.4常见对象:Calendar类的概述和获取日期的方法

A:成员方法
public void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
public final void set(int year,int month,int date) 设置日历时间 年月日
案例演示:

public class CalendarDemo {
    public static void main(String[] args) {
        Calendar instance = Calendar.getInstance();
        //给相应的日历字段,加上会减去相应的量  减去可以填数负数
        instance.add(Calendar.YEAR,-1);
        int i = instance.get(Calendar.YEAR);
        System.out.println(i);

        instance.add(Calendar.DAY_OF_MONTH,2);
        System.out.println(instance.get(Calendar.DAY_OF_MONTH));

        //直接设置日期 set()
        Calendar instance1 = Calendar.getInstance();
        instance1.set(2000,6,19,14,20,20);
        int i1 = instance1.get(Calendar.YEAR);
        System.out.println(i1);

    }
}

    1.  Calendar 类是一个抽象类,它为特定瞬间与一组诸如
    2.YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段
    3. (例如获得下星期的日期)提供了一些方法。
    4. 瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
     5.该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected。

      6通过一个静态方法,获取该类的对象



如何实现Date与long相互转换?

Long类型的时间转换为date,可以通过SimpleDateFormat对象对格式进行定义,然后创建一个Date类型的对象封装时间,再通过SimpleDateFormat对象的format(date)方法就可以获取指定的日期格式了。

如何实现Date与String相互转换

需要给SimpleDateFormat指定格式,如yyyy-MM-dd,然后使用SimpleDateFormat的parse方法就可以实现将String类型转为Date类型了

常见对象(Calendar类的add()和set()方法)

A:成员方法
public void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
public final void set(int year,int month,int date) 设置日历时间 年月日
案例演示

public class RandomDemo {
    public static void main(String[] args) {
        //生成随机数据的类
        // 此类的实例用于生成伪随机数流。此类使用 48 位的种子,
        Random random = new Random();
        //生成一些随机整数
       byte[] bytes= new byte[10];
        for (int i = 0; i < 100; i++) {
            //int num = random.nextInt(); //如果没有传入一个范围,生成的随机数就是int的范围
           //int num = random.nextInt(100); //范围就是 0-99 包含0和99
          //  int num = random.nextInt(100)+1;

          //  double num = random.nextDouble();
          //  boolean b = random.nextBoolean();
            //随机一些byte范围的数,填到这个数组中
            random.nextBytes(bytes);
            System.out.println(Arrays.toString(bytes));
        }
    }
}

public class RandomDemo2 {
    public static void main(String[] args) {
        //Random( long seed)
        //使用单个 long 种子创建一个新的随机数生成器。
        //给定了种子,每次生成的随机数都是一样的
        Random random = new Random(1L);
        for (int i = 0; i < 10; i++) {
            int i1 = random.nextInt(10);
            System.out.println(i1);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值