java基础知识
面向对象
多态(重写、重载),继承,封装,抽象
hashCode
主要为了查找的快捷性(hashMap hashtable等,equals也可以用)
如果equals重写hashCode也要重写
容器的继承关系
Hashtable线程安全,hashMap线程不安全
Vector线程安全 其他list线程不安全
Set都是不安全的,用CopyOnWriteArraySet创建是安全的
LinkedList增删改效率高,基于链表,线程安全
ArrayList查询效率高,基于数组,线程不安全,用于快速随机访问
Array是数组,arrayList是它的升级版,可以存放不同类型的元素(因为存的是object)
Vector:非常类似ArrayList但是是同步的
Stack:继承自Vector
HashSet 不保证顺序,可以至多有一个null
HashMap 存储键值对,用键值对计算hashCode,比hashset快
异常
死锁
互斥条件(排他性使用),请求和保持条件(进程已经获取了一个资源,还要获取另一个,获取不到就不放目前持有的资源),不剥夺条件(进城已获得的资源只能在使用完后自己释放),火炉等待条件(发生死锁时必然有一个进程-资源的环形链)
文件链式存储
关键字
static:static方法就是没有this的方法,方便在没有创建对象的情况下进行调用
final:定义变量的话在赋初值后不能修改,定义类的话类不能继承