Blage's Coding Blage's Coding
Home
算法
  • 手写Spring
  • SSM
  • SpringBoot
  • JavaWeb
  • JAVA基础
  • 容器
  • Netty

    • IO模型
    • Netty初级
    • Netty原理
  • JVM
  • JUC
  • Redis基础
  • 源码分析
  • 实战应用
  • 单机缓存
  • MySQL

    • 基础部分
    • 实战与处理方案
    • 面试
  • ORM框架

    • Mybatis
    • Mybatis_Plus
  • SpringCloudAlibaba
  • MQ消息队列
  • Nginx
  • Elasticsearch
  • Gateway
  • Xxl-job
  • Feign
  • Eureka
  • 面试
  • 工具
  • 项目
  • 关于
🌏本站
🧸GitHub (opens new window)
Home
算法
  • 手写Spring
  • SSM
  • SpringBoot
  • JavaWeb
  • JAVA基础
  • 容器
  • Netty

    • IO模型
    • Netty初级
    • Netty原理
  • JVM
  • JUC
  • Redis基础
  • 源码分析
  • 实战应用
  • 单机缓存
  • MySQL

    • 基础部分
    • 实战与处理方案
    • 面试
  • ORM框架

    • Mybatis
    • Mybatis_Plus
  • SpringCloudAlibaba
  • MQ消息队列
  • Nginx
  • Elasticsearch
  • Gateway
  • Xxl-job
  • Feign
  • Eureka
  • 面试
  • 工具
  • 项目
  • 关于
🌏本站
🧸GitHub (opens new window)
  • JAVA基础

    • JAVA基础
    • equals与==
      • 数值比较
        • 1.基本类型比较
        • 2.包装类型和基本类型比较
        • 3.包装类型与包装类型进行比较
    • 异步任务
  • 集合容器

  • Netty

  • JVM

  • JUC

  • Java
  • JAVA基础
phan
2023-07-16
目录

equals与==

# equals与==

# 数值比较

# 1.基本类型比较

结论:基本类型之间直接使用”==“进行数值之间相等的判断。

int a=4,b=4;
System.out.println(a==b);  //true
1
2

# 2.包装类型和基本类型比较

结论:包装类型与基本类型可以使用”==“进行数值比较,也可以使用包装类型equals方法进行数值比较。

当使用==进行比较时,包装类型对象会先拆箱解包转化为基本类型,然后再和基本类型进行比较。

int a=4;
Integer b=4;
System.out.println(a==b);  //true
1
2
3

# 3.包装类型与包装类型进行比较

结论:包装类型之间,数值比较使用equals方法,内存地址比较使用"=="实现。

处于性能考虑,Java会在包装类里面构造一个常量池作为缓存,即享元模式。当使用Integer构造对象时,有两种方式:

  • Integer a=new Integer(4):直接通过构造函数创建对象,显然分配的内存地址肯定不同。
  • Intager a=4:Integer的常量池IntegerCache默认大小范围为[-128,127],因此创建对象时valueof方法会看数值有没有超出范围:
    • 如果没超出那么直接返回常量池中的对象。因此下面第一个例子中a和b实际上是同一块内存地址。
    • 如果超出了常量池的范围,那么直接通过构造函数创建新的对象。因此c和d通过new Integer创建对象,显然不是同一块内存地址。
Integer a=4,b=4;
Integer c=99999,d=99999;
System.out.println(a==b);  //true
System.out.println(c==d);  //false
1
2
3
4

ps:卡死一次周赛导致没有提交。

编辑 (opens new window)
#JAVA基础
上次更新: 2023/12/15, 15:49:57
JAVA基础
异步任务

← JAVA基础 异步任务→

Theme by Vdoing | Copyright © 2023-2024 blageCoder
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式