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如何进行数据的比较内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring-cloud 服务发现与消费(以ribbon为例)

    Spring-cloud 服务发现与消费(以ribbon为例)

    这篇文章主要介绍了Spring-cloud 服务发现与消费(以ribbon为例),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Java如何使用HTTPclient访问url获得数据

    Java如何使用HTTPclient访问url获得数据

    这篇文章主要介绍了Java使用HTTPclient访问url获得数据的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Spring Cloud Sleuth 和 Zipkin 进行分布式跟踪使用小结

    Spring Cloud Sleuth 和 Zipkin 进行分布式跟踪使用小结

    分布式跟踪是一种机制,我们可以使用它跟踪整个分布式系统中的特定请求,分布式跟踪允许您跟踪分布式系统中的请求,本文给大家介绍Spring Cloud Sleuth 和 Zipkin 进行分布式跟踪使用小结,感兴趣的朋友一起看看吧
    2022-03-03
  • 详解JavaEE 使用 Redis 数据库进行内容缓存和高访问负载

    详解JavaEE 使用 Redis 数据库进行内容缓存和高访问负载

    本篇文章主要介绍了JavaEE 使用 Redis 数据库进行内容缓存和高访问负载,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • Java对象创建的几种方式总结

    Java对象创建的几种方式总结

    本文详细介绍了Java中创建对象的五种方法,包括使用new关键字、Class的newInstance()方法、Constructor的newInstance()方法、克隆以及反序列化,同时讨论了这些方式是否调用了构造器以及创建对象的条件,文章还提供了示例代码进行演示,需要的朋友可以参考下
    2025-02-02
  • 实现一个规则引擎的可视化具体方案

    实现一个规则引擎的可视化具体方案

    项目原因需要用到规则引擎,但是发现大部分不可以自由的进行规则定义,通过不断尝试变换关键字在搜索引擎搜索,最终在stackoverflow找到了一个探讨这个问题的帖子,特此将帖子中提到的方案分享一下,如果你跟我一样在研究同样的问题,也许对你有用
    2021-04-04
  • Mybatis实体类和表映射问题(推荐)

    Mybatis实体类和表映射问题(推荐)

    在项目开发中我们经常会遇到表中的字段名和表对应实体类的属性名称不一定都是完全相同的。下面小编给大家介绍下这种情况下如何解决字段名与实体类属性名不相同的冲突问题。下面小编给大家带来了Mybatis实体类和表映射的解决方法,小伙伴们一起学习吧
    2016-09-09
  • SpringBoot DataSource数据源实现自动配置流程详解

    SpringBoot DataSource数据源实现自动配置流程详解

    这篇文章主要介绍了SpringBoot DataSource数据源实现自动配置流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-10-10
  • java实现题目以及选项乱序的方法实例

    java实现题目以及选项乱序的方法实例

    这篇文章主要给大家介绍了关于java实现题目以及选项乱序的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 聊聊Java中是什么方法导致的线程阻塞

    聊聊Java中是什么方法导致的线程阻塞

    这篇文章主要介绍了聊聊Java中是什么方法导致的线程阻塞,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论