复习:
String:
创建方式:
a.直接赋值
String str = “”
b.构造方法创建
new String()
编码问题:
字符 -> 字节: 编码
str.getBytes() -> 默认字符集
str.getBytes("gbk") ->转换成gbk编码方式
字节 -> 字符: 解码
new String(byte[])
正则表达式:
字符
[]:一个字符的位置
[0-9]:可以出现0-9之间所有的数字
0-9a-zA-Z_: \w
0-9: \d
以^开头 以$结尾
数量词:
* -> 0 或 n
+ -> 1 或 n
? -> 0 或 1
{n} -> 刚好n个
{n,}-> 至少n个
{n,m} -> 最少n,最多m
常用API:
matches()
replaceAll()
split()
可变长字符串: StringBuilder/StringBuffer
new StringBuilder(“”);
append()
insert()
delete()
reverse()
包装类: – 对应的就是8大基本数据类型
byte – Byte
short – Short
int – Integer
long – Long
float – Float
double – Double
char – Character
boolean – Boolean
1.创建方式:
a.直接赋值创建
Integer i = 10;
b.构造方法创建
new Integer(int i)
new Integer(String str)
2.装箱和拆箱:
自动拆箱: Integer -> int
i1.valueOf();
自动装箱: int -> Integer
3.常用API
Integer/int 和 String之间的转换
String -> Integer:
a. Integer.valueOf()
b. new Integer(str)
String -> int:
a. Integer.parseInt()
4.常量池:
a.所有的包装类中只有Integer有常量池
b.常量池有取值范围:
-128 ~ 127
c.只要超过取值范围,全都是在new对象
数组: 数组的扩容/缩容 -> 最基本的数据结构
集合:可变长数组
1.概念:集合相当于是一个容器,主要用来存储任意类型的数据
2.分类:
Collection(I)
|- List(I)
|- Set(I)
|- Queue(I)
Map(I)
Iterable – 接口
1.API -> 只有一个方法 iterator() – 获取一个迭代器
2.迭代器:
a.作用:遍历/迭代集合(数组)所有元素
b.三个方法:
hashNext() – 询问有没有下一个元素
next() – 移动到下一个元素,并返回该位置上的元素
remove() – 删除集合元素
注意:如果迭代删除每一个元素,就必须使用迭代器方式进行删除否则会出现ConcurrentModificationException - 并发修改异常
3.简易版迭代器 – foreach
a.作用: 获取集合/数组中所有的元素
b. 语法: for( : ){}
:前 -> 获取到的元素的临时变量
:后 -> 要遍历的集合/数组
c.缺点: 只能获取元素,不能做删除操作
Colletion集合:
1.创建方式:
Colletion col = new ArrayList();
2.常用API:
普通方法:
boolean add(E e)
void clear()
boolean contains(Object o)
boolean isEmpty()
boolean remove(Object o)
boolean remove(Object o)
和集合相关的API:
boolean addAll(Collection<? extends E> c)
boolean containsAll(Collection<?> c)
boolean removeAll(Collection<?> c)
boolean retainAll(Collection<?> c)
强类型 -> 指定类型 例如:String
弱类型 -> 没有指定类型(可以是所有类型)
泛型:
1.特点:
a.所有是类型的地方都可以使用泛型来代替,泛型表示所有类型(Object)
b.规定了泛型,就只是支持定义好的类型,只是在编译时有效,用来规范程序员写法
c.运行时,还是支持Object类型
2.定义泛型的步骤:
a.在类/接口上定义加上
ps: Collection col = new ArrayList();
b.在类/接口的方法中,具体类型就可以使用E来代替
3.作用:
泛型就是为了让代码的复用性更强,就可以不用实现重载操作
集合和数组的区别:
长度区别:
a.集合长度可变
b.数组长度不可变
内容区别:
a.集合可以存储引用类型数据
b.数组可以存储基本数据类型,引用数据类型
c.一个集合中可以存储任意类型
d.数组只能存储统一类型
JavaBean规范:
1.成员变量私有化,提供一对get()/set()
2.添加无参构造方法
3.重写toString()
4.重写equals()和hashCode()
5.建议基本数据类型使用包装类