需要自学的基础
常用类
- 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
可变长。append()
多线程。
数据量较大。
效率低,安全。 - StringBuilder
可变长。
单线程。
数据量较大。
效率高,不安全。
String str1 = "a" + 1 + 2 String str2 = 'a' + 1 + 2 String str3 = 1 + 2 + "a" String str2 = 1 + 2 + 'a' //str1:a12 //str2:100 //str3:3a //str4:100 //注意双引号是字符串的拼接,单引号将char字符转化为ASCII码值
集合框架
Collection
List
- ArrayList : 方法 add, remove, contains, size
接口 Iterator - LinkedList : 方法 getFirst, getLast, removeFirst, addFirst
- Vector
- Stack
Set
- HashSet
- TreeSet
Map
- HashMap : 数组+链表+红黑树
- TreeMap
Collections工具类
泛型
约束,避免类型转换之间的问题
IO流
- 字节流:输入InputStream, 输出OutputStream
- 字符流:Reader, Writer
- 节点流:CharArrayReader,CharArrayWriter,StringReader,StringWriter
- 处理流:*buffer:bufferInputStream,bufferOutputStream,bufferReader,bufferWriter
*data:DataInputStream,DataOutputStream
*转换流:InputStreamReader,OutputStreamReader
*Fliter四个
*print
多线程
- 进程和线程
- run() , start()
- 线程创建的方式:1.Thread:start0()本地方法,Java无权调用,交给底层的C处理: '''private native void start0();'''
- 静态代理:new Thread(Runnable).start();
- lambda表达式: 函数式编程,避免内部类定义过多。手动推到一遍
- 线程的状态:新建,就绪,运行,阻塞,死亡
- 常用方法:sleep(), join(), yield(), isLive(),
start(), set/getPriority(),interrupt(). - 线程同步:队列+锁。 synchronized。同步代码块(常用)。同步方法。Lock(优先级高)。
- 线程通信:缓冲区--消息队列。
标志位。
wait().
notifyAll(). - 线程池:池化技术。池的大小。最大连接数。保持时间。……
网络编程
- IP
- 端口
- Socket编程
- TCP
- UDP
- URL
- 初始Tomcat
- 聊天通信,文件上传……
GUI
- AWT:Frame
监听事件:鼠标,键盘,窗口,动作事件 - Swing:文本框,标签,按钮,文本域,面板,布局方式,关闭窗口,列表
注解和反射
注解
- 元注解
- 内置注解
- 自定义注解
- 反射读取注解
反射
- Class:newinstance()
- 类加载机制
- Method:invoke()。存在重载,也需要写参数的类型
- Field:set()
- Construct
- 破坏私有关键字
- 性能分析:正常>检测关闭的反射>默认的反射
- 反射获得注解,泛型……
单例模式
Stream
ForkJion
效率对比