基本语法
JDK、JRE、JVM
权限修饰符
- | 类内部 | 包内部 | 子类 | 外部包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
常量
数据类型
- 基本数据类型
类型 | 名称 | 含义 | bit |
---|---|---|---|
整型 | byte | 字节 | 8 |
整型 | short | 短整型 | 16 |
整型 | int | 整型 | 32 |
整型 | long | 长整型 | 64 |
浮点型 | float | 浮点数 | 32 |
浮点型 | double | 双精度浮点数 | 64 |
字符 | char | 字符 | 16 |
布尔型 | boolean | 布尔型 | 1 |
- 引用数据类型
String
数组
接口
类
面向对象
抽象
封装
继承
多态
高级应用
异常处理
多线程
-
概念
程序:指令+数据(静态)
进程:执行程序的过程
线程:操作系统能够进行运算调度的最小单位。在Java中,线程是程序执行流的最小单元。 -
线程创建
1、Thread Class(继承),重写run()方法,调用start()方法
底层:实现 Runnable 接口
缺点:OOP单继承
2、【推荐】Runnable 接口(实现),实现run()方法,传入对象(静态代理),调用start()方法
3、Callable 接口(实现) -
线程状态
1、new
2、runnable
3、running
4、blocked
5、dead -
线程停止
1、线程正常停止
2、使用标志符
3、不使用stop或destroy等过时方法 -
线程休眠 sleep
模拟网络延时,倒计时等;不会释放锁 -
线程礼让 yield
让当前线程暂停,但不阻塞;礼让不一定成功 -
“插队” join
当一个线程调用另一个线程的join()方法时,调用线程会被阻塞,直到被加入的线程完成其任务。 -
优先级 priority 1~10
先设置优先级,再启动 -
守护线程 daemon
为了服务其他线程而存在的;
记录日志、监控内存、垃圾回收;
当所有的非守护线程都终止时,守护线程也将自动终止 -
线程同步 synchronized
队列+锁(变化的对象,增删改)
缺点:性能问题
同步方法:确保同一时刻只有一个线程可以执行该方法
同步块:允许你在一段代码块内执行同步操作,而不是整个方法
死锁:指两个或多个线程陷入了永久等待的状态,每个线程都在等待另一个线程释放资源
锁:lock 显式锁(手动开关) -
线程协作
生产者消费者问题(管程法、信号灯法)
wait():等待,释放锁
notify():唤醒等待的线程 -
线程池 ExecutorService
提升速度、减少资源消耗、便于管理
execute()/shutdown()
集合
List
- ArrayList
Set
- HashSet
Map
-HashMap
常用类
注解
反射 Reflection
Class 类
I/O
泛型
参考
集合:https://www.bilibili.com/video/BV1YA411T76k/?spm_id_from=333.337.search-card.all.click&vd_source=2657cb270ac61e9520442429c5dacab7