包装类
–对应的就是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
自动装箱
int–Integer
3.常用API
Integer / int 和String之间的转换
String – Integer
a.Integer.valuelOf()
b. new Integer(str)
String – int
a. Integer.parseInt()
4.Integer也有常量池
常量池的取值范围:byte字节的取值范围 -128~127
只要超过取值范围,全部是在new对象
除Integer外的所有包装类没有常量池
包装类继承Object类
集合
可变长数组
1.概念:集合相当于是一个容器,主要用来存储任意类型的数据
2.分类:
Collection(I)
|- List(I)
|- Set(I)
|- Queue(I)
Map(I)
Iterable - 接口
1.API -> 只有一个方法 iterator() - 获取一个迭代器
2.迭代器:
a.作用:遍历/迭代集合(数组)所有元素
b.三个方法:
hashNext() - 询问有没有下一个元素
next() - 移动到下一个元素,并返回该位置上的元素
remove() - 删除集合元素
//创建迭代器对象
Iterator iterator = list.iterator();
// Object o1 = iterator.next();
// System.out.println(o1);
while (iterator.hasNext()){
Object next = iterator.next();
System.out.println(next);
}
注意:如果迭代删除每一个元素,就必须使用迭代器方式进行删除否则会出现ConcurrentModificationException - 并发修改异常
3.简易版迭代器 - foreach
a.作用: 获取集合/数组中所有的元素
b. 语法: for( : ){}
:前 -> 获取到的元素的临时变量
:后 -> 要遍历的集合/数组
c.缺点: 只能获取元素,不能做删除操作
//简易版迭代器
//:前 临时变量
//:后 集合
for(Object obj:list){
//只能获取 不能删除
System.out.println(obj);
}
Colletion集合:
1.创建方式:
Colletion col = new ArrayList();
2.常用API:
普通方法:
boolean add(E e)
boolean empty = col.isEmpty();//询问是否为空
boolean contains = col.contains(1);//询问是否包含
boolean remove = col.remove(1);//删除元素
int size = col.size();//获取长度
col.clear();//清空集合
和集合相关的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.建议基本数据类型使用包装类