黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Java面向?qū)ο?/div>
Java異常
Java數(shù)組
Java常用類
Java集合
Java IO流
Java線程
Java反射
Socket編程
Java注解開發(fā)
Java GoF設(shè)計模式
HashMap
Java內(nèi)存模型
Java線性表

Java包裝類

Java包裝類概述

Java為每個基本數(shù)據(jù)類型都提供了一個對應(yīng)的包裝類

基本類型

包裝類

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

為什么要提供包裝類?

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

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

}

包裝類的繼承結(jié)構(gòu)圖

Java包裝類對象的創(chuàng)建

Character包裝類的構(gòu)造方法只有一個,根據(jù)基本類型創(chuàng)建包裝類對象

其他的包裝類構(gòu)造方法都有兩個, 根據(jù)基本類型創(chuàng)建包裝類對象, 根據(jù)字符串創(chuàng)建包裝類對象

package com.wkcto.chapter04.wrapperclass;
/**
 * 創(chuàng)建包裝類對象
 * @author 蛙課網(wǎng)
 *
 */
public class Test02 {

	public static void main(String[] args) {
		//1) 根據(jù)基本類型創(chuàng)建包裝類對象
		Boolean bb = new Boolean(true);
		Character cc = new Character('A');
		Integer ii = new Integer(456);
		Double dd = new Double(3.14);
		
		//2) 根據(jù)字符串創(chuàng)建包裝類對象,  Character沒有這個構(gòu)造方法
		Integer i2 = new Integer("369");
		Double dd2 = new Double("2.58");
		//注意, 根據(jù)字符串創(chuàng)建包裝類對象時, 字符串要符合數(shù)字的格式
//		i2 = new Integer("abc"); 	// java.lang.NumberFormatException 數(shù)字格式異常
		dd2 = new Double("2e3");	//科學(xué)計數(shù)法
		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"字符串轉(zhuǎn)換為true, 其他的字符串都轉(zhuǎn)換為false
		bb2 = new Boolean("hehe");
		System.out.println( bb2 );
		
	}

}

Java包裝類的字段

package com.wkcto.chapter04.wrapperclass;
/**
 * 包裝類的常量 
 * @author 蛙課網(wǎng)
 *
 */
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 蛙課網(wǎng)
 *
 */
public class Test04 {

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

Java裝箱與拆箱

裝箱就是把基本類型數(shù)據(jù)轉(zhuǎn)換為包裝類對象。

拆箱就是把包裝類對象轉(zhuǎn)換為基本類型數(shù)據(jù)。

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

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

	public static void main(String[] args) {
		Integer i1 = 789; 		//自動裝箱, 系統(tǒng)根據(jù)基本類型數(shù)據(jù)789自動創(chuàng)建一個包裝類對象 , 把該對象的引用保存到i1中
		Integer i2 = 789; 		//根據(jù)789創(chuàng)建一個新的Integer對象, 把該對象的引用保存到i2中
		
		int num = i1; 			//自動拆箱, 系統(tǒng)把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之間的整數(shù)是使用最頻繁的, 這個范圍內(nèi)的整數(shù)裝箱后采用享元模式
		 * 	-128~127之間的整數(shù)生成的包裝類對象存儲在方法區(qū)的常量池中
		 * 	在執(zhí)行i3 = 88時, 會在常量池中創(chuàng)建一個包裝類對象, 
		 * 	在執(zhí)行 i4 = 88時, 直接把常量池中的包裝類對象的引用賦值給i4, 即現(xiàn)在i3和i4引用了常量池中同一個包裝類對象
		 */
		
		Long  gg1 = 123L;
		Long  gg2 = 123L;
		System.out.println( gg1 == gg2 );  		//true
		
	}

}

練習(xí) int/String/Integer之間的相互轉(zhuǎn)換

String  text = “456”;

int  num = Integer.parseInt(  text  );

text = “” + num;

text = String.valueOf( num );

text = Integer.toString( num )

主站蜘蛛池模板: 99re最新地址获取精品 | 好色在线 | 天天夜夜狠狠一区二区三区 | 日韩欧美1区 | sis人成在线视频 | 一a一级片 | 毛片手机在线看 | 免费在线黄视频 | 日韩一区二区免费看 | 午夜激情网站 | 曰批女人视频在线观看 | 丁香六月激情综合 | 日韩综合在线视频 | 欧洲三级在线观看 | 欧美日韩中文字幕在线 | 中文字幕一区二区三区精品 | 午夜激情网站 | 国产91色在线 | 亚洲 | 欧美亚洲国产精品久久 | 五月天久久婷婷 | 夜夜爽天天操 | 日本国产片 | 欧洲在线免费视频 | 欧美精彩狠狠色丁香婷婷 | 永久福利盒子日韩日韩免费看 | 国产极品在线观看视频 | 日韩永久在线观看免费视频 | 日本三级免费观看 | 国产高清在线丝袜精品一区 | 亚洲国产最新在线一区二区 | 特级毛片aaaa免费观看 | 成人看片在线观看免费 | 怡春院综合 | 成年人免费在线视频网站 | 日本大片久久久高清免费看 | 99福利视频| 成人人观看的免费毛片 | 日日摸日日碰夜夜爽视频网站 | 欧美不卡激情三级在线观看 | 国产丝袜第一页 | 国产在线视频在线 |