黑马程序员技术交流社区

标题: 【石家庄校区】随堂笔记 [打印本页]

作者: 笑也要笑疯狂    时间: 2018-4-14 22:40
标题: 【石家庄校区】随堂笔记
本帖最后由 小石姐姐 于 2018-4-20 09:46 编辑


【石家庄校区】随堂笔记


第五天
Object类的toString()方法,底层实现方式:getClass.getName+"@"+Integer.toHexString(hashCode())

println(?,?)方法,参数可以接受字符串,也可以接受Object对象.当接受Object对象的情况下,底层实现方法是:String s=String.valueOf(Object),String的valueOf方法底层实现是 Object.toString

获取类字节码的三种方式: 类对象.getClass        类名.Class        Class.forName(类全名)   其中第三种方式会抛出ClassNotFoundException异常

Object类的equals()方法,默认比的是地址,如需按对象内容相比,需重写.

System类:System.in        System.out        System.err

                System.arrayCopy(原数组,索引位置,目标数组,索引位置,个数);

                System.currentTimeMillis(),主要用于测试程序运行时间.

                System.exit(参数),一般惯例,参数为0正常退出,参数非零非正常退出.

util包下的Date类,构造方法Date(),Date(long date) 空参和有参.已过时方法toLocaleString()

        日期转毫秒值 Long getTime()

        毫秒值转日期 void setTime(Long time)

                与System.currentTimeMillis()区别:Date可以设置任意时间.

SimpleDateformat类,构造方法SimpleDateFormate()无参,有参SimpleDateFormat(模式)

                无参:默认格式49-8-26 下午1:31

                有参:自己指定模式,format()和parse()方法必须符合该模式.

                        模式:y年 M月 d日 H小时 m分钟 s秒 S毫秒 E星期 D一年中的的天

                Date转String: String format(Date date)

                String转Date: Date parse(String cource)

Calendar类,创建对象Calendar.getInstance();

        获取:int get(int field)        参数具体为Calendar.常量

        修改:void set(int field,int value)

        添加:void add(int field,int amount)

                Calendar.YEAR        Calendar.MONTH (0-11 0为1月)        Calendar.DAY_OF_MONTH

                Calendar.DAY_OF_WEEK (星期日是1 星期一是2)

        c.setTime(Date date)   返回Calendar

Integer类,构造方法Integer(int value)                Integer(String s)

        Integer转String: 1. +""                2.i.toString()                3.Integer.toString()                        

        String转Integer: 1.构造方法        2.Integer.valueOf()        3.Integer.parseInt()

        Integer i=new Integer();i.intValue()拆箱

正则表达式:匹配点\\.   [.]
第六天
接口Collection常用方法:

        add()        remove()        clear()        contains()        isEmpty()        size()        toArray()返回Object数组

        iterator()方法

        遍历方式:1.toArray()                2.iterator()

ArrayList的add()方法返回值永远为true,因为ArrayList允许元素重复。

接口Iterator常用方法: (用于遍历集合)

        hasNext()        next()        remove()

        使用next()方法,没有元素时,出现NoSuchElementException异常

        解决ConcurrentModificationException并发修改异常:使用ListIterator

        ListIterator接口常用方法:

                        hasNext()        next()        remove()

                        add()        set()        hasPrevious()        previous()

ArrayList:有序的,有整数索引,允许重复

        add(int index,E element)        get(int index)                remove(int index)                set(int index,E element)

LinkedList常用方法:

        addFirst()        addLast()        getFirst()        getLast()                removeFirst()        removeLast()

        查找多,增删少,用ArrayList

        查找少,增删多,用LinkedList

        不知道的情况下,用ArrayList

泛型擦除:泛型只是一种安全监测机制,只在编译时期有效.当源代码编译为class字节码文件后,代码中是不存在泛型的,这称为泛型的擦除.
第七天
list和数组去重问题:(list和数组的主要区别:list长度是动态的,数组长的度固定的)

        如果list/数组中没有元素,

                数组解决方式:循环数组判断

                list解决方式:1.循环list元素判断        2.采用contains()方法判断

        如果list/数组中有元素: 最好方式是采用新建list/数组,

                遍历原有list/数组,判断新list/数组是否有该元素,没有则添加到新list/数组

Set接口:不允许元素重复、无序、没有索引

                add()添加失败返回false

                遍历方式:toArray()        iterator()        增强for

        HashSet类:需重写hashCode()和equals()方法,才能更好的使用引用型对象.

Collection和Collections区别:

        Collection集合体系最顶层,Collections是工具类.

        Collections常用方法:

                binarySerch(List list,T key)

                copy(List dest,List src) dest长度必须>=src长度

                fill(List list,Object obj)

                reverse(List list)--------------->StringBuilder/StringBuffer中也有reverse()方法

                shuffle(List list) 打乱顺序

                sort(List<T> list)按自然顺序排序

                        实现自然顺序两种方式:1.让JavaBean实现Comparable<T>接口,重写compareTo()方法

                                                        2.使用比较器,定义一个类作为比较器,实现comparator<T>接口,重写compare()方法

                        实现的comparable/comparator最好带上泛型.

                        compare()和compareTo()方法中:返回值小于0,当前对象小;大于0,当前对象大;等于零,一样大.

                swap(List list,int i,int j)将列表中的位置元素互换

        以上返回值全是void,对象本身发生了变化.

                StringBuffer中的append()没有发生变化.

数组有工具类Arrays,集合有工具类Collections.

Map常用功能:

        添加:V put(K key,V value)

        获取:V get(Object key)                Set<K> keySet()        Collection<V> values()                int size()

        删除:void clear()                V remove(Object key)

        判断:containsKey(Object key)        containsValue(Object value)        isEmpty()

        遍历:Set<Map.Entry<K,V>> entrySet()


第八天
HashSet,无序,但是LinkedHashSet可以有序.

HashMap的键值也是无序的.TreeMap键值有序.

        Integer i=map.get(ch); i=null  或者 i=具体的次数   比containskey()纯判断强

异常:Error,不能处理异常        Exception,可处理异常

        运行时期异常:RuntimeException的子类及其子类,编译时期可以处理/可以不处理.

        编译时期异常:Exception的子类及其子类(不包括RuntimeException):编译时期必须处理.

        异常处理方式:1.捕获try...catch()...finally()

                                2.抛出去throws

        虚拟机处理异常,程序停止.自己处理,程序继续运行.

Throwable常用方法:

        String getMessage()  输出异常的原因

        String toString()  输出异常的类型+原因

        void printStackTrace()  输出异常的类型+原因+位置

throws :处理异常的方式,在方法声明上,由调用者处理.

throw:制造异常的方式,在方法里.一制造,程序停止运行.

递归:







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2