java類型比較_java 基本數據類型 ==和equals()比較

1.基本類型的存儲

Java 8種基本類型都是存儲在堆棧中,例:int i = 1;String str = "hello world";也是存儲在堆棧中。

new基本類型的包裝器類型和new String()都是存儲在堆內存中。例Integer i = new Integer(1);String str = new String("hello world");

2.==和equels()比較的含義

1.==是比較對象的內存地址,基本類型就是比較值

2.java對象的equals()方法都是繼承Object.equals(Object o)方法的。比較的內容其實就是使用了“==”比較對象內存地址。

public boolean equals(Object obj) {

return (this == obj);

}

java8種基本類型包裝器類和String類都重寫了equals()方法,先比較類型在比較值,例如Long.equals(Object obj)

public boolean equals(Object obj) {

if (obj instanceof Long) {

return value == ((Long)obj).longValue();

}

return false;

}

3.實例==和equels()比較

int int3 = 3;

Integer integer3 = new Integer(3);

Integer integer3_2 = new Integer(3);

Integer integer3_3 = 3;

Integer integer3_4 = 3;

Integer integer321 = 321;

Integer integer321_2 = 321;

int int321 = 321;

int int321_2 = 321;

Long long3 = 3l;

System.out.println(integer3==integer3_2); //false #1

System.out.println(integer3_3==integer3_4); //true #2

System.out.println(integer3==int3); //true #3

System.out.println(integer3_3.equals(integer3_4)); //true #4

System.out.println(integer321==integer321_2); //false #5

System.out.println(int321==int321_2); //true #6

System.out.println(long3==int3); //true #7

System.out.println(long3.equals(int3)); //false #8

#1? new兩個Integer對象,分配內存在堆中,兩個地址塊不同

#2 Integer integer3_3 = 3;java編譯后的代碼為Integer integer3_3 = Integer.valueOf(3);

查看java Integer.valueOf(int)源碼public static Integer valueOf(int i) {

assert IntegerCache.high >= 127;

if (i >= IntegerCache.low && i <= IntegerCache.high)

return IntegerCache.cache[i + (-IntegerCache.low)];

return new Integer(i);

}原來-128<=int<=127的值java棧中有緩存都指向同一個地址,不在這個范圍內的int值都是new一個新的Integer,所以#2為true,#5為false

#3 基礎類型和包裝類運算時,包裝類會拆包,所以就是兩個值運算

#7 btye,short,int,long運算時,都會向上轉型到同一類型運算

#8 equals()比較是先比較類型在比較值,類型不一樣所以為false

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2014-06-14 21:28

瀏覽 2176

評論

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

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

相關文章

嵌入式操作系統的主要特點都有哪些

嵌入式操作系統&#xff08;EOS&#xff09;是指用于嵌入式系統的操作系統。嵌入式操作系統是一種用途廣泛的系統軟件&#xff0c;通常包括與硬件的底層驅動軟件、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器等。嵌入式系統分為4層&#xff1a;硬件層、驅動層、…

UIWebView UITextView

// // ViewController.m // 網頁 //#import "ViewController.h"interface ViewController ()<UITextFieldDelegate,UIWebViewDelegate> property (weak, nonatomic) IBOutlet UITextField *textFiled; property (weak, nonatomic) IBOutlet UIWebView *webVi…

BeanFactory和ApplicationContext有什么區別?

BeanFactory&#xff1a; 是Spring里面最底層的接口&#xff0c;提供了最簡單的容器的功能&#xff0c;只提供了實例化對象和拿對象的功能 ApplicationContext&#xff1a; 應用上下文&#xff0c;繼承BeanFactory接口&#xff0c;它是Spring的一各更高級的容器&#xff0c;提…

java的繼承實例_Java繼承和多態實例

我們知道面向對象的三大特性是封裝、繼承和多態。然而我們有時候總是搞不清楚這些概念。下面對這些概念進行整理&#xff0c;為以后面向抽象的編程打下堅實的基礎。封裝的概念還是很容易理解的。如果你會定義類&#xff0c;那么相信你對封裝的概念已經完全掌握了。下面定義的幾…

【數據庫】13種會導致索引失效語句寫法

數據庫的索引是保證數據快速查詢的重中之重&#xff0c;以下13種會導致索引失效語句會導致你的SQL查詢索引失效&#xff0c;具體如下&#xff1a;1、使用like關鍵字模糊查詢時&#xff0c;% 放在前面索引不起作用&#xff0c;只有“%”不在第一個位置&#xff0c;索引才會生效&…

yii2史上最簡單式安裝教程,沒有之一

作者&#xff1a;白狼 出處&#xff1a;www.manks.top/article/yii2_install 本文版權歸作者&#xff0c;歡迎轉載&#xff0c;但未經作者同意必須保留此段聲明&#xff0c;且在文章頁面明顯位置給出原文連接&#xff0c;否則保留追究法律責任的權利。 最近有小伙伴私聊我&…

java static調用嗎_Java中的static的使用

1.Java 中被static修飾的成員稱為靜態成員或類成員。它屬于整個類所有&#xff0c;而不是某個對象所有&#xff0c;即被類的所有對象所共享、且優先于對象存在。靜態成員可以使用類名直接訪問&#xff0c;也可以使用對象名進行訪問。使用 static 可以修飾變量、方法和代碼塊。2…

15個搞笑的程序員段子

1. 問答Q&#xff1a;你是怎么區分一個內向的程序員和一個外向的程序員的&#xff1f;A&#xff1a;外向的程序員會看著你的鞋和你說話時。Q&#xff1a;為什么程序員不能區分萬圣節和圣誕節&#xff1f;A&#xff1a;這是因為 Oct 31 Dec 25&#xff01;&#xff08;八進制的…

java ffmpeg 獲取視頻時長_Java通過調用FFMPEG獲取視頻時長

FFmpeg是一套可以用來記錄、轉換數字音頻、視頻&#xff0c;并能將其轉化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec&#xff0c;為了保證高可移植性和編解碼質量&#xff0…

盤點15個搞笑的程序員段子

1.車Delphi象吉普車&#xff0c;什么路上都能開&#xff0c;卻在啥路上也開不好&#xff1b;PB就象卡丁車&#xff0c;只能在固定線路上開&#xff0c;到室外就有些不穩&#xff1b;VC象跑車&#xff0c;你開得起卻買不 起&#xff0c;而且一旦發生故障&#xff0c;想修都找不到…

判斷listview是上滑還是下滑的方法

方法一&#xff1a; 用setOnScrollListener(new AbsListView.OnScrollListener()&#xff09;來實現&#xff0c;判斷滑動后顯示的第一個條目 &#xff0c;與滑動前的第一個條目的大小來判斷&#xff0c; 這種方法邏輯簡單&#xff0c;但是必須要滑動到當前第一條目隱藏后才能起…

如何保證消息不被重復消費~~~~~(如何保證消息隊列的冪等性)

分析&#xff1a;這個問題其實換一種問法就是&#xff0c;如何保證消息隊列的冪等性&#xff1f;這個問題可以認為是消息隊列領域的基本問題。換句話來說&#xff0c;是在考察你的設計能力&#xff0c;這個問題的回答可以根據具體的業務場景來答&#xff0c;沒有固定的答案。 回…

SpringBoot:搭建第一個Web程序

本文簡單介紹一下spingBoot搭建web程序的流程&#xff0c;希望對入門學習spingBoot的朋友有所幫助。本文采用的開發工具是IDEA。 1、打開IDEA&#xff0c;創建項目。 2、點擊創建項目&#xff0c;進入下一步&#xff0c;具體按照畫紅框的操作。 3、點擊下一步 4、點擊下一步&am…

java uuid 效率_java uuid第一次性能

在java中產生uuid的方式是使用java.util.UUID。UUID.randomUUID().toString();我在測試redis性能時&#xff0c;使用uuid產生測試數據&#xff0c;發現多線程測試redis的rpush接口的時候&#xff0c;性能老是上不去。 查看cpu利用率也不高&#xff0c;網卡流量也不大。就是tps上…

第八周----補

這一周真不知道過得是什么&#xff0c;除了上課&#xff0c;感覺相當的混亂。 整個人每天都是處在消沉狀態&#xff0c;連這次作業都沒能很好的補上。 我的心情也像天氣一樣變得不穩定&#xff0c;一會晴天一會雨天的&#xff0c;更多的就是悶悶的感覺。 總會說事情很多忙的頭暈…

SpringBoot:application.properties基本的參數配置

??作者主頁&#xff1a;IT技術分享社區 ??作者簡介&#xff1a;大家好,我是IT技術分享社區的博主&#xff0c;從事C#、Java開發九年&#xff0c;對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽&#xff1a; 數據庫領域優質創作者&#x1f3c6;&#x…

java method 注釋_Java注解

Java注解注解概述3、注解3.1、注解&#xff0c;或者叫做注釋類型&#xff0c;英文單詞是&#xff1a;Annotation疑問&#xff1a;注解到底是干啥的&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;3.2、注解Ann…