前言:對於形參是基本類型或包裝類型而已,方法的重載會優先選擇基本類型。對象
以下代碼所示:
=======================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類型,找到對應方法,編譯結束。
注:字節數高的不能向字節數低的方法傳形參,字節數低的能夠向字節數同等或高的方法傳形參。