Java與Kotlin中“==“、“====“區別

一、Kotlin 中的區別

  1. ==(雙等于) - 結構相等性檢查

    • 比較兩個對象的內容是否相等(相當于調用?equals()?方法)。

    • 自動處理?null?安全:a == b?等價于?a?.equals(b) ?: (b === null)

    • 示例

      val s1 = "Hello"
      val s2 = String("Hello".toCharArray())println(s1 == s2)  // true(內容相同)
  2. ===(三等于) - 引用相等性檢查

    • 比較兩個變量是否指向同一個內存地址(同一個對象實例)。

    • 示例

      val s1 = "Hello"
      val s2 = String("Hello".toCharArray())println(s1 === s2)  // false(不同對象實例)

二、Java 中的區別

  1. ==(雙等于) - 引用相等性檢查

    • 引用類型:比較兩個對象的內存地址(是否同一個實例)。

    • 基本類型(如?int,?char):比較值是否相等。

    • 示例

      String s1 = "Hello";
      String s2 = new String("Hello");System.out.println(s1 == s2);  // false(不同對象實例)
  2. 沒有?===?操作符

    • Java 不支持?===,內容相等需顯式調用?equals()?方法:

      System.out.println(s1.equals(s2));  // true(內容相同)


三、關鍵區別總結

操作符KotlinJava
==內容相等(自動調用?equals()引用類型:內存地址;基本類型:值
===內存地址相等(引用相同)不存在(用?==?替代)

使用場景

  • Kotlin

    • 需要比較內容時用?==(如字符串、集合)。

    • 需要檢查是否為同一對象時用?===(如單例、枚舉)。

  • Java

    • 比較內容時必須用?equals()

    • 檢查內存地址用?==


四、示例對比

// Kotlin
val a: String? = "Hi"
val b: String? = "Hi"
val c: String? = String("Hi".toCharArray())println(a == b)   // true(內容相同)
println(a === b)  // true(編譯器優化,指向同一常量)
println(a === c)  // false(不同對象)
// Java
String a = "Hi";
String b = "Hi";
String c = new String("Hi");System.out.println(a.equals(b)); // true(內容相同)
System.out.println(a == b);      // true(常量池同一對象)
System.out.println(a == c);      // false(不同對象)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92012.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92012.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92012.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

接口自動化測試框架-AIM

3天精通Postman接口測試,全套項目實戰教程!!最近在做公司項目的自動化接口測試,在現有幾個小框架的基礎上,反復研究和實踐,搭建了新的測試框架。利用業余時間,把框架總結了下來。 AIM框架介紹 …

Orange的運維學習日記--28.Linux邏輯卷詳解

Orange的運維學習日記–28.Linux邏輯卷詳解 文章目錄Orange的運維學習日記--28.Linux邏輯卷詳解為什么使用 LVM基本概念創建物理卷創建卷組創建邏輯卷創建文件系統并掛載清理 LVM 對象擴展與縮減邏輯卷擴展 LV縮減 LV調整文件系統大小擴展 XFS 文件系統擴展 EXT4 文件系統縮減 …

AI大模型學習三十三、HeyGem.ai 服務端(ubuntu)docker 安裝 /客戶端(win)分離部署

一、說明服務端安裝官方安裝客戶端在windows 上安裝解決分離問題利用samba實現共享,我是在局域網訪問,安裝道理可以在非局域網訪問重新弄了一塊顯卡,所以驅動也重新裝下二、環境準備(base) mucunax58:~$ lsb_release -a No LSB modules are …

AI在安全方面的十個應用場景

人工智能(AI)正在重塑安全領域的“游戲規則”,把“被動防御”變成“主動狩獵”。綜合當前主流實踐與最新案例,可將其應用歸納為以下十大場景:威脅檢測與狩獵利用機器學習/深度學習模型對網絡流量、終端行為和云端日志進…

Android --- Bug調查經驗記錄

文章目錄1.布局中Pag不顯示的問題2.數據庫降級問題3.RecycleView 列表滑動卡頓1.布局中Pag不顯示的問題 在調查一個pag不顯示的問題,整體邏輯沒有問題,但是就是不顯示 pag不顯示的根本原因大概有文件找不到,一個是路徑問題,一個是…

【C語言】深度剖析指針(三):回調機制、通用排序與數組指針邏輯

文章目錄一、回調函數:通過函數指針實現靈活調用1.1 什么是回調函數?1.2 回調函數的實際應用:簡化計算器代碼二、qsort函數2.1 qsort函數的參數說明2.2 使用qsort排序整型數據2.3 使用qsort排序結構體數據示例:學生信息排序2.4 qs…

sql調優總結

sql調優 線上發現部分sql查詢時間過長。使用explain觀察是否命中表的索引。未命中索引,使用 TABLE add index 語句添加索引。 除此之外,單個字段命中聯合索引的情況也會導致查詢變慢 針對多個字段的查詢可添加聯合索引。 總結如下慢sql的原因&#xff1a…

如何在nuxt項目中使用axios進行網絡請求?

在 Nuxt 項目中使用 Axios 進行網絡請求有兩種常用方式:一是直接安裝 Axios 并全局配置,二是使用 Nuxt 官方推薦的 nuxtjs/axios 模塊(更便捷)。以下是詳細步驟: 方法一:使用官方推薦的 nuxtjs/axios 模塊&…

Unity 實現手機端和電腦項目在局域網內通信

電腦端啟動后自動廣播自身存在,手機端啟動后監聽廣播并發現服務器。發現后自動建立 UDP 連接,雙方可互發消息。內置心跳檢測,網絡中斷時會自動檢測并提示斷開using UnityEngine; using System.Net; using System.Net.Sockets; using System.T…

C++_389_定義一個禁用了賦值操作、具有線程同步資源保護的結構體,作為一些回調函數的參數,方便獲取響應操作的結果等信息

/* 回調參數。注意:此結構體禁用了賦值,會編譯報錯 */struct API_CALLBACK_T{public:API_CALLBACK_T(){eRet = e_fail;bWait = true;

uniapp基礎 (一)

目錄 UniApp 是什么?有什么優勢 跨平臺高效開發 Vue.js 技術生態 插件生態豐富 漸進式開發支持 UniApp 跨平臺兼容的實現原理 編譯時轉 運行時適配層 條件編譯 性能優化策略 1.預編譯模 2.原生組件混合渲 3.分包加載 UniApp 的生命周期鉤子有哪些&#x…

【圖像算法 - 10】進階入門:改進 YOLO11 安全帽檢測的關鍵參數與場景適配

一、項目背景與需求 視頻全文介紹 【圖像算法 - 10】進階入門:改進 YOLO11 安全帽檢測的關鍵參數與場景適配今天我們使用深度學習來訓練一個安全帽檢測系統,基于YOLO11的安全帽檢測系統。我們使用了兩萬張圖片的數據集訓練了這次的基于YOLO11的安全帽檢…

【C 學習】04.1-類型轉換浮點數

“知道做不到就是不知道”一、類型轉換1.自動類型轉換:當運算符(常見、-、*、/、%)兩邊出現不一致的類型時,編譯器會自動轉換成較大的(范圍更大)類型。從小到大:char-short-int-long-long long;…

基于反事實對比學習的魯棒圖像表征|文獻速遞-醫學影像算法文獻分享

Title題目Robust image representations with counterfactual contrastive learning基于反事實對比學習的魯棒圖像表征01文獻速遞介紹醫學影像中的對比學習已成為利用未標記數據的有效策略。這種自監督學習方法已被證明能顯著提升模型跨領域偏移的泛化能力,并減少訓…

機器學習(5):樸素貝葉斯分類算法

貝葉斯的核心思想就是,誰的概率高就歸為哪一類。貝葉斯推論P(A):先驗概率。即在B事件發生之前,我們對A事件概率的一個判斷。P(A|B):后驗概率。即在B事件發生之后,我們對A事件概率的重新評估。P(B|A)/P(B):可能性函數。…

Docker 容器內進行 frp 內網穿透

開始之前需要有一臺可以進行公網訪問的服務器 下載安裝 frp 這個直接到 github 官網就可以下載了 點擊Releases 就可以查看到可以下載的源,根據自己電腦的型號進行選擇就好了。 linux服務器上下載 如果是在linux的服務器上的話可以直接通過wget進行下載 例如&a…

復制網頁文字到Word、WPS文字?選中后直接拖放

要把網頁、PDF或其他應用中的文字內容復制到Word、WPS文字、記事本等,不一定要先復制、再粘貼,也可以選中文字后直接拖動到目標位置即可。多次操作,可以把窗口并排再拖動。如果你經常需要在不同應用之間引用文字,不妨試一試。操作…

Starrocks中的 Query Profile以及explain analyze及trace命令中的區別

背景 本文基于Starrocks 3.5.5 現有公司因為業務的不同,可能會更加關系單個SQL 的RT,因為如果一個SQL的RT比較大的話,影響的就是這個業務,從而影響收入,所以對于這方面我們就比較關心, 而最近在基于Starro…

網絡 —— 筆記本(主機)、主機虛擬機(Windows、Ubuntu)、手機(筆記本熱點),三者進行相互ping通

背景介紹最近在筆記本電腦上的虛擬機(Ubuntu、Windows Server搭配)上部署了"WD"開源手游服務器(舊版本),手機連接上了筆記本電腦開啟的WIFI熱點,同時手機上安裝了"WD"手游客戶端。于是首先得保證網絡相互暢通才能玩游戲,…

裸露土堆識別準確率↑32%:陌訊多模態融合算法在生態監測的實戰解析

原創聲明本文為原創技術解析文章,涉及技術參數及架構描述均參考《陌訊技術白皮書》,禁止任何形式的轉載與抄襲。一、行業痛點:裸露土堆識別的現實挑戰在生態環境保護、建筑工地監管等場景中,裸露土堆的精準識別是遏制揚塵污染、防…