一,封装
面向三大特性:封装、继承、多态
1.1 封装的概念
生活中的封装:打包、机箱
代码中的封装:方法、类、包
进程:正在运行的程序
线程:是进程中的一个执行单元(一条执行路径),一个进程至少包含一条线程。如果一个进程包含多个线程,这种程序就叫多线程程序
并发:两件事同时进行
并行:两件事同时发生
线程的调度:
- 分时调度:所有线程轮流使用CPU,每个线程平均分配CPU的执行权
- 抢占式调度:优先让优先级高的线程执行,优先级相同时,CPU随机分配执行权,Java 中多线程的执行方式就是抢占式的
注:Java 程序在没有额外开启线程的情况下也有两个线程:主函数所在的主线程、垃圾回收线程
步骤:
- 定义类继承 Thread 类
- 重写 run() 方法,在 run() 方法中的功能就是线程要执行的功能
- 创建 Thread 的子类对象
- 调用 start() 方法开启线程,Java 虚拟机自动调用该线程的 run() 方法。
注:同一个线程对象不能重复调用 start(),否则会发生 IllegalThreadStateException
包:关键字
package
,本质就是文件夹问:为什么要创建不同的包?
答:因为一个项目中会有许多模块,一个模块中会涉及到很多相关的类,创建不同的包,将对应的类放在这些包中能提高对项目的管理。
任何一个类都必须在一个包中,并且这个类的第一行必须明确该类的完整路径
1
2
3
4
5
6
7 package com.qf.test;// 当前类所属的包
public class Test1 {
public static void main(String[] args) {
}
}注:
一个类的完整路径(全类名、类全名)
1 例如:Test1这个类的完整路径是com.qf.test.Test1
规则:标识符的规则
规范:全小写,用
.
来划分包的结构层次,一般使用域名倒置常见的包名:
- 测试包:test
- 工具包:util
- 实体包:domain、entity、pojo、bean
- 数据库:dao(data access object)
- 业务层:service、business
- 控制层:controller