面向对象
- 类与对象:类是对象的抽象,对象是类的具体
- new对象:栈存放引用,堆存放具体的对象
- 三大特性:封装,继承,多态
数组排序算法
- 冒泡排序
- 选择排序
- 插入排序
- 快速排序
- 归并排序
- 希尔排序
- 堆排序
- 基数排序
常用类和常用方法
object类
- hashcode()
- toString()
- clone()
- getClass()
- notify()
- wait()
- equals()
Math类
用于常见的数学运算
Random类
生成随机数 UUID
File类
创建文件,查看文件,修改文件,删除文件
包装类
自动拆装箱
Date类
- Date
- SimpleDateFormat:yyyy-MM-dd HH:mm:ss
- Calendar(建议使用)
String类:不可变性final,用于操作较少的字符串
StringBuffer类:字符串长度可变化,多线程数据量较大时使用,效率低,线程安全
StringBuilder类:单线程数据量较大时使用,效率高,线程不安全
修饰符
public,protected,private,static,final,abstract
接口
用于约束,只能定义方法名;子类实现接口,必须重写其中的方法;只有一个方法的接口叫做函数式接口,可以使用lambda表达式简化
异常
父类Throwable
-
Exception
- 运行时异常:1/0,ClassNotFound,NullPoint,UnKownType,下标越界异常
- 检查型异常:
-
Error
集合
- Collection
- List(有序可重复)
- ArrayList(常用)
常用方法:add,remove,contains,size - LinkedList(常用)
常用方法:getFirst,getLast,removeFirst,addFirst - Vector
- Set(无序不可重复)
- Map
- HashMap(重点)
- JDK1.7:数组+链表
- JDK1.8:数组+链表+红黑树
- TreeMap
io流
- 字节流
- 输出:OutputStream
- 输入:InputStream
- 字符流
- 节点流
- CharArrayReader,Writer,inputStream,outputStream
- StringReader,Writer
- pipe(管道流)
- 处理流
- buffer
- bufferInputStream
- bufferOutputStream
- bufferReader
- bufferWriter
- data
- DataInputStream
- DataOutputStream
- 转换流
- InputStreamReader
- OutputStreamReader
- 序列化和反序列化:继承Serializable
- Filter
- print
多线程
- 线程创建的方式
- 继承Thread类
- 实现Runnable接口:函数式接口 lambda
- 实现Callable:可以有返回值
- 静态代理
- 线程的状态:新建状态,就绪,运行,阻塞,死亡
- 常用方法:sleep,join,yield,isLive,start,setPriority,getPriority,interrupt
- 线程同步:多个对象操作同一个资源,并发
- 队列+锁
- Synchronized
- Lock
- 死锁:两个都抱着对方的锁(只要打破其中一个就能解除死锁)
- 线程通信
- 缓冲区:消息队列
- 标志位:wait(),notifyAll(),notify()
- 线程池
网络编程
- Socket编程
- TCP:三次握手,四次挥手,面向连接
- UDP:无连接,Packet
- URL
GUI
- AWT
- Swing:文本框,标签,按钮,文本域,面板,布局方式,关闭窗口,列表
注解和反射
- 注解
- 反射
- Class newInstance()
- 类加载机制
- Method
- Field
- Construct
- 破坏私有关键字:setAccessible(true);
- 性能分析:正常>检测关闭的反射>默认的反射
|