《Java经典入门指南》课后习题及答案Chapter9

本文是《Java经典入门指南》课后习题解析,涉及Math类的用途,探讨装箱拆箱的必要性,以及为何不应使用float和double进行货币计算,并提出替代方案。此外,还提供了一个生成指定范围内随机整数的RangeRandomGenerator类实现。
摘要由CSDN通过智能技术生成

《Java经典入门指南》课后习题及答案Chapter9

1.使用java.lang.Math类的静态方法可以完成什么工作?

answer: Math类是一个实用工具类,它包含的方法可以完成数学运算的工作。比较重要的方法列示如下:

方法说明
abs返回指定的double数的绝对值
acos返回一个角度的反余弦,范围为0.0~pi
asin返回一个角度的反正弦,范围为-pi/2~pi/2
atan返回一个角度的反正切,范围为-pi/2~pi/2
cos返回一个角度的余弦
exp返回欧拉数e的制定double次幂的值
log返回1个double的自然对数(以e为底)
log10返回1个double的对数(以10为底)
max返回两个double值中较大的一个
min返回两个double值中较小的一个
random返回一个大于或等于0.0且小于1.0的伪随机double数
round将浮点数舍入到最近的整数

2.在Java中,既然装箱与拆箱可自动完成,包装器类还有用吗?

answer:java为面向对象编程。在Java当中不可以定义基本类型对象,但是为了将基本类型视为对象处理,并且连接相关方法,Java为每个基本类型提供了包装类,比如int类型数值的包装类为Integer,boolean型数值的包装类为Boolean。通过这样的方式,便可以把基本类型转换成对象来处理。

3.解释为什么不能用double值或float值来执行货币计算。应该用什么来代替?

answer:float和double值都是用二进制位表示的,因此这两种基本类型值是不精确的。
代替方法:(1)使用int或long计算美分(而不是美元或欧元),并将结果转换为美元或欧元。
(2)使用java.math.BigDecimal类。
(3)使用JSR 354参考实现。

4.编写一个名为RangeRandomGenerator的类,它可以在实例化类时指定两个整数,然后生成这两个整数之间的随机整数。

answer:

import java.util.concurrent.ThreadLocalRandom;

public class RangeRandomGenerator {
    int a;
    int b;
    public RangeRandomGenerator(int a,int b){//有参构造
        this.a=a;
        this.b=b;
        ThreadLocalRandom r = ThreadLocalRandom.current();//调用ThreadLocalRandom类的current方法。
        System.out.println(r.nextInt(a,b));
    }

    public static void main(String[] args) {
        RangeRandomGenerator rr=new RangeRandomGenerator(1,10);//在main方法中,实例化时指定两个整数。
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值