亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

14.java 基本數(shù)據(jù)類型的包裝類

yanbingyun1990 / 908人閱讀

摘要:但是基本數(shù)據(jù)類型不是對象,不具備對象的特性不攜帶屬性沒有方法可調(diào)用。自動裝箱即直接賦值將會比使用構(gòu)造方法的方式節(jié)省一塊堆內(nèi)存空間,并自動入對象池。而手動裝箱使用構(gòu)造方法會產(chǎn)生兩塊堆內(nèi)存,而且不會保存在對象池中。

概念

java在設計之初,有一個基本原則:一切皆對象。但是基本數(shù)據(jù)類型不是對象,不具備“對象”的特性——不攜帶屬性、沒有方法可調(diào)用。為了解決此類問題,Java為每種基本數(shù)據(jù)類型分別設計了對應的類,稱之為包裝類(Wrapper Classes).

基本數(shù)據(jù)類型及對應的包裝類
基本數(shù)據(jù)類型 對應的包裝類
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

每個包裝類的對象可以封裝一個相應的基本類型的數(shù)據(jù),并提供了其它一些有用的方法。包裝類對象一經(jīng)創(chuàng)建,其內(nèi)容(所封裝的基本類型數(shù)據(jù)值)不可改變.

包裝類雖然都是object的子類,但嚴格來說又可分為兩種:

對象包裝類(object直接子類):Character、Boolean

數(shù)值包裝類(Number直接子類):Byte、Short、Integer、Long、Float、Double

Number繼承了Object類,是一個抽象類。里面定義了六個抽象方法:byteValue()、shortValue()、intValue()、longValue()、floatValue()、doubleValue()。

數(shù)據(jù)的裝箱與拆箱

基本類型和對應的包裝類可以相互裝換:

由基本類型向?qū)陌b類轉(zhuǎn)換稱為裝箱,例如把 int 包裝成 Integer 類的對象;

包裝類向?qū)幕绢愋娃D(zhuǎn)換稱為拆箱,例如把 Integer 類的對象重新簡化為 int;

示例:

public class testDemo {
    public static void main(String[] args) {
        int m = 500;
        Integer obj = new Integer(m); // 手動裝箱
        int n = obj.intValue(); // 手動拆箱
        System.out.println("n = " + n);
        Integer obj1 = new Integer(500);
        System.out.println("obj 等價于 obj1?" + obj.equals(obj1));
    }
}
輸出結(jié)果:
n = 500
obj 等價于 obj1?true
自動拆箱和裝箱

上面的例子都需要手動實例化一個包裝類,稱為手動拆箱、裝箱。Java 1.5 之前必須手動拆箱裝箱。
Java 1.5 之后可以自動拆箱裝箱,也就是在進行基本數(shù)據(jù)類型和對應的包裝類轉(zhuǎn)換時,系統(tǒng)將自動進行,并且可以直接利用包裝類進行數(shù)學計算。

示例:

public class testDemo {
    public static void main(String[] args) {
        Integer obj = 10; // 自動裝箱
        int n = obj; // 自動拆箱
        System.out.println("n = " + n);
        System.out.println(obj * 2);  //包裝類直接進行數(shù)學計算。
        Integer obj1 = 10;
        System.out.println("obj 等價于 obj1?" + obj.equals(obj1));
    }
}
輸出結(jié)果:
n = 10
20
obj 等價于 obj1?true

由于存在自動裝箱,那么object可以接收一切數(shù)據(jù)類型了,包括基本數(shù)據(jù)類型。

流程:基本數(shù)據(jù)類型--> 自動裝箱--> 向上轉(zhuǎn)型為object

但object類型不能直接轉(zhuǎn)為基本數(shù)據(jù)類型,要先轉(zhuǎn)為對應的包裝類,然后自動拆箱。

手動裝箱與自動裝箱的區(qū)別

手動裝箱與自動裝箱與String兩種實例化方式的區(qū)別是一樣的。

自動裝箱(即直接賦值)將會比使用構(gòu)造方法的方式節(jié)省一塊堆內(nèi)存空間,并自動入對象池。而手動裝箱(使用構(gòu)造方法)會產(chǎn)生兩塊堆內(nèi)存,而且不會保存在對象池中。

但是和String不同的是包裝對象沒有intern()方法,無法手動入池。

示例:

public class testDemo {
    public static void main(String[] args) {
      Integer obja = 10;//直接賦值,自動裝箱
      Integer objb = 10; //直接賦值,自動裝箱
      Integer objc = new Integer(10); //手動裝箱
      
      System.out.println(obja == objb);
      System.out.println(obja == objc);
      System.out.println(objb == objc);
      System.out.println(obja.equals(objc));
    }
}
輸出結(jié)果:
true
false
false
true
數(shù)據(jù)類型的轉(zhuǎn)換

包裝類提供了基本數(shù)據(jù)類型和String類型相互轉(zhuǎn)換的功能。

將 String 轉(zhuǎn)為基本數(shù)據(jù)類型
Integer類:
public static int parseInt(String s)

Double類:
public static double parseDouble(String s)

Boolean類:
public static boolean parseBoolean(String s)
.....

需要注意的是Character類里面并不存在將字符串變?yōu)樽址姆椒ǎ驗镾tring類有一個charAt()的方法,可以根據(jù)索引取出字符。

基本數(shù)據(jù)類型轉(zhuǎn)為String

有兩種方式:

任何基本數(shù)據(jù)類型與字符串使用了"+"操作之后都將轉(zhuǎn)為String類型。

在String類中定義有valueOf()方法,該方法可以接收所有的基本數(shù)據(jù)類型。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/77608.html

相關(guān)文章

  • 深入淺出 Java包裝

    摘要:前陣子,我們分享了中的基本數(shù)據(jù)類型轉(zhuǎn)換這篇文章,對許多粉絲還是有帶來幫助的,今天講一下包裝類的的由來,及自動裝箱拆箱的概念和原理。下面是基本數(shù)據(jù)類型與對應的包裝類型。 showImg(https://segmentfault.com/img/remote/1460000016537706); 前陣子,我們分享了《Java中的基本數(shù)據(jù)類型轉(zhuǎn)換》這篇文章,對許多粉絲還是有帶來幫助的,今天講...

    ytwman 評論0 收藏0
  • JAVA學習之路 (九)包裝

    摘要:包裝類基本數(shù)據(jù)類型如等。它們并不具備對象的特性,比如不能調(diào)用方法。為了讓基本數(shù)據(jù)類型也能具有對象的特性,為每個基本數(shù)據(jù)類型提供了包裝類。 包裝類 基本數(shù)據(jù)類型:如 int、float、double、boolean、char 等。它們并不具備對象的特性,比如不能調(diào)用方法。為了讓基本數(shù)據(jù)類型也能具有對象的特性,java為每個基本數(shù)據(jù)類型提供了包裝類。 基本類型和包裝類之間的對應關(guān)系: sh...

    MockingBird 評論0 收藏0
  • Java知識點總結(jié)(常用-包裝

    摘要:知識點總結(jié)常用類包裝類知識點總結(jié)常用類包裝類是一個面向?qū)ο蟮恼Z言,但是中的基本數(shù)據(jù)類型卻不是面向?qū)ο蟮?。但是我們在實際使用中經(jīng)常將基本數(shù)據(jù)類型轉(zhuǎn)換成對象,便于操作。 Java知識點總結(jié)(常用類-包裝類) @(Java知識點總結(jié))[Java, Java常用類] [toc] 包裝類(wrapper) Java是一個面向?qū)ο蟮恼Z言,但是Java中的基本數(shù)據(jù)類型卻不是面向?qū)ο蟮?。但是我們在實際...

    AlanKeene 評論0 收藏0
  • 基本包裝簡單入門

    摘要:第三階段常見對象的學習基本類型包裝類我們提出一個需求,將的二進制八進制十六進制算出來,對于這種基本類型的一些操作,包裝類就可以很好地解決這些問題。 第三階段 JAVA常見對象的學習 基本類型包裝類 我們提出一個需求,將520的二進制、八進制、十六進制算出來,對于這種基本類型的一些操作,包裝類就可以很好地解決這些問題。 public class IntegerDemo { pub...

    ShevaKuilin 評論0 收藏0
  • Java 學習點滴2

    摘要:實際上,中還存在另外一種基本類型,它也有對應的包裝類,不過我們無法直接對它們進行操作。這些變量在聲明時被指定為一個特定的類型,比如等。對象數(shù)組都是引用數(shù)據(jù)類型。語言支持一些特殊的轉(zhuǎn)義字符序列。 實例 對于數(shù)值類型的基本類型的取值范圍,我們無需強制去記憶,因為它們的值都已經(jīng)以常量的形式定義在對應的包裝類中了。請看下面的例子: **public class PrimitiveTypeTes...

    nicercode 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<