1.泛型
编译时的语法规则 实际上是约束了数据类型 简化了代码的书写 不需要类型的转换
泛型的使用具体可以看提示是否支持<>
可以指定集合中存储的数据类型
2.自定义泛型
3.IO流
字节流:一次读取一个字节单位的数据 可以读取任意类型数据 (二进制文件)但读取文字的时候可能会出现乱码问题
字符流:一次读取一个字符 适合读取文本文件
区分:看结尾的单词 以stream结尾为字节流 以reader或者writer结尾的为字符流
流的使用完毕都需要关闭 节省资源
4.线程
进程:简单理解为一个应用程序就是一个进程 一个进程中需要多个线程去工作实现
并行:同一时刻开启多个线程
并发:同一个时间段开启多个线程
单核cpu理论上只能并发 不能并行 多核cpu可以实现并发与并行
线程的关键点:
继承thread类 重写里面的run方法 run方法执行具体业务逻辑代码 而真正实现开启线程的是start方法 当执行到start时 内存中开辟出一块新的栈空间运行run方法 随后start方法出栈
此时 t线程的run方法和主线程的main方法公平的抢占cpu资源
熟悉线程的常用方法
5.线程的生命周期
1)新建状态
2)就绪状态
3)运行状态
4)超时等待状态
5)等待状态(wait()方法)
6)阻塞状态
7)终止状态