Java教程

12、Java——异常

本文主要是介绍12、Java——异常,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 1、异常处理方案:

        异常抛出 : throws 把异常抛出到上一层,谁调用谁解决

        异常捕获 : try..catch

            try{

                有可能出现异常的代码;

            }catch(FileNotFoundException e){

                处理异常代码;

            }catch(NullPointerException e){

                处理异常代码;

            }catch(Exception e){

                所有异常都能接收;

            }finally{

                无论try中是否会出现异常,都会执行finally中的代码

                //资源的关闭等代码

            }

一个try的后面可以接 1~n个catch,try中如果一旦出现异常,try下面的代码不会执行,直接进入catch的判断,catch从上到下一次判断,满足哪一个catch捕获的类型,就执行对应的语句体,异常一旦捕获,程序执行过程中出现的异常按照指定方案解决,不会影响后续代码的执行

2、自定义异常: 

自定义的异常类型

所有自定义的异常类型必须直接或者间接继承自Exception

如果自定义异常为运行时期异常,需要直接或者间接的继承自RuntimeException

throw 制造异常

 

3、常用类 --> 字符串

(1)String 不可变长字符序列

(2)StringBuilder 可变长字符序列,线程不安全|不同步,效率较高

(3)StringBuffer  可变长字符序列,线程安全|同步,效率较低

(4)学些一个类:

①类的作用 类的继承体系

②构造器

③方法(静态方法|成员方法)

(5)String类表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。

(6)String str = "abc";  创建一个字符串对象"abc",字符串常量 -->字符串常量池中

(7)String str2 = new String("haha"); 2个对象  第1个new->在堆中   第2个"haha"-->字符串常量池中

(8)String str2 = new String("abc"); 1个对象  第1个new->在堆中   "abc"->上面已经使用过,字符串常量池中已经存在

(9)字符串底层:

​jdk11-->使用private final byte[] value; 字节数组存储字符串中的字符数据,jdk8--> private final char[] value;字符数组

4、可变长字符序列

    (1)StringBuilder : 线程不安全,但不保证同步,相对效率较高,适合使用在单线程下大量操作字符串,效率高

    (2)StringBuffer : 线程安全的,相对效率较低

        多线程下大量操作字符串建议使用StringBuffer

    (3)String : 少量修改字符串,适合使用String,因为表示字符串String对象简单,功能强大的API

    (4)效率: StringBuilder > StringBuffer > String

​    (5)扩容:append--> int newCapacity = (oldCapacity << 1) + 2; 每次扩容原容量的2倍+2

5、基本数据类型的包装类:

       基本           包装

        byte          Byte

        short         Short

        int           Integer

        long          Long

        char          Character

        boolean       Boolean

        float         Float

        double        Double

(1)包装类的优点:

①类可以提供很多成员,功能...

②集合中之能存储引用数据类型,想要存储基本数据类型数据的时候,可以先转为对应的包装类型,再存储

③基本数据类型与对应包装类型数据的默认值不同,当在具体业务下,比如区分账户余额的0与null两种状态,可以使用包装类型表示账户余额

(2)基本数据类型的优点:

        有利于节约内存

(3)自动拆装箱:

①自动装箱:  基本-->包装

②自动拆箱:  包装-->基本

 

6、Math 数学相关类

(1)静态工厂--> 工具类

java.lang下不需要导包

 

(2)随机整数:

     [min,max)  (int)(Math.random()*(max-min)+min)

 [0.0,1.0) * (max-min)

 [0.0,max-min) + min

     [min,max)

 [min,max] (int)(Math.random()*(max-min+1)+min)

7、Date:

(1)Date类表示特定的时刻,精度为毫秒。

(2)日期格式转换器   SimpleDateFormat

         目标:①将指定格式的字符串转为日期对象  parse(str)

              ②将日期对象转为指定格式的字符串  format(date)

这篇关于12、Java——异常的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!