随笔分类 - JavaEE 初阶
摘要:文件 、IO 1. 认识输入输出 2. 认识文件 操作系统角度的文件 -> 软件资源 + 硬件资源 -> 文件 此处文件指 -> 保持在硬盘上的都是文件 -> 目录文件 (文件夹) + 普通文件 (文本文件.txt 、二进制文件.exe ) 文本文件.txt -> 文本数据, 二进制数据组成的合法字
阅读全文
摘要:多线程进阶 1. 常见锁策略 2. synchronized 优化策略 1. 锁升级 2. 锁消除 3. 锁粗化 3. CAS 指令 1. 什么是 CAS ? 一条 cpu 指令, CAS (M,A,B) -> *M = *A -> swap (M,B) 2. CAS 用处 ? 基于CAS实现 At
阅读全文
摘要:生产者消费者模型 1. 生产者消费者模型优点 未理解 ! 2. 标准库提供的阻塞队列 查看代码 import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; class Test
阅读全文
摘要:单例模式 1. 饿汉、懒汉模式 通过特定技巧, 保证在一个进程中某个类只有一个实例对象 具体看代码理解 饿汉模式: 饿 -> 早 (急迫) -> 类加载的时候, 就初始化对象 查看代码 // 单例, 饿汉模式 // 唯一实例创建时机非常早. 类似于饿了很久的人, 看到吃的就赶紧开始吃. (急迫) c
阅读全文
摘要:线程池 1. 线程池概念 2. 标准库线程池 (面试考点) corePoolSize -> 核心线程数, 一个线程池创建出来, 就有这么多个核心线程, 相当于正式员工 maximumPoolSize -> 最多线程数 ( 核心线程数 + 非核心线程数 ) 如果任务多了核心线程数处理不过来, 就会创建
阅读全文
摘要:线程安全问题 1. 什么是线程安全 线程是cpu随机调度, 抢占式执行的, 这就导致程序的结果和预期不同, 我们把这样的问题叫做线程安全问题 例子: class Demo19 { private static int count = 0; public static void main(String
阅读全文
摘要:了解Thread类 1. Thread类中的构造方法 可以给线程起名字 查看代码 public class Test { public static void main(String[] args) { Thread t1 = new Thread( () -> { while (true) { S
阅读全文
摘要:认识线程 1. 什么是多线程编程 现在cpu, 都是多核心cpu 多线程编程就是通过特定的技巧, 把一个任务拆分成几个部分, 然后到不同的cpu核心上去运行 2. 什么是线程 线程是进程的一部分, 一个pcb结构体描述一个线程, 多个pcb结构体对象(多个线程) 描述一个进程 同一个进程的, 线程之
阅读全文
摘要:了解进程 1. 了解操作系统 操作系统是管理软/硬件资源的软件 操作系统 = 内核 + 应用程序 操作系统内核, 处理最核心的管理 2. 什么是进程 进程是一个跑起来的应用程序 进程也是操作系统分配资源的基本单位 3. 操作系统如何管理进程 操作系统如何管理进程 ? 描述 + 组织 描述: 使用结构
阅读全文
摘要:重点: 了解执行指令的大概过程: .c源代码文件 -> 编译 -> .exe可执行文件 (二进制) -> 点击运行.exe 二进制文件 -> 操作系统把这个 二进制文件加载到内存中 cpu 根据PC程序计数器(一个寄存器), 把指令数据读取到寄存器中 -> 解析执行指令 例子: cpu 从pc 程序
阅读全文