最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基本類型和包裝類型的區(qū)別

 更新時間:2020年09月09日 10:42:42   作者:崔笑顏  
這篇文章主要介紹了Java基本類型和包裝類型的區(qū)別,幫助大家更好的理解和學習Java,感興趣的朋友可以了解下

包裝類型可以為 null,而基本類型不可以

別小看這一點區(qū)別,它使得包裝類型可以應用于 POJO 中,而基本類型則不行。

POJO 是什么呢?這里稍微說明一下。

POJO 的英文全稱是 Plain Ordinary Java Object,翻譯一下就是,簡單無規(guī)則的 Java 對象,只有屬性字段以及 setter 和 getter 方法,示例如下。

class Writer {
	private Integer age;
	private String name;

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

和 POJO 類似的,還有數(shù)據(jù)傳輸對象 DTO(Data Transfer Object,泛指用于展示層與服務層之間的數(shù)據(jù)傳輸對象)、視圖對象 VO(View Object,把某個頁面的數(shù)據(jù)封裝起來)、持久化對象 PO(Persistant Object,可以看成是與數(shù)據(jù)庫中的表映射的 Java 對象)。

那為什么 POJO 的屬性必須要用包裝類型呢? 數(shù)據(jù)庫的查詢結(jié)果可能是 null,如果使用基本類型的話,因為要自動拆箱(將包裝類型轉(zhuǎn)為基本類型,比如說把 Integer 對象轉(zhuǎn)換成 int 值),就會拋出 NullPointerException 的異常。

包裝類型可用于泛型,而基本類型不可以

泛型不能使用基本類型,因為使用基本類型時會編譯出錯。

List<int> list = new ArrayList<>(); // 提示 Syntax error, insert "Dimensions" to complete ReferenceType
List<Integer> list = new ArrayList<>();

為什么呢?因為泛型在編譯時會進行類型擦除,最后只保留原始類型,而原始類型只能是 Object 類及其子類——基本類型是個特例。

基本類型比包裝類型更高效

基本類型在棧中直接存儲的具體數(shù)值,而包裝類型則存儲的是堆中的引用。

很顯然,相比較于基本類型而言,包裝類型需要占用更多的內(nèi)存空間。假如沒有基本類型的話,對于數(shù)值這類經(jīng)常使用到的數(shù)據(jù)來說,每次都要通過 new 一個包裝類型就顯得非常笨重。

兩個包裝類型的值可以相同,但卻不相等

兩個包裝類型的值可以相同,但卻不相等——這句話怎么理解呢?來看一段代碼就明明白白了。

Integer chenmo = new Integer(10);
Integer wanger = new Integer(10);

System.out.println(chenmo == wanger); // false
System.out.println(chenmo.equals(wanger )); // true

兩個包裝類型在使用“”進行判斷的時候,判斷的是其指向的地址是否相等。chenmo 和 wanger 兩個變量使用了 new 關鍵字,導致它們在“”的時候輸出了 false。

而 chenmo.equals(wanger) 的輸出結(jié)果為 true,是因為 equals 方法內(nèi)部比較的是兩個 int 值是否相等。源碼如下。

private final int value;

public int intValue() {
  return value;
}
public boolean equals(Object obj) {
  if (obj instanceof Integer) {
    return value == ((Integer)obj).intValue();
  }
  return false;
}

雖然 chenmo 和 wanger 的值都是 10,但他們并不相等。換句話說就是:將“==”操作符應用于包裝類型比較的時候,其結(jié)果很可能會和預期的不符。

以上就是Java基本類型和包裝類型的區(qū)別的詳細內(nèi)容,更多關于Java基本類型和包裝類型的資料請關注腳本之家其它相關文章!

相關文章

  • 使用restTemplate.postForEntity()的問題

    使用restTemplate.postForEntity()的問題

    這篇文章主要介紹了使用restTemplate.postForEntity()的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java日常練習題,每天進步一點點(53)

    Java日常練習題,每天進步一點點(53)

    下面小編就為大家?guī)硪黄狫ava基礎的幾道練習題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-08-08
  • java讀取磁盤并遍歷磁盤文件過程解析

    java讀取磁盤并遍歷磁盤文件過程解析

    這篇文章主要介紹了java讀取磁盤并遍歷磁盤文件過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Spring?AOP?的實現(xiàn)和切點表達式的實現(xiàn)方式

    Spring?AOP?的實現(xiàn)和切點表達式的實現(xiàn)方式

    本文給大家介紹了Spring?AOP的基本概念、通知類型、切點表達式和切面優(yōu)先級,并通過示例代碼展示了如何實現(xiàn)這些功能,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Mybatis通用Mapper(tk.mybatis)的使用

    Mybatis通用Mapper(tk.mybatis)的使用

    本文主要介紹了Mybatis通用Mapper(tk.mybatis)的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Spring事件監(jiān)聽源碼解析流程分析

    Spring事件監(jiān)聽源碼解析流程分析

    spring事件監(jiān)聽機制離不開容器IOC特性提供的支持,比如容器會自動創(chuàng)建事件發(fā)布器,自動識別用戶注冊的監(jiān)聽器并進行管理,在特定的事件發(fā)布后會找到對應的事件監(jiān)聽器并對其監(jiān)聽方法進行回調(diào),這篇文章主要介紹了Spring事件監(jiān)聽源碼解析,需要的朋友可以參考下
    2023-08-08
  • 一起來學習Java IO的轉(zhuǎn)化流

    一起來學習Java IO的轉(zhuǎn)化流

    這篇文章主要為大家詳細介紹了Java IO的轉(zhuǎn)化流,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • JavaWeb讀取配置文件的四種方法

    JavaWeb讀取配置文件的四種方法

    這篇文章主要介紹了JavaWeb讀取配置文件的4種方法,方法一采用ServletContext讀取,方法二采用ResourceBundle類讀取配置信息,方法三采用ClassLoader方式進行讀取配置信息,對javaweb讀取配置文件的四種方法感興趣的朋友參考下吧
    2018-03-03
  • Java編程實現(xiàn)打地鼠文字游戲?qū)嵗a

    Java編程實現(xiàn)打地鼠文字游戲?qū)嵗a

    這篇文章主要介紹了Java編程實現(xiàn)打地鼠文字游戲?qū)嵗a,具有一定借鑒價值,需要的朋友可以參考下。
    2017-11-11
  • redis防止重復提交的實現(xiàn)示例

    redis防止重復提交的實現(xiàn)示例

    在開發(fā)中我們都需要處理重復提交的問題,本文主要介紹了redis防止重復提交的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06

最新評論

措美县| 贵定县| 和龙市| 佛冈县| 大田县| 富顺县| 红安县| 石楼县| 文山县| 亳州市| 双辽市| 桦川县| 芦山县| 临安市| 中宁县| 富顺县| 堆龙德庆县| 鞍山市| 许昌市| 融水| 静安区| 霞浦县| 康乐县| 马尔康县| 平阴县| 锦屏县| 盐源县| 桂阳县| 两当县| 连南| 昭苏县| 托里县| 巍山| 石渠县| 安陆市| 黎城县| 梁河县| 弥勒县| 扶余县| 湘潭县| 彰化市|