zoukankan      html  css  js  c++  java
  • 两个Integer类型数值比较大小的坑

    先看一段代码:

     1 Integer number = 127;
     2 Integer number2 = 127;
     3 Integer number3 = 128;
     4 Integer number4 = 128;
     5 if (number == number2) {
     6     System.out.println("Integer 取值在-128~127中,用'=='比较两个值是否相等可行");
     7 }else{
     8     System.out.println("Integer 取值在-128~127中,用'=='比较两个值是否相等不可行");
     9 }
    10 if (number3 == number4) {
    11     System.out.println("Integer 取值在-128~127中,用'=='比较两个值是否相等可行");
    12 }else{
    13     System.out.println("Integer 取值在-128~127中,用'=='比较两个值是否相等不可行");
    14 }
    15 
    16 // 输出结果:
    17 // Integer 取值在-128~127中,用'=='比较两个值是否相等可行
    18 // Integer 取值在-128~127中,用'=='比较两个值是否相等不可行

    由此可以看出 , Integer取值在-128~127范围内时 , 可以用  "==" 比较是否相等 . 因为 "==" 比较的对象地址的引用 , 又因为在这个范围内, 是在常量池中取的值 , 并没有重新的new对象 , 所以是可以用 "==" 比较.
    当大于这个范围后就会重新new对象 , 所以比较两个Integer是否相等就需要用compareTo .

     1 Integer number5 = 888888;
     2 Integer number6 = 888888;
     3 if (number5.compareTo(number6) == 0) {
     4     System.out.println("Integer 大于-128~127这个范围,用'compareTo'比较两个值相等可行");
     5 } else {
     6     System.out.println("Integer 大于-128~127这个范围,用'compareTo'比较两个值相等不可行");
     7 }
     8 
     9 // 输出结果:
    10 // Integer 大于-128~127这个范围,用'compareTo'比较两个值相等可行

    如果一个int类型和一个Integer类型比较是否相等, 可以用 "=="

     1 int number7 = 126;
     2 Integer number8 = 126;
     3 
     4 if (number7 == number8.intValue()) {
     5     System.out.println("一个int类型和一个Integer类型用'=='比较是否相等,可行");
     6 } else {
     7     System.out.println("一个int类型和一个Integer类型用'=='比较是否相等,不可行");
     8 }
     9 
    10 // 输出结果:
    11 // 一个int类型和一个Integer类型用'=='比较是否相等,可行

    总结: 
      1. 如果两个int 类型的数值比较相等可以直接使用  "==" .

      2. 如果两个Integer类型的数值比较相等在-128~127之间的可以用 "=="比较 , 否则用compareTo比较 .

      3. 如果一个int类型和一个Integer类型数值比较是否相等可以用 "==" . 

  • 相关阅读:
    阿里巴巴开源的Asynchronous I/O Design and Implementation
    maven 出现错误 -source 1.5 中不支持 diamond 运算符
    Kafka设计解析(六)- Kafka高性能架构之道
    Kafka设计解析(七)- Kafka Stream
    flink如何动态支持依赖jar包提交
    Hbase技术笔记
    windows环境:idea或者eclipse指定用户名操作hadoop集群
    HBase源码实战:BufferedMutator
    HBase工具:如何查看HBase的HFile
    HBase源码实战:CreateRandomStoreFile
  • 原文地址:https://www.cnblogs.com/lsy-bolg/p/13299267.html
Copyright © 2011-2022 走看看