当前位置: 首页 > 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.zskr.cn/news/11155.html

相关文章:

  • 【CV】GAN代码解析: networks.py
  • 9-24
  • 代码随想录算法训练营第八天 |344.反转字符串、541. 反转字符串II、LCR 122. 路径加密
  • 9/24
  • 完整教程:【力扣LeetCode】 1413_逐步求和得到正数的最小值
  • 测试脚本
  • 实用指南:python+django/flask的宠物救助及领养系统javaweb
  • glTF/glb:您需要知道的一切,怎么免费获取下载
  • 第五章 运算符、表达式和语句
  • 学习问题日记-2
  • Are English people good or bad
  • Lampiao靶场渗透wp-脏牛提权
  • 社交网络架构。京东场景题:亿级用户100Wqps 社交关系如何设计?如何查看我的关注,关注我的?
  • go 面试题
  • 什么是sql 慢日志。哈罗面试:没开sql慢日志,怎么发现慢 sql?
  • 2025.9.24
  • StarRocks GitHub 工作流程
  • 【Selenium】消除Selenium报错:ChromeDriver与Chrome浏览器版本不匹配
  • Java第二次实验
  • 英语_阅读
  • 《新概念英语》在线朗读,单句点读,随时随地在线学习。
  • React学习教程,从入门到精通,React Router 语法知识点及使用手段详解(28)
  • 读书笔记:OpenPBR 规范(1)
  • CentOS 7 下 Kubernetes 集群搭建与配置指南
  • 【HD300I 】基于昇腾 310P 的全国产化智能计算模组
  • 【Origin】数据分析后的图,提取到外部图表
  • WPF Prism register interface and implemented interface service
  • 人机共生:AI如何重塑招聘全流程,赋能HR战略升级
  • hot100题简单题
  • 注意事项