大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java面向對象
Java異常
Java數組
Java常用類
Java集合
Java IO流
Java線程
Java反射
Socket編程
Java注解開發
Java GoF設計模式
HashMap
Java內存模型
Java線性表

Java包裝類

Java包裝類概述

Java為每個基本數據類型都提供了一個對應的包裝類

基本類型

包裝類

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

為什么要提供包裝類?

package com.wkcto.chapter04.wrapperclass;
/**
 * 為什么提供包裝類??
 * 		為了編程更加方便
 * 
 * @author 蛙課網
 *
 */
public class Test01 {

	public static void main(String[] args) {
		
		m1("hello"); 		//把"hello"字符串對象的引用傳遞給形參xx
		
		m1(456); 
		/*
		 *  在調用方法時 ,不能直接把456 等基本類型數據傳遞給形參xx
		 *  這兒沒有出現錯誤, 因為系統會自動的把整數 456 轉換為對應的包裝類對象, 再把這個包裝類對象的引用傳遞給xx形參
		 *  在本例中,如果沒有包裝類的話, 需要定義很多的方法重載來接收不同類型的數據, 如果有了包裝類,只需要定義一個方法即可
		 */
		
	}
	
	//定義一個方法,該方法可以接收任意類型的數據,包括整數,小數,字符,布爾, 引用類型數據都可以	
	public static void m1( Object xx ) {   	//形參xx只能接收引用類型的數據
		
	}

}

包裝類的繼承結構圖

Java包裝類對象的創建

Character包裝類的構造方法只有一個,根據基本類型創建包裝類對象

其他的包裝類構造方法都有兩個, 根據基本類型創建包裝類對象, 根據字符串創建包裝類對象

package com.wkcto.chapter04.wrapperclass;
/**
 * 創建包裝類對象
 * @author 蛙課網
 *
 */
public class Test02 {

	public static void main(String[] args) {
		//1) 根據基本類型創建包裝類對象
		Boolean bb = new Boolean(true);
		Character cc = new Character('A');
		Integer ii = new Integer(456);
		Double dd = new Double(3.14);
		
		//2) 根據字符串創建包裝類對象,  Character沒有這個構造方法
		Integer i2 = new Integer("369");
		Double dd2 = new Double("2.58");
		//注意, 根據字符串創建包裝類對象時, 字符串要符合數字的格式
//		i2 = new Integer("abc"); 	// java.lang.NumberFormatException 數字格式異常
		dd2 = new Double("2e3");	//科學計數法
		System.out.println( dd2 );  //2000.0
		dd2 = new Double("147");
		System.out.println( dd2 ); 
//		dd2 = new Double("147wkcto");  //java.lang.NumberFormatException

		Boolean bb2 = new Boolean("true");
		System.out.println( bb2 );
		//注意, Boolean包裝類會把"true"字符串轉換為true, 其他的字符串都轉換為false
		bb2 = new Boolean("hehe");
		System.out.println( bb2 );
		
	}

}

Java包裝類的字段

package com.wkcto.chapter04.wrapperclass;
/**
 * 包裝類的常量 
 * @author 蛙課網
 *
 */
public class Test03 {

	public static void main(String[] args) {
		System.out.println( Integer.BYTES);			//4
		System.out.println( Integer.SIZE);			//32
		System.out.println( Integer.TYPE);			//int
		System.out.println( Integer.MIN_VALUE);		//-2147483648
		System.out.println( Integer.MAX_VALUE);		//2147483647
		
		System.out.println( Double.POSITIVE_INFINITY);
		System.out.println( Double.NEGATIVE_INFINITY);
		System.out.println( Double.NaN);
		
//		System.out.println( 10 / 0 );  		//java.lang.ArithmeticException
		System.out.println( 10 / 0.0 ); 	//Infinity
		System.out.println( -10 / 0.0 ); 	//-Infinity
		System.out.println( 0 / 0.0 ); 		//NaN,  Not a Number
		
		System.out.println("----------------");
		System.out.println( Character.MIN_VALUE);
		System.out.println( Character.MAX_VALUE);
		System.out.println( (int)Character.MIN_VALUE);
		System.out.println( (int) Character.MAX_VALUE);
	}

}

Java包裝類的常用方法

package com.wkcto.chapter04.wrapperclass;
/**
 * 包裝類的常用 方法
 * @author 蛙課網
 *
 */
public class Test04 {

	public static void main(String[] args) {
		Integer i1 = new Integer(147);
		
		//每個包裝類都有一個value字段,保存的是這個包裝類對應的基本類型數據
		//1) 從Number繼承的方法,可以把包裝類對象轉換為基本類型的數據, 實際上是把value字段進行強制類型轉換
		double dd = i1.doubleValue();
		byte bb = i1.byteValue(); 			//-128~127
		System.out.println( dd );
		System.out.println( bb  );
		
		//2)包裝類都實現了Comparable接口,重寫了compareTo()方法, 可以比較兩個包裝類的大小, 根據value字段
		Integer i2 = new Integer("258");
		System.out.println( i1.compareTo(i2));    		//-1  表示i1小于i2
		Boolean bb1 = new Boolean(true);
		Boolean bb2 = new Boolean(false);
		System.out.println( bb1.compareTo(bb2)); 		//1
		
		//3) 都重寫了equals()
		System.out.println( i1.equals(i2));
		System.out.println( bb1.equals(bb2));
		//小數采用近似值保存,有時不準確, 如0.1在計算機中是無法準確的表示
		System.out.println( Double.doubleToLongBits(1.1));
		System.out.println( Double.doubleToLongBits(0.9));
		System.out.println( 2 - 1.1 );
		System.out.println( Double.doubleToLongBits(2-1.1));
		System.out.println( Double.doubleToLongBits(2-1.1) == Double.doubleToRawLongBits(0.9));
		
		//4) Integer.parseInt(String)可以把字符串轉換為int數據
		String text = "456";
		int num = Integer.parseInt(text);
		System.out.println( num );
		//Double.parseDouble(String)可以把字符串轉換為double數據
		double pi = Double.parseDouble("3.14");
		//Boolean.parseBoolean(String) 可以把字符串轉換為boolean數據
		boolean flag = Boolean.parseBoolean("true");
		//在把字符串轉換為基本類型數據時, 字符串要符合目標類型的格式
//		num = Integer.parseInt("3.14");  //java.lang.NumberFormatException
		
		//5) 把十進制數轉換為二進制/八進制/十六進制
		System.out.println( Integer.toBinaryString(100));
		System.out.println( Integer.toOctalString(100));
		System.out.println( Integer.toHexString(100));
		
		//6) toString(int) 把基本類型轉換為字符串
		text = Integer.toString(100);
		text = Double.toString(3.14);
		text = Boolean.toString(false);
		
		//7) valueOf() 把基本類型/字符串轉換為包裝類對象
		i1 = Integer.valueOf(258);
		i1 = Integer.valueOf("147");  	//字符串要符合數字格式		
		Double double1 = Double.valueOf(3.14);
		double1 = Double.valueOf("3.56");		
		Boolean boolean1 = Boolean.valueOf(false);
		boolean1 = Boolean.valueOf("adjklfj");				
	}
}

Java裝箱與拆箱

裝箱就是把基本類型數據轉換為包裝類對象。

拆箱就是把包裝類對象轉換為基本類型數據。

在Java中, 裝箱與拆箱可以自動進行,

package com.wkcto.chapter04.wrapperclass;
/**
 * 裝箱與拆箱
 * @author 蛙課網
 *
 */
public class Test05 {

	public static void main(String[] args) {
		Integer i1 = 789; 		//自動裝箱, 系統根據基本類型數據789自動創建一個包裝類對象 , 把該對象的引用保存到i1中
		Integer i2 = 789; 		//根據789創建一個新的Integer對象, 把該對象的引用保存到i2中
		
		int num = i1; 			//自動拆箱, 系統把i1對象的value字段賦值給num
		
		//包裝類對象判等
		System.out.println( i1.equals(i2));   	//true
		System.out.println( i1 == i2 ); 		//false
		
		Integer i3 = 88;
		Integer i4 = 88;
		System.out.println( i3 == i4 ); 		//true
		/*
		 * Java認為-128~127之間的整數是使用最頻繁的, 這個范圍內的整數裝箱后采用享元模式
		 * 	-128~127之間的整數生成的包裝類對象存儲在方法區的常量池中
		 * 	在執行i3 = 88時, 會在常量池中創建一個包裝類對象, 
		 * 	在執行 i4 = 88時, 直接把常量池中的包裝類對象的引用賦值給i4, 即現在i3和i4引用了常量池中同一個包裝類對象
		 */
		
		Long  gg1 = 123L;
		Long  gg2 = 123L;
		System.out.println( gg1 == gg2 );  		//true
		
	}

}

練習 int/String/Integer之間的相互轉換

String  text = “456”;

int  num = Integer.parseInt(  text  );

text = “” + num;

text = String.valueOf( num );

text = Integer.toString( num )

全部教程
主站蜘蛛池模板: 777奇米影视视频在线播放 | 1024国产欧美日韩精品 | 亚洲精品色婷婷在线影院麻豆 | 免费一级毛片在线播放不收费 | 国产高清不卡一区二区 | 国产免费久久精品99 | 久久99热久久精品动漫 | 国产精品福利一区二区 | 一级日本强免费 | 亚洲精品宾馆在线精品酒店 | 欧美日韩激情在线一区二区 | 久久国内 | 欧美成人精品一区二三区在线观看 | 老子影院午夜伦不卡亚洲 | 精品国产高清毛片 | 色综合夜夜嗨亚洲一二区 | 国产亚洲精品美女久久久久 | 在线免费观看毛片 | 婷婷国产成人久久精品激情 | 4hu影院永久在线播放 | 99久久免费看精品国产一区 | 婷综合| 国产精品久久久久久久 | 国内毛片视频 | 五月婷婷中文字幕 | 美女一级毛片免费观看 | 99久久国产综合精品五月天 | 国产网站免费视频 | 欧美日韩免费在线观看 | 成人做爰毛片免费视频 | 日本大片免a费观看在线 | 久久精品国产夜色 | 亚欧精品一区二区三区四区 | 久久这里只精品国产99热8 | 日本操比| 91视频免费观看高清观看完整 | 亚州精品永久观看视频 | 青青青青青国产费线在线观看 | 成人日韩视频 | 99爱免费观看视频在线 | 国产国产人免费人成成免视频 |