JAVA初学笔记14

Collections

作用

        对集合操作的工具类

常用的方法

        static void sort(List<T> list):排序

                按照储存的数据的hashcode值进行排序

        static void reverse(List<T> list, Comparator<? super T> c):排序

                按照指定的比较器进行排序

        static void reverse(List<?> list):翻转

        static void shuffle(List<?> list):打乱

        static boolean addAll(collection c, T...elements)

                作用:给集合中添加多个

                参数:

                        c:集合

                        elements:添加的元素

        static void copy(List 新集合, List 老集合):拷贝

                注意:新集合中的元素个数要大于等于老集合

        int binarySearch(List 查找的集合, T 目标数据):查找

                返回值:目标数据在集合中的位置,如果不存在返回-1

                注意:该方法使用二分查找法,所以在使用该方法时集合必须是有序的

                二分查找法使用的要求:数组必须有有序的

Map

简介

        中文名:字典

        作用:储存一组数据类型相同的数据

        特点:

                按照键值对应的方式储存

        名词:

                键(Key):类似于标记,如人的名字

                值(Vlue):如人本身

                键值对:一个键与一个值称为一个键值对

要求:

        键:不允许重复

        值:可以重复

Map提供的方法

        增

                v put(k key, V value):将该键值对储存到字典中

                void putAll(Map m):添加多个

        删

                v remove(object key):删除该key所在的键值对

                        返回值:删除的键值对中的值

                void clear():清空

        改

                v put(k key, V value)

                        注意:如果字典中不存在该key,那么本次就是添加,如果存在就是修改

        查

                int size();查询字典中储存的键值对的个数

                boolean isEmpty();查询字典是否为空

                boolean containskey(object key):判断指定的key是否存在

                boolean containsValue(object value):判断指定的值是否存在

                V get(object key):获取所有key对应的value

                Set<k> keySet():获取所有key的集合

                Collection<V> values():获取所有值的集合

                Set<Entry> entrySet():获取所有键值对的集合

                        Entry:键值对

                                提供的方法

                                        k getkey():获取该键值对的键

                                        v getValue():获取该键值对的值

                                        v setValue(V value):给该键值对修改值

Properties的特点

                可以讲字典中的数据储存到文件中

                也可以指定类型的文件数据读取到字典中

Properties特有方法

                void store(OutputStream out, String comments)

                        作用:将字典中的数据储存到文件中

                        参数:

                                out:输出流,表示数据的储存位置

                                comments:提交信息

                        注意:

                                输出流会在IO流的时候细讲

                void load(InputStream inStream)

                        作用:加载文件时,文件中的数据倒入到字典中

                        参数:

                                inStream:输入流,表示读取的文件地址

                        注意:

                                输入流会在IO流时细讲

                String getProperty(String key)

                        作用:通过key获取字典中储存对应的value,类似于Map的get方法

                        优点:

                                getProperty返回值是String类型的,get方法返回值是key的泛型,  而Properties并没有定义泛型,所以返回值为object类型,需要手动转换为String

                  String getProperty(String key, String defaultValue)

                        作用:通过key获取对应value

                        参数:

                                key:键

                                defaultValue:默认值

                        注意:

                                如果取值时,字典中不存在该key,则返回默认值.如果存在该key,那么返回key对应的value

异常

引入

        因为硬件或思考全面导致程序出现问题,这种问题就是异常

异常的分类

        Throwable:所有错误的顶级接口

                Error:错误

                        原因:因为硬件问题引起软件崩溃

                        处理方式:不处理                    

                        OutOfMemoryError:内存溢出异常,一般来说现在计算机的硬件不会导致该问题.所以当程序出现OutOfMemoryError时程序员可以通过对内存的优化,解决该问题.这个错误简称为OOM

                Exception:异常

                        CheckedException:检查时异常

                                原因:因为代码编写未按照规定的语法格式编写,无法通过开发工具的检查

                                处理方式:正确书写语法

                        RuntimeException:运行时异常

                                原因:在代码编写时考虑不足导致的

                                处理:修改不足或进行容错                                

 异常出现后情况                     

                     程序闪退,不会在向下继续进行

常见的异常                      

                        空指针异常:NullPointerException

                                原因:使用null调用了属性或方法

                        数组下标越界异常:IndexOutOfBoundsException

                                原因:操作的下标不在集合下标的取值范围内

                        算法异常:ArithmeticException

                                原因:代码中的数学运算不符合数学规律,比如被除数为0

                        类型转换异常:ClassCastException

                                原因:转换的对象并不是目标对象所属的类

                        数字格式异常:NumberFormatException

                        类不存在异常:ClassNotFoundException

异常的处理

                1,修改代码

                2,try catch

                        语法:                            

                                try{

                                        有可能导致异常的代码

                                    }catch(异常种类1 变量名){

                                        //当try中的代码产生异常种类1的异常时,会执行此处代码

                                   }catch(异常种类2 变量名){

                                        //当try中的代码产生异常种类2的异常时,会执行此处代码

                                    }...

                                   finally {

                                        必须要执行的代码

                                    }

                         注意:

                                1,try中的代码不要写太多

                                2,finally可有可无

                                3,当有多个catch时,有继承关系先写子类异常,再写父类异常.没有继承关系顺序无所谓

                3,声明异常与抛出异常

                            throws:声明异常

                                        使用语法:

                                             访问权限修饰符 修饰符 方法名(形参列表) throws 异常类1,异常类2...{

                                              } 

                            throw:抛出异常

                                        使用语法:

                                                throw 异常对象;

                                        使用位置:

                                                方法体

        

        面试题:

                 1,throws与throw的区别?

                        throws:声明异常,在方法定义时使用

                        throw:抛出异常,在方法体中使用

                2,finally,final,finalize的区别?

                        finally:配合try catch使用,表示必须执行的代码

                        final:不可变的,可以修饰类,属性,方法,变量         

                        finalize:Object类提供的方法,当对象被销毁时,由系统调用

自定义异常

        步骤:

                1,创建一个类

                2,使该类继承与异常类

                3,提供无参构造函数,在无参构造函数中调用父类无参构造函数

                4,提供有参构造函数,参数为String,其参数就是错误信息,在该构造函数中调用父类有参构造                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值