StringBuilder & StringBuffer
可变的字符序列
常用来代替字符串,做高效率字符串连接运算
append(数据)追加内容
内部的数组默认初始容量是16
存满,容量翻倍
追加过程不会重复创建StringBuilder对象
新建数组次数非常少,一次次翻倍,容量很容易很快变得很大
StringBuilder和StringBuffer的区别
StringBuilder线程不安全,效率高(多数情况下是单线程环境,不用考虑安全问题)
StringBuffer线程安全,效率低
正则表达式
基本类型的包装类
什么时候使用包装类
基本类型值,要当作引用类型(对象),可以把基本类型值包装成对象使用
void f(Object obj) {
…
}
f(new Interger(6))
Integer
创建对象
new Integer(6)
Integer.valueOf(6)
Integer类中,存在一个Integer对象的缓存数组,范围-128到127,
指定范围内的值,访问缓存对象
指定范围外的值,直接新建对象
Date
日期
封装一个毫秒值,表示一个精确的时间点
创建Date对象
new Date()
封装系统当前时间的毫秒值
new Date(9000000)
封装指定的毫秒值
方法
getTime()
setTime(long t)
SimpleDateFormat
日期格式工具
Date对象----字符串
创建对象
new SimpleDateFormat(格式)
方法
format(对象)
BigDecimal, BigInterger
集合
用来存放一组数据的数据结构
数组的缺点:
长度固定
访问方式单一,只能用下标访问
删除、插入数据时,操作繁琐,效率低
集合的继承结构
collection接口
|-List接口
|-ArrayList
|-LinkedList
Map接口
Iterator接口
LinkedList
双向链表
两端效率高,越往中间效率越低
方法
add(数据)
在尾部添加数据
get(i)
访问指定下标位置的数据
remove(i)
移除指定位置的数据,返回被移除的数据
remove(数据)
找到相等数据并移除,返回true
没有找到相等的数据,返回false
size()
元素的数据,添加了多少个数据
iterator()
辅助新建迭代器对象的方法
it = list.iterator()
ArrayList
内部是用数组存放数据
数组的初始容量是10
存满,容量1.5倍增长
访问任意位置,效率高
增删数据,效率可能降低
只在两端操作数据,用LinkedList