JAVA中的一個特殊運算符instanceof

2020-12-09 軟體開發領路人

有一種說法「程序=數據結構+算法」。

而這是離不開運算符的。今天要聊的就是JAVA中的一個特殊的運算符instanceof。

instanceof運算符是用來判斷一個對象是否是指定類型的實例的。如果是指定類型的對象則返回true,否則返回false。

下面說說instanceof運算符的幾個場景的情況吧。

不能對基本數據類型進行instanceof

JAVA作為面向對象的一門語言,但是裡面的基本數據類型卻不是對象,更加不可能是指定類型的實例了,所以是不能使用instanceof這個運算符進行判斷的。驗證一下看看。

instanceof左側的對象是右側類型的對象或子類的對象

這個小標題可能比較拗口,比較繞。看看下面的代碼就好理解了。

這裡定義了一個Person類,一個集成了Person類的Student類。

然後實例化了一個Student對象。然後用instanceof運算符對這個對象進行判斷。

執行的結果兩個判斷都是true。因為這個對象student是一個Student類的對象,也是Person類的對象。

instanceof左側的對象是右側接口的實現類的對象

instanceof也可以用來判斷是不是某個接口的實現類的對象。上代碼驗證下。

運行結果就浪費大家流量展示了。結果為true。有興趣的朋友可以自己執行試試。

instanceof左側為null時運算結果恆為false

如果對象沒有實例化出來,對null進行判斷時,結果會是false。

不用運行,編輯器就已經告訴我們這個運算的表達式結果總是false。

今天的內容比較少,也比較簡單。

歡迎大家在評論區提出寶貴的一件建議。

相關焦點

  • Java基本語法之運算符和表達式
    Java 常用的運算符分為五類:算術運算符、關係運算符、布爾邏輯運算符、位運算符、賦值運算符。位運算符除了簡單的按位操作外,還有移位操作。按位操作返回布爾值。表達式是由常量、變量、對象、方法調用和操作符組成的式子。表達式必須符合一定的規範,才可被系統理解、編譯和運行。表達式的值就是對表達式自身運算後得到的結果。
  • 類型檢查:typeof 和 instanceof 運算符區別?
    有時我們需要在 JS 中檢查變量的類型,要怎麼做?使用typeof運算符以及instanceof來檢查實例類型。1.typeof運算符在 JS 中,基本類型有 String、Number、Boolean和 Symbol 等。此外,還有函數、對象和特殊值undefined和null。
  • 最全的Java 運算符教程筆記
    ++d   = 27自增自減運算符1、自增(++)自減(--)運算符是一種特殊的算術運算符,在算術運算符中需要兩個操作數來進行運算,而自增自減運算符是一個操作數。運行結果為:1.自增運算符前綴運算後a=6,x=122.自增運算符後綴運算後b=6,y=10關係運算符下表為Java支持的關係運算符表格中的實例整數變量A的值為10,變量B的值為20:運算符 描述 例子 == 檢查如果兩個操作數的值是否相等
  • 通俗易懂地告訴你,java語言中為什麼沒有sizeof操作符
    花10分鐘看完一篇文章,或許你會有意想不到的收穫想要了解java中為什麼沒有sizeof()操作符就先要知道什麼是sizeof()?01sizeof()定義sizeof是c語言的一種單目操作符,如c語言的其他操作符++、--等。它並不是函數。sizeof操作符以字節形式給出了其操作數的存儲大小。操作數可以是一個表達式或括在括號內的類型名。操作數的存儲大小由操作數的類型決定。
  • java基礎案例之java語言運算符算術賦值比較邏輯三元和位運算
    java運算符包含以下6種:1:算術運算符。 2:賦值運算符。 3:比較運算符。 4:邏輯運算符。 5:位運算符。 6:三元運算符。比較等於的是兩個等號,一個等號得到是賦值運算。切記!!!邏輯運算符:用於連接boolean類型的表達式
  • java中定義日期格式的轉換符
    Hi,大家好久不見,今天我們在這裡給大家介紹一下關於Java的小知識,在Java中定義日期格式的轉換符,至於運用呢就不和大家做介紹了;接下來就給大家詳細介紹一下如何實現。那我們該如何創建使用呢?首先準備eclipse(這只是作者用的哦,還有很多就不做具體介紹了),然後點擊File --> new -->Javaproject,然後給自己的Javaproject取一個名字,我們在這裡取名為GetTime,然後打開新建一個package名為Format的package,然後在package中新建一個名為FormatTime的class,如圖:
  • Java 算術運算及其優先級講解,可以說很詳細了
    ==也可以比較引用數據類型,表示的是操作符兩邊的對象是否是同一對象,比較的是JVM中的內存地址;instanceof:用於判斷右邊的對象是否是左邊類型的實例;運算符優先級在程序設計中有眾多運算符,運算符之間的操作會有先後之分,也稱優先級,詳情如下:
  • Java中的數學運算BigDecimal
    前言:最近在項目中碰到了根據公式算法的需求
  • Java中怎麼對一個數做開方運算
    在數學中,有一種運算叫開方。比如2的3次方(也叫立方)的結果是8,那8的開3次方的結果就是2。那這樣的運算在Java中要怎麼做呢。在java.lang包下的Math類為我們提供了現成的方法,供我們使用。a的b次方先看看a的b次方是怎麼實現吧。
  • 跟我學java編程—Java運算符的優先級
    Java表達式可能存在多個運算符,運算符之間存在優先級的關係,級別高的運算符先執行運算,級別低的運算符後執行運算算,下表列出了運算符的優先級。表中優先級欄,數字越小優先級越高,運算符每個運算符用中文頓號分割。
  • 什麼是運算符和表達式,在python中是如何處理數學運算的?
    又到了和大家分享的時刻了,初識python,相信很多編程愛好者們對程序的解義在心裡應該有一個概念了吧,對於pycharm的用法與進位的認知,在大家的心裡是否還有印象?前面我們提到了python的核心數據(整數型、浮點型、複數等),那麼大家是否知道,這些數據是用來幹什麼的呢?
  • 10個經典的 Java main 方法面試題
    package com.instanceofjava;public class A{public static int main(String[] args){ return 1;    }}4.main()方法為什麼必須是靜態的?main()方法一定是靜態的。
  • 跟我學java編程—Java邏輯運算符
    在數學中,表示一個數值的範圍時,經常用不等式來表述。例如:假設一個數值取值範圍為0到100,設該數值為x,不等式0<x<100給出了x的取值範圍,在Java程序語言中,邏輯運算符可以實現類似數學中的不等式。下表列出了Java語言支持的邏輯運算符,表中假設布爾變量A為真,變量B為假。
  • Java基礎-instanceof用法揭秘
    Java有一個 instanceof 操作符(關係操作符)可以做這件事。public static void main(String[] args) {String s = "Hello World!"
  • EXCEL基礎教程5-比較運算符與文本連接符
    EXCEL基礎教程5-比較運算符與文本連接符作者:陳飛老師EXCEL公式中比較運算符主要是用來比較大小,比較是否相等,返回一個正確(true),或者返回一個錯誤(false),而比較運算符也經常用來結合函數進行判斷使用
  • 一起學JAVA——修飾符
    java修飾符的作用就是對類或類成員進行修飾或限制。訪問修飾符訪問修飾符作用是控制類成員的可見度。 類的訪問控制符有兩種:public關鍵字修飾:可以被所有的類訪問預設為default:只能被同一包中的類訪問static(靜態修飾符)
  • 跟我學java編程—Java條件運算符
    Java語言還提供了一種稱為「條件運算符」的特殊運算符,它可以用於條件表達式中,以提供與if-else等同的結構。此運算符是?和:符號的組合,它是一個三目運算符,即具有三個參與運算的操作數。其語法規則如下:布爾表達式 ?
  • 通過「訪問修飾符」java想告訴我們什麼?
    在平時編寫代碼的時候我們一定會用到public、private這些「java訪問修飾符「,可是你知道java為什麼要設計這些「訪問修飾符」嗎?今天我們就一起來看看廢話少說,先看定義!01定義java有四個訪問修飾符public:被public修飾的成員可以被所有類訪問到protected:所修飾的成員會被位於同一包中所有類可以訪問到。
  • Java 基礎語法教程筆記
    對象:對象是類的一個實例,有狀態和行為。例如,一條狗是一個對象,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。類:類是一個模板,它描述一類對象的行為和狀態。方法:方法就是行為,一個類可以有很多方法。邏輯運算、數據修改以及所有動作都是在方法中完成的。實例變量:每個對象都有獨特的實例變量,對象的狀態由這些實例變量的值決定。
  • MATLAB運算符優先級一覽表
    MATLAB 在執行含有關係運算和邏輯運算的數學運算時,同樣遵循一套優先級原則。