java中的Double与double的区别

本文介绍了Java中Double类与double基本类型之间的自动装箱和拆箱特性,通过一个面向对象的方法实例展示了如何利用Double的null特性增强程序健壮性。不仅限于Double,所有基本类型与其对应的类都能进行相互赋值。示例代码演示了如何从double数组中找到最大值,并在可能的空数组情况下返回适当的提示。
摘要由CSDN通过智能技术生成

今天是学习Java基础的第三天,发现了一个小问题,就是Double和double是能相互赋值和转换的,对于之前没有接触过Java的我来说,碰到这种类与基本数据类型能相互赋值的问题是感到不可思议的,我查阅了相关文档,然后了解到,在jdk1.5以后都可进行相互转换,因为Double内部帮我们实现了自动装箱(Double -> double)和自动拆箱(Double -> double)的功能,因此我们可以直接使用Double来接受double的数据.

 

我们并似乎想不到其会应用到哪些场景,那么我们就来引入下面的小例子,这是一个面向对象方法练习题:求double数组中的最大值,其实我们没必要想下面这样写,但是考虑到在实际开发中程序的健壮性,我们就可以利用到Double.

其实也就是利用Double能为null的特性增强程序的健壮性.

public class Main {
    public static void main(String[] args) {
        double[] num = {1.2, 2.3, 5.6, -7.8, 9.7};

        Deal d = new Deal();
        Double res = d.getmax(num);

        if(Double != null) System.out.println(res);
        else System.out.println("传入的数组不能为空!");
    }
}

class Deal {
    public Double getmax(double[] num) {
        if(num == null) return null; // 数组是引用类型,可以传入null

        int len = num.length;
        if(len < 1) return null;

        double max = num[0];
        for(int i = 1; i < len; i++) {
            if(num[i] > max) max = num[i];
        }

        return max;
    }
}

 

 


其实不只是Double,任何基本类型与其对于的类都可相互赋值.

如float与Float:

public class Main {
    public static void main(String[] args) {
        float num = (float)1.23; // 1.23默认为double类型
        Float res = num;
        System.out.println(res);
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值