2019-12-08 关于异常以及基本类型包装的总结

异常

异常的概述

在敲代码的过程是经常会发生各种意外情况,最常见的是在编写时发生的异常,例如少打一个花括号,或者少打一个分号等,但是还有一种是编译运行过程中发生的异常情况,例如:

int a= 9;
int b = 0;
public void x(){
int c=a/b;
}

在编写过程中并不会报错,但是在运行是则会报错。对于异常的类型在JAVA中也有一个类Throwable,其下面有两个子类Error以及Exception,Error下的子类有virtualMachineError(虚拟机错误),OutOfMemoryError(内存溢出),ThreadDeath(线程锁死),今天主要讲的是Exception类中的情况,当发生异常时我们可以使用try,catch块进行捕捉并处理

int a= 9;
int b = 0;
public void x(){
try{
int c=a/b;
}catch(异常类型 e){

}

用在try块中捕捉异常,同时我们还可以自己按自己的业务要求创建一个自己所需要的异常:

int b = 3;
public void x(){
if(b==0){
throw new Exception("b的值为0");
}else{
int c=a/b;
}


}

当然自己创造的异常自己也必须要去解决,除了catch块中进行处理,除此之外还有一种方式处理异常,就是将异常抛出,给调用此方法的方法去解决。

public void x() throws Exception{
if(b==0){
throw new Exception("b的值为0");
}else{
int c=a/b;

基本类型的包装

概念

在JAVA中有一个类的念,能创建对象具有属性和方法,还有几种基本类型int,byte,short,long,float,double,char,boolean,这几种基本类型是无法创建对象,但是和已将其装箱成当做类来使用了,包装类型除了int对应的是intege,char对应的是character之外其他对应的全部都是将首字母改成大写。

使用方法

装箱分为两种一种是自动装箱,一种是手动装箱。

//自动装箱
integer  a=3;
//手动装箱
integer a =new integer(3);

既然已经变成一个类了在之前我们常用的==比较方法就不太好使了。一下有个例子:

public static viod main(String[] args){
Integer one = new Integer(100);
Integer two=new Inteaer(100);
System.out.println("one==two的结果:"+(one==two));
Integer three=100;
System.out.println("three==100的结果:"+(three==100));
Integer four=100;
System.out.println("three==four的结果:"+(three==four));
Integer five=200;
System.out.println("five==200的结果:"+(five==200));
Integer six=200;
System.out.println("five==six的结果:"+(five==six));

上面的公式的结果为F,T,T,T,F,第一个F就如我们所说one和two已经为对象==比较的是他们所储存的位置所以一定不同,而第二个比较中系统会进行一个自动拆箱,所以比较的是three中的值,但是第四个为什么又会相等呢?那是应为有一个对象池的概念,相当于一个缓存区,会储存-128-127的非浮点型的数,所以three和four其实是指向的一个储存位置。

你可能感兴趣的:(2019-12-08 关于异常以及基本类型包装的总结)