天天看點

黑馬程式員:基本資料類型對象包裝類

---------------------- ASP.Net+Android+IOS開發、.Net教育訓練、期待與您交流! ----------------------

基本資料類型對象包裝類

byte Byte

short Short

int Integer

long Long

char Character

float Float

double Double

基本資料類型轉成字元串類型

基本資料類型.toString(基本資料類型值);

如: Integer.toString(34);//34(字元串)

String.valueOf(34);

問題:為什麼String.valueOf(34)==Integer.toString(34)為false

hashCode和equals雖然都相同,但hashCode并非一定是此對象的記憶體位址值,是以兩個對象不相同,是以為false

字元串轉成基本資料類型 

static int parseInt(); //靜态調用方式

int intValue(); //對象調用方式

int a = Integer.parseInt("123");

double b = Double.parseDouble("12.23");

...

boolean b = Boolean.parseBoolean("true");

十進制轉成其他進制:

toBinaryString();

toHexString()

toOctalString();

其他進制轉成十進制:

parseInt(string,radix);

示例:3c(16進制)轉化為十進制 int num = Integer.parseInt("3c",16);

示例:

class IntegerDemo
{
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
	public static void main(String[] args)
	{
		//整數類型的最大值
		sop("int類型最大值:"+Integer.MAX_VALUE);
		int num = Integer.parseInt("123");
		long x = Long.parseLong("123");
		sop("num="+(num+4));
		sop(Integer.toHexString(60));
		int hextoint = Integer.parseInt("3c",16);
		sop("16進制3c的10進制:"+hextoint);
	}
}
           

Integer x = new Integer("123");

Integer y = new Integer(123);

return x==y; false 因為是兩個對象

return x.equals(y); true,因為equals方法被Integer覆寫,比的是數值

JDK1.5版本以後出現的新特性:

特性一:

// Integer x = new Integer(4);

Integer x = 4; //自動裝箱 new Integer(4);

x = x+2; //x+2,x進行自動拆箱,變成了int類型,和2進行運算,運算完後,再将和進行裝箱賦給x

int y = 4;

return x==y; //傳回true,就是因為JVM會對其自動拆裝箱

特性二:

Integer m =128;

Integer n =128;

return m==n; //false

Integer m =127; //127是byte取值範圍内

Integer n =127;

return a==b; //true 因為a和b指向了同一個Integer對象,當數值在byte範圍内,對于新特性,如果該數值已存在,則不會再開辟新的空間

---------------------- ASP.Net+Android+IOS開發、.Net教育訓練、期待與您交流! ----------------------詳細請檢視:http://edu.csdn.net