容器:
Collection接口: List -》ArrayList LinkedList Vector
Set-》HashSet 内部使用HashMap实现
Map接口: 采用 key value存储数据
HashMap线程不安全 效率高
HashTable线程安全 效率低
Iterator接口:遍历容器中元素
泛型:
Collections: 包含排序查找的工具类
字符串比较中 == 与 equal的区别
- ==:比较的是两个字符串内存地址(堆内存)的数值是否相等,属于数值比较;
- equals():比较的是两个字符串的内容,属于内容比较。
多态
多态体现为一个事物的多种形态 例如 父类引用变量可以指向子类对象
isinstanceof
向上转型 将子类对象赋值给父类变量
向下转型 将父类对象赋值给子类变量
注解
也叫元数据 用于描述数据的数据
基本注解:
@Override 重写 在重写的方法前加入即可
@SuppressWarnings 压制警告 在警告内容前加入
[public] @interface 注解名
{
数据类型 成员变量名()[default 初始值]
}
注解跟类一样 会被编译为 注解名.class的字节码文件
成员变量名后面的()必不可少
反射机制
一段程序在运行过程中 接受一个对象作为形参 该对象的编译时类型与运行时类型不一致 但是程序又需要调用该对象运行时的类中的方法
这就需要引用反射机制 保证在程序运行过程中
可以知道任意对象的运行时类型
可以构造任意类的对象
可以调用任意对象的属性和方法
其实就是在运行时获取对象的属性与方法,例如对象.getClass
内部类
将一个类作为成员放在另一个类或者方法的内部
嵌套类
内部类可以分为 非静态内部类和静态内部类
非静态内部类 是指 在非静态类的方法内访问某个变量时 先找局部变量 再找内部类的属性 最后找外部类的属性
如果局部变量 内部类属性 外部类三者名字相同
静态内部类是用static修饰的内部类都称为静态内部类
静态内部类是一个普通类 可以包含静态成员 也可以包含非静态成员
静态内部类不能访问外部类的实例成员 只能访问外部类的类成员
lambda表达式
当接口中只有一个抽象方法 匿名内部类的语法过于频繁
这种接口叫做函数式接口
表达式 : (形参列表)->{代码块}
形参列表:如果形参列表中只有一个参数 形参列表的圆括号也可以忽略