JAVA异常类和常用类,容器,泛式

一.JAVA异常类

1.异常概念:在java语言中,将程序执行中发生的不正常的情况称为异常(开发过程中的语法和逻辑错误不是异常)

2.异常分类

1)Error(错误):Java虚拟机无法解决的严重问题。比如JVM系统内部错误,资源耗尽等严重情况,Error是严重错误,会导致系统崩溃。

2)Exception:其他因编程错误或者偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。Exception分为两大类:运行时异常和编程时异常。

3.如果出现异常,可以使用try-catch异常处理机制来解决。

 

 4.异常体系图

 对于运行时异常,可以不做处理,此类异常很普通,若处理可能会对程序的可读性和运行效率产生影响。

对于编译时异常,时编译器要求必须处置的异常。

5.常见运行时异常

1)空指针异常:程序试图在需要对象的地方使用null时抛出该异常。

2)数学运算异常:当出现异常的运算条件时抛出该异常。

3)数组下标越界异常:使用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组的大小。

4)类型转换异常:将对象强制转换为不是实例的子类时抛出该异常。

5)数字格式不正确:当程序试图将字符串转换成一种数值类型,但是该字符串不能转换为适当格式时抛出该异常。

6.常见编译异常

1)操作数据库时,查询表可能发生异常

2)操作文件时,发生的异常

3)当操作一个不存在的文件时发生异常

4)加载类,而该类不存在时,异常

5)操作文件,到文件末尾,发生异常

6)参数异常

7.异常处理

1)try-catch-finally:程序员在代码中捕获发生的异常,自行处理

注意事项:如果异常发生,则执行catch不会执行try。

                  如果异常没有发生,则执行try,不会执行catch。

                   如果希望是否发生异常都执行代码,则使用finally。

                   可以有多个catch语句,捕获不同的异常。

2)throws:将发生的异常抛出,交给方法来处理

介绍:如果一个方法可能生成某种异常,但是并不能确定如何处理这种异常,此方法就可以显式声明抛出异常,表明该方法不对这些异常进行处理,而由方法的调用者负责处理

8.自定义异常

基本概念:当程序中出现了某些错误,但该错误信息并没有在Throwable子类中描述处理,这个时候可以自己设计异常类,用于描述该错误信息。

二.常用类

1.包装类:针对八种基本数据类型相应的引用类型

1)包装类和基本数据类型的相互转换:自动装箱底层调用的是valueOf方法,比如Integer.valueOf

2.String类

1)string对象用于保存字符串,字符串常量对象是用双引号括起的字符序列,string类有很多构造器如:new String();

2)string可以串行化,可以比较

3)创建String对象:1.直接赋值String s="lllllll";  2.调用构造器String s=new String("llllll");

4)字符串的特性:String是一个final类,代表不可变的字符序列,一个字符串对象一旦被分配其内容不可变

5)String类的常见方法

equals(区分大小写,判断内容是否相等)

equalslgnoreCase(忽略大小写的判断内容是否相等)

length(获取字符串的个数,字符串的长度)

indexOf(获取字符在字符串中第一次出现的索引)

replace(替换字符串中的字符)

split(分割字符串)

compareTo(比较两个字符串的大小)

toCharArray(转换成字符数组)

3.StringBuffer类

代表可变字符序列,可以对字符串的内容进行修改

4.StringBuilder类

一个可变的字符序列,此类提供一个与StringBuffer兼容的API

主要操作是append和insert方法

(2,3,4三种类使用的原则:1)如果字符串存在大量的修改操作使用StringBuffer或者StringBuilder

                                            2)如果字符串存在大量修改并且在单线程的情况使用StringBulider

                                            3)如果字符串存在大量修改并且在多线程的情况使用StringBuffer

                                            4)如果我们字符串很少修改,被多个对象引用使用String)

5.Math类

1)概念:包含用于执行基本数学运算的方法

2)静态方法:abs(数据类型 变量)<————返回数据的绝对值

                        acos(数据类型 变量)<————返回一个值的反余弦

                        cbrt(数据类型 变量)<————返回数据的立方根

6.Arrays类

1)概念:Arrays类中包含了一些列静态的方法,用于管理或者操作数组(如排序和搜索)

2)常用方法:ToString返回数组的字符串形式

                        sort排序(分为自然排序和定制排序两部分)

                        binarySearch通过二分搜索法进行查找,前提要求是必须排好序

                        copyOf复制数组元素

                        fill填充的数组元素

                        equals比较两个数组元素内容是否一致

                        aslist将一组值转换成列表

7.System类

1)常用方法:exit退出当前程序

                        arraycopy复制数组元素

                        currentTimeMillens返回当前时间距离

8.BigInteger和BigDecimal类

1)应用场景:BigInteger适合保存比较大的整型,BigDecimal适合保存精度更高的浮点型

2)常见方法:add加,subtract减,multiply乘,divide除

三.容器

1. 为什么引入容器:

1)可以动态保存任意多个对象,使用比较方便

2)提供了一系列方便的操作对象的方法

3)使用集合添加,删除新元素的示意代码,使代码更加简洁

2.list接口

1)基本介绍:list接口是Collection接口的子接口

                        list集合中的元素有序且可重复

                        list集合中每个元素都有其对应的顺序索引

                        list容器中的元素都对应一个整型的序号记载其在容器中的位置

2)遍历方法:ArrayList,LinkedList,Vector

3.set接口

1)基本介绍:无序,无索引

                        不允许重复的元素,最多包含一个null

 2)遍历方式:使用迭代器,增强for,不能用索引的方式来获取

4.Map接口

1)特点:Map与Collection并列存在

                Map中的key和value可以是任何引用类型的数据

                Map中的key不能重复,value可以重复

                key和value之间存在单项一对一关系,即通过指定的key总能找到对应的value

                Map的key和value可以为null,但是key只能有一个为null,value可以有多个为null

四.泛式

1.概念

泛式又称参数化类型,在类声明或者实例化时只需要制定好具体的类型即可。作用是可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值类型,或者是参数类型。

2.泛式的语法

interface接口<T>{}和class类<K,V>{}

其中T,K,V表示类型

3.泛式细节

1)在给泛式指定具体类型后,可以传入该类型或者其子类型的类型

2)只能引用类型

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值