異常
異常的概述
在敲代碼的過程是經(jīng)常會發(fā)生各種意外情況,最常見的是在編寫時發(fā)生的異常,例如少打一個花括號,或者少打一個分號等,但是還有一種是編譯運(yùn)行過程中發(fā)生的異常情況,例如:
int a= 9;
int b = 0;
public void x(){
int c=a/b;
}
在編寫過程中并不會報錯,但是在運(yùn)行是則會報錯。對于異常的類型在JAVA中也有一個類Throwable,其下面有兩個子類Error以及Exception,Error下的子類有virtualMachineError(虛擬機(jī)錯誤),OutOfMemoryError(內(nèi)存溢出),ThreadDeath(線程鎖死),今天主要講的是Exception類中的情況,當(dāng)發(fā)生異常時我們可以使用try,catch塊進(jìn)行捕捉并處理
int a= 9;
int b = 0;
public void x(){
try{
int c=a/b;
}catch(異常類型 e){
}
用在try塊中捕捉異常,同時我們還可以自己按自己的業(yè)務(wù)要求創(chuàng)建一個自己所需要的異常:
int b = 3;
public void x(){
if(b==0){
throw new Exception("b的值為0");
}else{
int c=a/b;
}
}
當(dāng)然自己創(chuàng)造的異常自己也必須要去解決,除了catch塊中進(jìn)行處理,除此之外還有一種方式處理異常,就是將異常拋出,給調(diào)用此方法的方法去解決。
public void x() throws Exception{
if(b==0){
throw new Exception("b的值為0");
}else{
int c=a/b;
基本類型的包裝
概念
在JAVA中有一個類的念,能創(chuàng)建對象具有屬性和方法,還有幾種基本類型int,byte,short,long,float,double,char,boolean,這幾種基本類型是無法創(chuàng)建對象,但是和已將其裝箱成當(dāng)做類來使用了,包裝類型除了int對應(yīng)的是intege,char對應(yīng)的是character之外其他對應(yīng)的全部都是將首字母改成大寫。
使用方法
裝箱分為兩種一種是自動裝箱,一種是手動裝箱。
//自動裝箱
integer a=3;
//手動裝箱
integer a =new integer(3);
既然已經(jīng)變成一個類了在之前我們常用的==比較方法就不太好使了。一下有個例子:
public static viod main(String[] args){
Integer one = new Integer(100);
Integer two=new Inteaer(100);
System.out.println("one==two的結(jié)果:"+(one==two));
Integer three=100;
System.out.println("three==100的結(jié)果:"+(three==100));
Integer four=100;
System.out.println("three==four的結(jié)果:"+(three==four));
Integer five=200;
System.out.println("five==200的結(jié)果:"+(five==200));
Integer six=200;
System.out.println("five==six的結(jié)果:"+(five==six));
上面的公式的結(jié)果為F,T,T,T,F,第一個F就如我們所說one和two已經(jīng)為對象==比較的是他們所儲存的位置所以一定不同,而第二個比較中系統(tǒng)會進(jìn)行一個自動拆箱,所以比較的是three中的值,但是第四個為什么又會相等呢?那是應(yīng)為有一個對象池的概念,相當(dāng)于一個緩存區(qū),會儲存-128-127的非浮點(diǎn)型的數(shù),所以three和four其實(shí)是指向的一個儲存位置。