当前位置: 首页 > news >正文

java_string比较中的细节

string比较中为什么不用“==”而是选择用“equals()语法”

两种string字符串生成方式

  1. 直接使用字符串字面赋值
    如:String s1 = "zhoujiale";
    此类型中,计算机在“串池(位于常量池中)”中创造空间“zhoujiale”
  2. 利用new的方式创建字符串
    如:String s2=new string("zhoujiale");

“==”和“equals()语法”的区别

  1. ==
    在两种不同空间的方式下创造的字符串时,哪怕字符串本身字母相同,本质上还是两种不同的字符串
    所以上述的“s1”和“s2”在“==”时判定为false
    2.“equals()语法”
    equals() 方法可以确保无论字符串对象位于内存的哪个区域(常量池或堆)
    只要内容相同,就会返回 “true”

本质:为什么写代码时用“equals()语法”

  • 在做项目时,如“用户登录”,需要用到scanner类
    scanner类生成字符串的底层逻辑是在“堆”里生成的
  • 我们一般在定义字符串是用第一种方式,即String s1 = "zhoujiale";是在“常量池”定义的
  • 代码用“==”时,哪怕字符串输入正确,因为本质不同,结果依旧是 false
  • 代码用“equals()语法”时,只比较字符串内容是否正确,不需要考虑本质定义问题
    字符串输入正确,true
    字符串输入错误,false
http://www.jsqmd.com/news/3128/

相关文章:

  • 扫描线学习笔记
  • go-reids
  • AI完美声音克隆及情绪控制,与真人无异,Lark下载介绍
  • WSL,适用于 Linux 的 Windows 子系统
  • 学财税大信息应用,需要考CPA/税务师吗?
  • 【CV】GAN代码解析: networks.py
  • 9-24
  • APM v4.1.1 | 免费音乐听歌B站油管音乐播放器 - 指南
  • 代码随想录算法训练营第八天 |344.反转字符串、541. 反转字符串II、LCR 122. 路径加密
  • 9/24
  • 安装与卸载JDK8
  • 完整教程:【力扣LeetCode】 1413_逐步求和得到正数的最小值
  • mysql慢sql配置
  • Linux zdb -C (zfs Debugger调试器)
  • 从零开始实现简易版Netty(八) MyNetty 实现Small规格的池化内存分配
  • 新节点加入k8s集群命令查看 - 详解
  • 测试脚本
  • 自动化测试脚本
  • 解题报告-字符串(str.*)
  • WPF Datagrid loaded 79M items in mvvm , Microsoft.Extensions.DependencyInjection
  • 实用指南:python+django/flask的宠物救助及领养系统javaweb
  • Linux 系统中的 /dev/disk/by-id/目录作用详解
  • glTF/glb:您需要知道的一切,怎么免费获取下载
  • 3.HTTP/HTTPS:报文格式、技巧、状态码、缓存、SSLTLS握手
  • keepalived服务器
  • 外部 Tomcat 部署详细 - 实践
  • 20231326《密码系统设计》第三周预习报告
  • FortiGate连接中国联通SDWAN
  • 第五章 运算符、表达式和语句
  • 【Golang】素材设计模式