Java重点复习
-
访问权限修饰符【从大到小】------《Java编程思想》
public---公共的
protected
default/friendly---包访问权限 package
private---私有的
Java四种访问权限修饰符.png -
关键字
static、final、this、super
class、abstract class、interface
constructor---构造方法
switch、case、break
for、forEach---增强for循环、while、do-while、continue、break
return
toString、hashCode、equals---Object
-
方法重写、重载
@Override :在继承关系中,子类重写父类中的方法,【方法头部相同,方法体不同】。
@Overload:在一个类中,有多个具有【相同名字】的方法,但是方法【参数列表不同:个数不同、顺序不同、类型不同】
-
常用Java集合类
Collection集合
Iterator迭代器,集合专用遍历方式---hasNext、next方法
List【ArrayList、LinkedList】
Set【HashSet、TreeSet、Compartor、重写hashCode和equals方法】
Map【HashMap、TreeMap、ConcurrentHashMap】
Map遍历的2中方式:keySet、EntrySet
Map常用方法:containsKey、containsValue
-
数据结构:队列和栈
Queue队列:First Input First Output---FIFO元素先入先出
Stack栈-------十进制转换为二进制----
-
类加载 和 反射机制
classloader 类加载器
反射概述:运行状态中,任一类都能被知晓和调用,类的所有属性和方法(包括构造方法)。
Field
Constructor
Method
类的私有构造方法,暴力反射---setAccessible(true)
-
多线程
进程---process名词、线程---thread,以及两者间的区别?
并发和并行
创建线程三种方式:继承Thread类、实现Runnable接口,同时重写run方法、实现Callable接口
thread.start() 、thread.run() ---两者区别?
thread.sleep()、thread.wait() ---两者区别?
currentThread---当前线程
ThreadLocal当前线程
synchronized关键字:一个时间内只能有一个线程得到执行,其他线程必须等待当前线程执行完后才能执行该代码块
多线程协作:生产者-消费者模式 Producer Consumer
线程之间的协作【经典场景-生产者消费者模式】:sleep、wait、notify、notifyAll、synchronized
-
线程的6中状态 :
初始(NEW):新创建了一个线程对象,但还没有调用start()方法。
运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)。
阻塞(BLOCKED):表示线程阻塞于锁。
等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)。
超时等待(TIMED_WAITING):该状态不同于WAITING,它可以在指定的时间后自行返回。
终止(TERMINATED):表示该线程已经执行完毕
- 文件流操作
* 绝对路径---absolute path、相对路径---relative path
* file文件、directory目录
* buffer缓冲
* 序列化---java.io.Serializable
java对象-----序列化------>字节序列;
java对象<-----反序列化------字节序列;【dubbo远程调用对象传输,也需要类其实现序列化接口】
* java.util.Properties 属性、load、store
-
Java错误、异常
- try-catch-finally【try包裹可能出现异常代码;catch捕获异常、处理异常;finally常用于资源关闭】
-
线程池
ThreadPoolExecutor---线程池执行器
-
线程池核心参数
corePoolSize---核心线程数量 10
maximumPoolSize---最大线程数 15
ArrayBlockingQueue---数组阻塞队列 200
AbortPolicy---拒绝策略【抛异常、直接丢弃】抛异常
【corePoolSize---ArrayBlockingQueue---maximumPoolSize---AbortPolicy】
keepAliveTime---空闲线程最大存活时间
TimeUnit---时间单位 秒-seconds
defaultThreadFactory---默认线程工厂
Java线程池核心参数.png