方法的重載則優選基本數據形參類型

前言:對於形參是基本類型或包裝類型而已,方法的重載會優先選擇基本類型。對象


以下代碼所示:      
=======================BaseType============================
public class BaseType
{編譯器

    public void f(long index)
    {
        System.out.println("基本類型的方法被調用");
    }it

    public void f(Long index)
    {
        System.out.println("包裝類型的方法被調用");
    }io

    public static void main(String[] args)
        throws Exception
    {
        BaseType baseType = new BaseType();
        int index = 140;
        long index2 = 140L;
        baseType.f(index2);
        baseType.f(index);
        baseType.f(Integer.valueOf(index));
    }編譯

}
執行結果:    
基本類型的方法被調用
基本類型的方法被調用
基本類型的方法被調用    class


=====================OneNumber2EightBit=======================
public class OneNumber2EightBit
{
    public static final int BIT = 8;擴展

    public static void main(String[] args)
    {
        System.out.println("=============byte類型所佔的字節數及二進制位數==============");
        System.out.println("byte的二進制位數爲:" + Byte.SIZE);
        System.out.println("byte所佔的字節數爲:" + Byte.SIZE / BIT); // 一個字節佔8個二進制位
        System.out.println("=============short類型所佔的字節數及二進制位數=============");
        System.out.println("short的二進制位數爲:" + Short.SIZE);
        System.out.println("short所佔的字節數爲:" + Short.SIZE / BIT);
        System.out.println("=============char類型所佔的字節數及二進制位數==============");
        System.out.println("char的二進制位數爲:" + Character.SIZE);
        System.out.println("char所佔的字節數爲:" + Character.SIZE / BIT);
        System.out.println("=============int類型所佔的字節數及二進制位數===============");
        System.out.println("int的二進制位數爲:" + Integer.SIZE);
        System.out.println("int所佔的字節數爲:" + Integer.SIZE / BIT);
        System.out.println("=============float類型所佔的字節數及二進制位數=============");
        System.out.println("float的二進制位數爲:" + Float.SIZE);
        System.out.println("float所佔的字節數爲:" + Float.SIZE / BIT);
        System.out.println("=============long類型所佔的字節數及二進制位數==============");
        System.out.println("long的二進制位數爲:" + Long.SIZE);
        System.out.println("long所佔的字節數爲:" + Long.SIZE / BIT);
        System.out.println("=============double類型所佔的字節數及二進制位數============");
        System.out.println("double的二進制位數爲:" + Double.SIZE);
        System.out.println("double所佔的字節數爲:" + Double.SIZE / BIT);
    }數據類型

}
執行結果:    
=============byte類型所佔的字節數及二進制位數==============
byte的二進制位數爲:8
byte所佔的字節數爲:1
=============short類型所佔的字節數及二進制位數=============
short的二進制位數爲:16
short所佔的字節數爲:2
=============char類型所佔的字節數及二進制位數==============
char的二進制位數爲:16
char所佔的字節數爲:2
=============int類型所佔的字節數及二進制位數===============
int的二進制位數爲:32
int所佔的字節數爲:4
=============float類型所佔的字節數及二進制位數=============
float的二進制位數爲:32
float所佔的字節數爲:4
=============long類型所佔的字節數及二進制位數==============
long的二進制位數爲:64
long所佔的字節數爲:8
=============double類型所佔的字節數及二進制位數============
double的二進制位數爲:64
double所佔的字節數爲:8二進制

    
=================基本數據類型===========================
數據類型      字節    範圍
boolean        1    true|false
char              2    0~65535 
byte              1    -128~127
short             2    -32768~32767
int                 4    -2147483648~2147483647 
long              8    -9223372036854775808~9223372036854775807
float              4    -3.4E38~3.4E38 
double          8    -1.7E308~1.7E308
    
    
=====================包裝類型==========================
(Boolean、Character、Byte、Short、Integer、Long、Float、Double)float


===========簡述f(Integer.valueOf(index))執行過程=================
一、index經過valueOf方法包裝成Integer對象。
二、因爲沒有f(Integer index)方法,編譯器會把Integer對象轉成int類型。
三、再由int類型自動擴展爲long類型,找到對應方法,編譯結束。

注:字節數高的不能向字節數低的方法傳形參,字節數低的能夠向字節數同等或高的方法傳形參。    

相關文章
相關標籤/搜索