java进行数据的比较的实例方法

 更新时间:2021年04月09日 08:18:29   作者:小妮浅浅  
在本篇文章里小编给大家整理的是一篇关于java进行数据的比较的实例方法,有需要的朋友们可以学习下。

1、说明

比较基本类型==,比较对象值推荐equals或compareTo。

首先,Java中的数据存储在JVM中,而基本类型的数据存储在JVM的局部变量表中,也可以理解为所谓的“栈”。

可以通过==来比较int这一类型的值是否相等,但请注意,int和Integer是完全不同的,一种是基本类型,另一种是对象。

2、实例

比较基础类型值

int i = 11111111;
int j = 11111111;
System.out.println(i == j);

实例扩展:

java数值比较

import org.junit.Test;

public class NumberCompare {

    /**
     * 数值比较,以Float为例
     */
    @Test
    public void testName1() throws Exception {

        // Float装箱
        Float f = 12.1f; // 等同:Float f = new Float(12.1);
        Float f2 = 12.1f;

        /*
         * 结果全是false
         */
        System.out.println(f.equals(12.1));
        System.out.println(f == 12.1);
        System.out.println(f.floatValue() == 12.1);
        System.out.println(f == f2);

        /*
         * 为什么结果全是false?
         * --------------------------------
         * 1. equals()方法    
         *         如果是引用类型间的比较:
         *             equals()方法的参数可以传入任何对象。但是如果[传入参数的数据类型]和[方法所属对象的类型]不一致,就会直接返回false。
         *             只有[传入参数的数据类型]和[方法所属对象的类型]一致时,才会继续对值进行比较。
         * 
         *         如果是引用类型和基本类型进行比较:
         *             如果传入的参数时基本类型,会对参数自动装箱,变成引用类型间的比较。
         * 
         * 2. == 用于引用类型的比较和基本类型的比较。
         *         如果是引用类型间的比较:
         *             直接比较内存地址,不同就返回false.不会对具体数值进行比较。
         * 
         *         如果是基本类型间的比较:
         *             类型相同时,才会比较。类型不同时,会返回false,或直接编译不通过。
         * 
         *         如果是引用类型和基本类型进行比较:
         *             会将引用类型拆箱,转成基本类型后,在进行基本类型间的比较。
         * 
         * 总结:
         *         数据类型相同的值,才有比较的意义。
         *         数据类型不同的值,不要放在一起比较。如果一定要比较,先转换成相同的类型再比较。
         */

        /*
         * 换个写法,结果全是true
         */

        // equals() : 引用类型间的比较
        System.out.println(f.equals(f2));
        System.out.println(f.equals(new Float(12.1)));

        // equals() : 引用类型和基本类型的比较
        System.out.println(f.equals(12.1f)); // 会先将基本类型装箱

        // == : 基本类型间的比较
        System.out.println(f.floatValue() == 12.1f);

        // == : 引用类型和基本类型的比较
        System.out.println(f == 12.1f); // 会先将引用类型拆箱

        float f3 = 12.1f;
        System.out.println(f == f3);
    }
}

到此这篇关于java进行数据的比较的实例方法的文章就介绍到这了,更多相关java如何进行数据的比较内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Mock测试Spring MVC接口过程解析

    基于Mock测试Spring MVC接口过程解析

    这篇文章主要介绍了基于Mock测试Spring MVC接口过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • SpringBoot项目docker容器部署实现

    SpringBoot项目docker容器部署实现

    本文主要介绍了SpringBoot项目docker容器部署实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • java高并发的并发级别详解

    java高并发的并发级别详解

    这篇文章主要介绍了java高并发的并发级别,内容十分丰富,在这里分享给大家,需要的朋友可以参考,希望能够给你带来帮助
    2021-10-10
  • java实现批量导入Excel表格数据到数据库

    java实现批量导入Excel表格数据到数据库

    这篇文章主要为大家详细介绍了java实现批量导入Excel表格数据到数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • dom4j创建和解析xml文档的实现方法

    dom4j创建和解析xml文档的实现方法

    下面小编就为大家带来一篇dom4j创建和解析xml文档的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Java创建表格实例详解

    Java创建表格实例详解

    这篇文章主要介绍了Java创建表格实例详解,需要的朋友可以参考下。
    2017-09-09
  • 解决window.location.href之后session丢失的问题

    解决window.location.href之后session丢失的问题

    今天小编就为大家分享一篇关于解决window.location.href之后session丢失的问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Spring5新功能@Nullable注解及函数式注册对象

    Spring5新功能@Nullable注解及函数式注册对象

    这篇文章主要为大家介绍了Spring5新功能详解@Nullable注解及函数式注册对象,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • IDEA项目重命名的操作

    IDEA项目重命名的操作

    这篇文章主要介绍了IDEA项目重命名的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Dubbo+zookeeper搭配分布式服务的过程详解

    Dubbo+zookeeper搭配分布式服务的过程详解

    Dubbo作为分布式架构比较后的框架,同时也是比较容易入手的框架,适合作为分布式的入手框架,下面是简单的搭建过程,对Dubbo+zookeeper分布式服务搭建过程感兴趣的朋友一起看看吧
    2022-04-04

最新评论