Java中 == 号与equals()方法区别详解,零基础入门到精通,收藏这篇就够了

== 号与equals()方法区别这个问题在面试中经常被问到,如果你了解的不透彻,很容易被问蒙。下面我们来一起看看吧。

1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean
他们之间的比较,应用双等号(==),比较的是他们的值。

2.引用数据类型(类)
当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。 JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。

//Object 类中equals方法 代码 public boolean equals(Object obj) { return (this == obj); } //String 类中equals方法 代码 public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = length(); if (n == anotherString.length()) { int i = 0; while (n-- != 0) { if (charAt(i) != anotherString.charAt(i)) return false; i++; } return true; } } return false; }

对于引用数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号()进行比较的,所以比较后的结果跟双等号()的结果相同。

来看几个例子

String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2)); System.out.println(str1 == str2); 根据上面知识,第一个是true,第二个是false, 那继续看下面的例子: String s1 = "abc"; String s2 = "abc"; System.out.println(s1.equals(s2)); System.out.println(s1 == s2);

这次的结果和上面的是一样的吗?
答案:第一个是true,第二个是true
为什么第二个会是true呢?
这就涉及到了内存中的常量池,常量池属于方法区的一部分,当运行到s1创建对象时,如果常量池中没有,就在常量池中创建一个对象”abc”,第二次创建的时候,就直接使用,所以两次创建的对象其实是同一个对象,它们的地址值相等。

再看一个例子:

String a = new String("ab"); // a 为一个引用 String b = new String("ab"); // b为另一个引用,对象的内容一样 String aa = "ab"; // 放在常量池中 String bb = "ab"; // 从常量池中查找 if (aa == bb) // true System.out.println("aa==bb"); if (a == b) // false,非同一对象 System.out.println("a==b"); if (a.equals(b)) // true System.out.println("aEQb"); if (42 == 42.0) { // true System.out.println("true"); }

总结:
基本类型:== 比较 的是他们的值
引用类型:== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。

equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。

Java开发的就业市场正在经历结构性调整,竞争日益激烈

传统纯业务开发岗位(如仅完成增删改查业务的后端工程师)的需求,特别是入门级岗位,正显著萎缩。随着企业技术需求升级,市场对Java人才的要求已从通用技能转向了更深入的领域经验(如云原生、微服务)或前沿的AI集成能力。这也导致岗位竞争加剧,在一、二线城市,求职者不仅面临技术内卷,还需应对学历与项目经验的高门槛。

大模型为核心的AI领域正展现出前所未有的就业热度与人才红利

2025年,AI相关新发岗位数量同比激增543%,单月增幅最高超过11倍,大模型算法工程师位居热门岗位前列。行业顶尖人才的供需严重失衡,议价能力极强,跳槽薪资涨幅可达30%-50%。值得注意的是,市场并非单纯青睐算法研究员,而是急需能将大模型能力落地于复杂业务系统的工程人才。这使得具备企业级架构思维和复杂系统整合经验的Java工程师,在向“Java+大模型”复合人才转型时拥有独特优势,成为企业竞相争夺的对象,其薪资天花板也远高于传统Java岗位。

说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。

结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?”

先给出最直接的答案:一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!掌握AI能力的Java工程师比纯Java岗要吃香的多。

即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地!大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇!

如何学习AGI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

四、大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1158932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端必看:dhtml.js到底是什么?还有用吗?

对于经常进行网页开发的前端开发者来说,dhtml.js是一个可能会遇到的术语。它并非指代一个单一的、官方的JavaScript库,而是一个历史性的概念,通常泛指用于实现动态HTML效果的客户端脚本代码集合。理解它的具体所指,有助于我们厘清…

如何搜索研究领域最新的论文

刚开始做科研的时候,我一直以为: 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到,真正消耗精力的不是“搜不到”,而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后,学术检…

Linux环境下部署带有JAR包的Java项目_linux 去外部下jar,零基础入门到精通,收藏这篇就够了

在Linux操作系统上部署Java项目并运行起来需要一些特定的步骤。本文将详细介绍如何在Linux上部署带有JAR包的Java项目。 确保Java环境已安装 在开始之前,确保您的Linux系统已经安装了Java环境。您可以通过在终端中运行以下命令来检查Java是否已安装: …

win32鼠标钩子是什么?教你实现全局鼠标监控

win32鼠标钩子是Windows平台下一种强大的编程技术,它允许开发者拦截并处理系统中的鼠标事件。这项技术能实现诸如全局鼠标监控、自定义手势操作、自动化脚本等功能,对于开发高级桌面应用或辅助工具至关重要。理解其工作原理和正确使用方法,可…

Spring Boot 4.0 新功能全解析:Java 开发者的又一个大版本来了

Spring Boot 4.0 新功能全解析:Java 开发者的又一个大版本来了 各位 Java 码农小伙伴们,听说了嘛?Spring Boot 4.0 正式发布啦!这是个超级大的版本更新,Spring 团队这次也是下了狠功夫,直接把 2024 年发布…

AI驱动的软件测试:从自动化框架到智能决策系统

在软件测试领域,AI正在引发前所未有的变革。传统测试面临三大核心痛点:回归测试效率低下(据Gartner统计,传统QA团队70%时间用于重复执行回归用例)、缺陷检测滞后(平均缺陷修复成本随阶段推移增加10倍&#…

AI驱动的软件测试革新:从自动化框架到智能决策系统

在软件测试领域,人工智能正在引发一场静默革命。传统测试方法面临三大核心痛点:70%的测试时间消耗在重复执行上(Gartner 2024报告)、高达45%的缺陷漏检率(IEEE Software期刊),以及A/B测试资源浪…

扩展运算符 vs Rest 参数:前端新人别再傻傻分不清了!

扩展运算符 vs Rest 参数:前端新人别再傻傻分不清了!扩展运算符 vs Rest 参数:前端新人别再傻傻分不清了!先甩一句狠话:... 这三个点,就是前端界的“薛定谔的猫”JavaScript 里的 ... 到底在搞什么鬼扩展运…

AI测试技术白皮书:从自动化到智能化的演进之路

目录 引言:AI重塑软件质量保障第一章:AI驱动自动化测试框架 1.1 概念:从“脚本回放”到“意图理解”1.2 核心技术:自愈测试与视觉识别1.3 代码实现:智能元素定位器1.4 流程图:AI辅助测试生命周期1.5 Promp…

基于nodejs和vue框架的理发店会员管理系统设计与实现thinkphp

目录理发店会员管理系统设计与实现摘要系统架构功能模块技术实现创新点总结项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作理发店会员管理系统设计与实现摘要 该系统基于Node.js、Vue.js和ThinkPHP框架开…

AiPy 是什么?你的第一个本地 AI 牛马来啦

AiPy 是什么?你的第一个本地 AI 牛马来啦 在以前,我对 AI Agent 的认知大多停留在 GPT、DeepSeek、Grok 这类对话型大模型上。它们擅长回答问题、提供建议,但如果需要完成具体任务,比如操作本地文件、分析数据或自动化工作流&…

互联网政务平台如何解决微信公众号公式导入?

富文本编辑器集成文档处理与图片上传功能开发全纪实 作为一名独立开发网站的技术人员,近期我正全身心投入到富文本编辑器功能的优化中,重点攻克粘贴 Word 图片以及多种文档导入时图片自动上传和样式保留的难题。以下是我在这一过程中的详细记录。 一、…

基于nodejs和vue框架的物业维修服务预约平台thinkphp

目录基于Node.js和Vue框架的物业维修服务预约平台(ThinkPHP摘要)项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作基于Node.js和Vue框架的物业维修服务预约平台(ThinkPHP摘…

Gitee 2026全景解读:为何中国开发者正加速拥抱国产代码托管平台

Gitee 2026全景解读:为何中国开发者正加速拥抱国产代码托管平台 在中国数字化转型浪潮中,代码托管平台已成为开发者不可或缺的基础设施。Gitee作为本土代码托管服务的领军者,正以其独特的本土化优势重构中国开发者的协作生态。最新数据显示&…

系统找不到mfcm120u.dll文件 无法启动怎么修复? 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

高性能计算集群监控数据集:多维度系统资源利用与网络性能分析-科学研究、数据分析、企业应用-CPU使用率、内存占用、磁盘状态、网络延迟、数据包丢失率、网络吞吐量-集群资源优化、性能瓶颈识别、异常检测算法

高性能计算集群监控数据集分析报告 引言与背景 在当今数字化时代,高性能计算集群的稳定运行对于科学研究、数据分析和企业应用至关重要。集群资源的有效监控和管理直接影响系统性能、应用响应时间和整体用户体验。本数据集提供了一个高性能计算集群在25天运行周期…

msvcp90.dll文件丢失找不到 如何修复? 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

系统找不到msvcp110.dll文件 如何修复? 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

如何通过单北斗形变监测提升水库的安全性?

单北斗形变监测技术在水库安全管理中展现出显著作用。通过高精度实时监测,能够及时掌握水库及周边的形变情况,确保可以在隐患发生的初期及时响应。这项技术的核心在于单北斗GNSS系统,具备稳定性和准确性,支持多点同步监测。针对复…

Java 是企业级应用开发的核心语言之一,广泛应用于大型系统、后端服务和分布式架构中

Java 是企业级应用开发的核心语言之一,广泛应用于大型系统、后端服务和分布式架构中。以下是针对“Java(企业级开发核心)”的详细学习路径解析与实战建议:1. 基础语法 变量与数据类型:掌握基本数据类型(int…