摘要: 文件 、IO 1. 认识输入输出 2. 认识文件 操作系统角度的文件 -> 软件资源 + 硬件资源 -> 文件 此处文件指 -> 保持在硬盘上的都是文件 -> 目录文件 (文件夹) + 普通文件 (文本文件.txt 、二进制文件.exe ) 文本文件.txt -> 文本数据, 二进制数据组成的合法字 阅读全文
posted @ 2024-07-26 18:40 qyx1 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 多线程进阶 1. 常见锁策略 2. synchronized 优化策略 1. 锁升级 2. 锁消除 3. 锁粗化 3. CAS 指令 1. 什么是 CAS ? 一条 cpu 指令, CAS (M,A,B) -> *M = *A -> swap (M,B) 2. CAS 用处 ? 基于CAS实现 At 阅读全文
posted @ 2024-07-24 09:47 qyx1 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 生产者消费者模型 1. 生产者消费者模型优点 未理解 ! 2. 标准库提供的阻塞队列 查看代码 import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; class Test 阅读全文
posted @ 2024-07-16 17:56 qyx1 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 单例模式 1. 饿汉、懒汉模式 通过特定技巧, 保证在一个进程中某个类只有一个实例对象 具体看代码理解 饿汉模式: 饿 -> 早 (急迫) -> 类加载的时候, 就初始化对象 查看代码 // 单例, 饿汉模式 // 唯一实例创建时机非常早. 类似于饿了很久的人, 看到吃的就赶紧开始吃. (急迫) c 阅读全文
posted @ 2024-07-15 14:24 qyx1 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 线程池 1. 线程池概念 2. 标准库线程池 (面试考点) corePoolSize -> 核心线程数, 一个线程池创建出来, 就有这么多个核心线程, 相当于正式员工 maximumPoolSize -> 最多线程数 ( 核心线程数 + 非核心线程数 ) 如果任务多了核心线程数处理不过来, 就会创建 阅读全文
posted @ 2024-04-28 11:13 qyx1 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 归并排序 左部分有序 > 右部分有序 > 整体有序 查看代码 // https://leetcode.cn/problems/sort-an-array/ import java.util.Arrays; class Solution { public static final int MAX_N 阅读全文
posted @ 2024-04-21 15:38 qyx1 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 一. 泛型类、接口 1. 泛型类定义与使用 查看代码 // <T> 是泛型标识, 相当于 类型形参 // 在外部使用类的时候指定 class Generic<T> { private T val; public Generic(T val) { this.val = val; } public T 阅读全文
posted @ 2024-04-16 16:18 qyx1 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 随机链表的复制 /* // Definition for a Node. class Node { int val; Node next; Node random; public Node(int val) { this.val = val; this.next = null; this.rando 阅读全文
posted @ 2024-04-15 13:41 qyx1 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 哈希表 1. 哈希表概念 阅读全文
posted @ 2024-04-13 17:47 qyx1 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 线程安全问题 1. 什么是线程安全 线程是cpu随机调度, 抢占式执行的, 这就导致程序的结果和预期不同, 我们把这样的问题叫做线程安全问题 例子: class Demo19 { private static int count = 0; public static void main(String 阅读全文
posted @ 2024-04-12 14:59 qyx1 阅读(5) 评论(0) 推荐(0) 编辑