黑马程序员技术交流社区
标题:
【石家庄校区】随堂笔记
[打印本页]
作者:
笑也要笑疯狂
时间:
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