常用的数据结构
-
数组:固定长度、查找快、添加删除慢
- 栈:后进先出
- 队列:先进先出,适用于多线程阻塞队列管理
- 链表:可增减长度,查找遍历慢、添加删除快
- 树
- 散列表:实现一些集合
-
堆
-
图:边和点
Collection接口和Collection类
Collection接口
List接口
-
LinkedList:链表实现,插入删除快,查找慢
-
ArrayList:数组实现,插入删除慢,查找快
-
Vector:线程安全
-
Stack
Set接口
- HashSet:去重
Map接口
- HashMap:非同步的
- HashTable:同步的
- ConcurrentHashMap:同步
Collections类
提供集合类的一些常用方法。
- sort:排序
- reverse:反转
- suffer:随机排序
- fill:替换集合中的元素
- copy:复制
- min/max:取最小最大值
Object类的基本方法
- toString:获取对象的信息
- equals:判断对象是否相等(需重写,否则判断的是对象的地址)
- hashCode:返回对象的物理地址,常与equals方法同时重写,确保对象相等
- getClass:返回运行时类
- clone:对象的副本
- finallize:对象垃圾回收时可能用到
- notify(),notifyAll(),wait():线程相关
final关键字
- 修饰类:不能被继承
- 修饰方法:不能被重写
- 修饰成员变量:必须赋值、如果是基本类型则不能被更改、如果是引用类型地址不能变,值可变
static关键字
修饰类/修饰方法/修饰变量/静态块,独立于该类的对象,类加载时会执行首先执行,只加载一次。
final static 连用
修饰的变量和方法是全局的,通过雷鸣直接访问
多线程共享变量
volatile:保证线程访问时拿到的变量都是最新的
mysql与oracle的区别
mysql:中小型、开源、分页使用limit
oracle:大型、收费、分页使用rownum
关系型数据库与非关系型数据库区别
关系型特点:
- 采用关系模型组织数据
- 事务一致性
- 二维表格
关系型优点:
- 容易理解
- 使用方便(sql)
- 易于维护(完整性)
- 支持sql,可用于复杂查询
关系型缺点:
- 读写性能差
- 固定表结构
- 高并发读写慢
- 海量高效读写慢
非关系型特点:
- 使用k-v存储
- 分布式
- 不支持原子性
- 数据结构化存储
优点:
- 读写性能高
- 基于k-v存储,易扩展
缺点:
- 不支持sql
- 无事务