重写hashCode和equals : 保证对象的唯一性
1、集合
集合大致分为List,Set,Map三种类型
List为一种有序可重复的接口集合
Set为一种无序不重复的接口集合
Map是采用键值对形式的接口集合
List有序、可为nul1、可重复
a.ArrayList 底层的结构是数组,存取有序,先存先取,优势在于查询效率高
b.LinkedList 底层结构是链表,存取有序,先存先取,优势在于增删效率高
c.vector 底层是数组,查询和增删都慢,同步
Set无序、不重复
a.HashSet 底层结构是哈希表,无序,值不可以重复,可为nu11,存储自定义类型对象的时候,
需要重写hashSet和equals方法
b.TreeSet 底层结构是二叉树,无序,但可以实现自然排序,存储元素不能为nul1实现自然排序的两种方式
1.泛型类实现Comparable接口,重写compareTo方法
2.定义一个类,实现Comparator接口,重写compare方法
Map
双列集合,存在一种键值对的概念,通过键获取对应的值底层结构是哈希表,无序,存储的时候键不能相同,
如果相同则覆盖,允许nu1值nul1键
1.HashMap
2.TreeMap底层结构是红黑树,无序,但可以实现自然排序,按照kev进行排序,不允许nul1键但允许nul1值
2、String、StringBuffer、StringBuilder
String类 字符串类 是一个final修饰的类
不可变字符串,所有的方法都产生新的String而存在的,不会改变之前的字符串。
StringBuffer类:
可变字符串,多线程,且线程安全,效率略低,只能使用构造器赋值
StringBuilder
可变字符串,单线程,线程不安全,效率高,只能使用构造器赋值
3、接口和抽象类
名不同 抽象类属性 接口静态常量
方法: 抽象类可以没有抽象方法 接口只能是抽象方法
抽象类有构造方法 接口没有
类与类单继承,类和接口多实现、接口和接口多继承
子类继承 子实现类
4、局部变量和全局变量
位置
生命周期
局部变量在方法中,全局变量是属性
全局变量属于对象
5、泛型
可以修饰一个类或者方法,
泛型的本质是为了参数化类型
(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。
也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,
这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
6、堆Dog d 栈new Dog(); 常量池
7、Student implements Comparable
if(this.age > o.age) {
return 1; //从小到大,返回1参数小,参数往前排
}else if(this.age < o.age) {
return -1;
}else if(this.age == o.age){
if(this.name.compareTo(o.name) > 0) {
return 1;
}else if(this.name.compareTo(o.name) < 0) {
return -1;
}else if(this.name.compareTo(o.name) == 0) {
return 0;
}
}