欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入理解java中的null“類(lèi)型”

 更新時(shí)間:2018年01月31日 15:29:13   作者:明明如月小角落  
這篇文章主要介紹了深入理解java中的null“類(lèi)型”,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是java中的null“類(lèi)型”的相關(guān)實(shí)例,具體介紹如下。

先給出一道簡(jiǎn)單的null相關(guān)的題目,引發(fā)我們對(duì)null的探討,后面會(huì)根據(jù)官方語(yǔ)言手冊(cè)對(duì)null“類(lèi)型”進(jìn)行解讀。

題目:下面程序能正確運(yùn)行嗎?

解析:

輸出應(yīng)該為 :haha

因?yàn)閚ull 是可以強(qiáng)轉(zhuǎn)為任何類(lèi)類(lèi)型的,所以前面((NULL)null)是合法的,但是null強(qiáng)轉(zhuǎn)以后是無(wú)效對(duì)象,其返回值為null,(后面會(huì)作解釋?zhuān)?/p>

而haha方法是靜態(tài)方法,靜態(tài)方法使用靜態(tài)綁定,不會(huì)拋出空指針異常。

如果把haha()函數(shù)變?yōu)榉庆o態(tài)之后,將會(huì)拋出空指針異常。

再來(lái)一個(gè)例子:

這道題其實(shí)和上面是差不多的。

結(jié)果還是輸出“haha”

Java Language Specification中我們可以看到

在4.1. The Kinds of Types and Values一節(jié)中提到:

There are two kinds of types in the Java programming language: primitive types (§4.2) and reference types (§4.3). ”
Type:
PrimitiveType
ReferenceType
There is also aspecial null type, the type of the expression null (§3.10.7, §15.8.1), which has no name.
Because the null type has no name, it is impossible to declare a variable of the null type or to cast to the null type.
The null reference is the only possible value of an expression of null type.
The null reference can always undergo a widening reference conversion to any reference type.
In practice, the programmer can ignore the null type and just pretend that null is merely a special literal that can be of any reference type.

我給翻譯一下:

Java語(yǔ)言中有兩種類(lèi)型,一種是基本類(lèi)型,還有一種是引用類(lèi)型。

還有一個(gè)特殊的null類(lèi)型即表達(dá)式null的類(lèi)型,它沒(méi)有名字。

因?yàn)閚ull類(lèi)型沒(méi)有名字,所以不可能聲明為null類(lèi)型的變量或者轉(zhuǎn)換為null類(lèi)型。

null引用是null類(lèi)型表達(dá)式唯一可能的值。

null引用可以轉(zhuǎn)換為任意引用類(lèi)型。

實(shí)際上,程序員可以忽略null類(lèi)型,可以認(rèn)為null僅僅是一個(gè)可以成為任何引用類(lèi)型的特殊符號(hào)。

看了這個(gè)一段,就比較豁然開(kāi)朗了。

在5.2. Assignment Conversion一節(jié)中:

“A value of the null type (the null reference is the only such value) may be assigned to any reference type, resulting in a null reference of that type”

一個(gè)null類(lèi)型(null(空)引用是這種類(lèi)型的唯一的一個(gè)值)的值,可以賦值給任意類(lèi)型,將返回一個(gè)該類(lèi)型對(duì)象的空引用(其實(shí)還是null)。

在5.3. Method Invocation Conversion這一節(jié)有:

“A value of the null type (the null reference is the only such value) may be converted to any reference type.”

即“null可以被轉(zhuǎn)換為任何引用類(lèi)型。”

通過(guò)官方的語(yǔ)言手冊(cè),對(duì)null類(lèi)型有了非常深刻的理解。

對(duì)我們編程以及以后求職筆試面試都有一定的幫助。

最后希望大家遇到一些奇怪的問(wèn)題,除了百度外,盡量多去Stack Overflow網(wǎng)站上去搜索,也多去查官方手冊(cè)。

總結(jié)

以上就是本文關(guān)于深入理解java中的null“類(lèi)型”的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • Spring Cloud Eureka 注冊(cè)與發(fā)現(xiàn)操作步驟詳解

    Spring Cloud Eureka 注冊(cè)與發(fā)現(xiàn)操作步驟詳解

    這篇文章主要介紹了Spring Cloud Eureka 注冊(cè)與發(fā)現(xiàn)操作步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • SpringBoot集成RocketMQ的使用示例

    SpringBoot集成RocketMQ的使用示例

    RocketMQ是阿里巴巴開(kāi)源的一款消息中間件,性能優(yōu)秀,功能齊全,被廣泛應(yīng)用在各種業(yè)務(wù)場(chǎng)景,本文就來(lái)介紹一下SpringBoot集成RocketMQ的使用示例,感興趣的可以了解一下
    2023-11-11
  • Java動(dòng)態(tài)替換properties文件中鍵值方式

    Java動(dòng)態(tài)替換properties文件中鍵值方式

    這篇文章主要介紹了Java動(dòng)態(tài)替換properties文件中鍵值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • JavaSE文件操作工具類(lèi)FileUtil詳解

    JavaSE文件操作工具類(lèi)FileUtil詳解

    這篇文章主要為大家詳細(xì)介紹了JavaSE系列之文件操作工具類(lèi)FileUtil,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Java實(shí)現(xiàn)兩人五子棋游戲(三) 畫(huà)出棋子

    Java實(shí)現(xiàn)兩人五子棋游戲(三) 畫(huà)出棋子

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)兩人五子棋游戲,畫(huà)出五子棋的棋子,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • struts2實(shí)現(xiàn)多文件上傳

    struts2實(shí)現(xiàn)多文件上傳

    這篇文章主要為大家詳細(xì)介紹了struts2實(shí)現(xiàn)多文件上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Mybatis如何實(shí)現(xiàn)關(guān)聯(lián)屬性懶加載

    Mybatis如何實(shí)現(xiàn)關(guān)聯(lián)屬性懶加載

    這篇文章主要介紹了Mybatis如何實(shí)現(xiàn)關(guān)聯(lián)屬性懶加載的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Mybatis實(shí)現(xiàn)分表插件

    Mybatis實(shí)現(xiàn)分表插件

    隨著系統(tǒng)的發(fā)展,數(shù)據(jù)量也會(huì)越來(lái)越大,分庫(kù)分表可以有效的緩解數(shù)據(jù)庫(kù)的壓力,本文主要介紹了Mybatis實(shí)現(xiàn)分表插件,感興趣的可以了解一下
    2021-05-05
  • Mybatis實(shí)戰(zhàn)教程之入門(mén)到精通(經(jīng)典)

    Mybatis實(shí)戰(zhàn)教程之入門(mén)到精通(經(jīng)典)

    MyBatis是支持普通SQL查詢(xún),存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持久層框架,通過(guò)本文給大家介紹Mybatis實(shí)戰(zhàn)教程之入門(mén)到精通,對(duì)mybatis實(shí)戰(zhàn)教程相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • 如何通過(guò)java將doc文件轉(zhuǎn)換為docx文件詳解

    如何通過(guò)java將doc文件轉(zhuǎn)換為docx文件詳解

    在數(shù)字化時(shí)代文檔處理成為了我們?nèi)粘9ぷ骱蛯W(xué)習(xí)中不可或缺的一部分,其中doc和docx作為兩種常見(jiàn)的文檔格式,各自具有不同的特點(diǎn)和優(yōu)勢(shì),這篇文章主要給大家介紹了關(guān)于如何通過(guò)java將doc文件轉(zhuǎn)換為docx文件的相關(guān)資料,需要的朋友可以參考下
    2024-07-07

最新評(píng)論