A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨安叔叔 初级黑马   /  2018-12-12 17:42  /  673 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

equals 方法;
        equals比较的是两个对象的内容;
        ==比较的是两个基本类型的值,对象的地址值;
       
        赋值的对象内容可以用==,最好用equlas;
        new出来的对象,用equas;

        equals的调用者不能为空,会报空指针异常,
        需要用equals方法,或者自己加判断;
        if (s1 != null){
                比较体;
        }else {
                sout“s1为空”       
        }       

Date 类
        date表示特定的瞬间,精确到毫秒
        构造方法与成员方法:
                空参获取当前系统时间
                有参将参数毫秒换成时间
                getTime方法
        使用DateFormat 内中的方法Format,把日期格式转化成文本
        用parse将文本转换成日期

Calendar 日历类
        calendar无法直接创建对象使用;
Collection集合
        概述:容器;储存多个数据;
        与数组的区别:数组的长度是固定的,集合的长度是可变的。
                        数组储存的是同一类型的元素,储存基本数据类型值,集合储存的都是对象


        集合框架:
                Collection是所有单列集合最顶层的接口
                共性的方法:       
                add        添加
                remove        删除
                contains        判断指定对象是否储存在结合中
                isEmpty        判断集合是否为空        判断集合内的元素还有没有
                size        获取集合中的元素个数
                toArray        把集合中的1元素储存到数组中
                clear        清空集合中的所有元素
       
        Iterator迭代器
                hasNext        判断是否到达集合的末尾
                next        取出集合中的元素

                并发修改异常,在遍历的时候add/remove,会抛出这个异常

        泛型
                不写泛型,默认Object类型
                可以用来写让使用者自行添加使用的无类型类
数据结构
        栈:先进后出
        队列: 先进先出
        数组:查询快,增删慢       
        链表:查询慢,增删快(链表中的地址不是连续的,每次查询,都需要从头开始查询,但增删元素,对链表整体结构没有影响,所以增删快)(增快,删相对慢)
        单向链表无序,双向链表有序
        红黑树:查询速度特别快

       

ArrayList
        Arraylist的底层是数组结构,所以查询快,增删慢


LinkedList
        底层是一个链表(双向链表),查询慢,增删快
        注意:使用特有方法不能用多态
        addfirst         插入开头
        addlast        添加到末尾,等同于add
        push        等同于addfirst

        getfirst        返回第一个元素
        getlast        返回最后一个元素

        removeFirst        移除并返回第一个元素
        removelast        移除并返回最后一个元素
        pop                等同于removeFirst

Vector
        单线程,速度慢,被ArrayList取代

==========Set===========
Set接口
        不允许存储重复的元素
        没有索引,没有带索引的方法,也不能使用普通for循环遍历)(可以用迭代器和增强for循环)
       

HashSet
        无序的集合,存储元素和取出元素的顺序可能不一样
        底层是哈希表结构(查询速度非常快)
        不允许存储重复的元素
        存储过程:获取元素的哈希值,去集合中判断有没有相同的哈希值,有就执行equals判断,是不是同一元素,不是就存储,如果元素相同,就不会放入集合
        使用HashSet存储自定义对象,需要重写HashCode和equals方法


LinkedHashSet
        底层是哈希表机构(数组+链条+红黑树)再加一个链条


可变参数
        方法的参数类型已经确定,参数数量不确定
        注意:一个方法的参数列表,只能有一个可变参数
                   如果方法的参数有多个,那么可变参数必须写在参数列表的末尾
        特殊写法(终极写法):(Object...obj)
        有序的,也不允许重复


Collections
        Collections.addAll        往集合中添加多个元素
        Collections.shuffle        打乱顺序
       
        sort        排序
        自定义的类需要实现compareble,然后重写
Map集合
        <key,value>
        双列集合,一个元素包含两个值
        key和valu的数据类型可以相同,也可以不同
        key不能重复,value可以重复
        key和value是一一对应的
       
        方法:
                put                添加<k,v>
                remove                删除<k>
                get                根据指定key,获得value
                containsKey        判断集合中是否包含指定的键(key)

                map.keySet        获取map中所有的key,封装成set集合

HashMap
        无序,取出的元素顺序可能不一致
        底层是哈希表,查询的速度非常快


LinkedHashMap
        有序,取出的元素顺序一致
        底层是哈希表加链表

Entry
        一个键值对
       
遍历方式:
        1.keyset
        2.Entry

Hashtable集合
        底层也是哈希表,是一个线程安全的集合·,单线程,速度慢
        不允许存储空,HashMap可以

JDK9的特性:of
        of方法只适用于list接口,set接口,map接口
        不能添加元素进集合了,只用于确定了的集合
        set,map集合在用的时候,不能重复,会报错
异常
       
        Exception:编译期异常,编译出现的问题
        RuntomeExeption:运行期异常

        Error:错误
                必须修改源代码,程序才能继续后执行
       

        处理异常:1,往上抛,抛给虚拟机处理(打印异常信息,中断程序)
                2,try()catch{}处理异常,处理完程序继续执行,不会停止

        throw关键字
        thorw必须写在方法的内部
        throw后边new的对象必须是Exception或者Exception的子类对象
        throw抛出指定的异常对象

        finally,在try()catch后,里面的内容,无论如何都会执行

自定义异常类

        格式:public class XXXException extends Exception | RuntimeException{}
Thread类中的方法
        getName 获取该线程的名称
       
        setName 设置一个名字
        也可以用一个带参构造方法将name传给父类(super(name)),在开启线程的时候设置名字new Thread(“xxx”).strat

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马