前言:对于形参是基本类型或包装类型而已,方法的重载会优先选择基本类型。对象
以下代码所示:
=======================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类型,找到对应方法,编译结束。
注:字节数高的不能向字节数低的方法传形参,字节数低的能够向字节数同等或高的方法传形参。