自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 收藏
  • 关注

原创 Linux设计与实现——笔记提纲

本文是对于Linux内核设计与实现 (第2版)的笔记和提纲整理第3章:进程管理笔记:1第4章:进程调度笔记:1第5章:系统调用笔记:1

2021-05-02 10:04:33 104

原创 个人博客_笔记总纲

*********************************************************************************************设计模式设计模式复习提纲:https://blog.csdn.net/qq_41157876/article/details/111885174网络通信网络I/O模型:https://blog.csdn.net/qq_41157876/article/details/110505416 计算机网络(TCP.

2020-12-31 14:33:31 259

原创 设计模式复习提纲

1. 创建型(5)(1)单例模式 Singleton:https://blog.csdn.net/qq_41157876/article/details/111520172 懒汉,饿汉 三种常用的线程安全:DCL,静态内部类,枚举类 (2,3)工厂模式Factory:https://blog.csdn.net/qq_41157876/article/details/111554105 简单工厂:if...else判断,违反开闭 工厂方法:Product接口,Factory接口(实.

2020-12-29 15:03:31 129 1

原创 Redis复习提纲

第1-7章:数据结构笔记:https://blog.csdn.net/qq_41157876/article/details/108875869数据结构简单动态字符串(SDS) 优点:O(1)获取长度;空间预分配,惰性空间释放 链表 字典 渐进式rehash 跳跃表 整数集合 升级 压缩列表 连锁更新带来的问题 第8章:对象笔记:https://blog.csdn.net/qq_41157876/article/details/108878853

2020-10-27 07:11:00 157

原创 深入理解java虚拟机——笔记提纲

本文是对于深入理解java虚拟机的笔记和提纲整理主要用于复习和知识点快速复习第二章:内存结构笔记:https://blog.csdn.net/qq_41157876/article/details/1071893952.1 内存结构方法区 栈 堆 本地方法栈 程序计数器2.2 直接内存2.3 对象创建过程2.4 对象内存布局第三章:垃圾回收笔记:https://blog.csdn.net/qq_41157876/article/details/10774.

2020-10-22 04:57:18 176

原创 MYSQL复习提纲

本文是对于MySQL技术内幕 InnoDB存储引擎 (第2版)的笔记和提纲整理主要用于复习和知识点快速复习第二章:Innodb存储引擎2.1 Innodb的后台线程Master Thread *1 IO Thread *4+4 Purge Thread(资源清理) *1 Page Cleaner Thread(刷新脏页) *12.2 内存缓冲池 重做日志缓冲 额外的内存池2.3 Checkpoint技术2.4 innodb特性插入缓冲 二次写 自适应哈希.

2020-10-20 07:06:51 261 3

原创 Java并发编程——笔记与总结

JUC并发包结构图1.executor:1.1 ThreadPoolExecutor:https://blog.csdn.net/qq_41157876/article/details/1074499371.2 ScheduledThreadPoolExecutor:1.3 Future和Callable:2. tools工具包

2020-08-11 06:43:21 380

原创 LeetCode刷题,java知识点

python转了java,记录一些刷题的知识点。1.Stackimport java.util.Stack;Stack<Integer> stack = new Stack<Integer>();出栈并返回栈顶元素:stack.pop();入栈:stack.push(int a);更常用 stack.add(int a);查看...

2020-04-10 00:47:14 395 1

原创 leetcode刷题记录

代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且。思路:剩余左括号总数要小于等于右括号。

2024-04-20 22:05:00 164

原创 数据库专题——分库分表

先说分库:《高性能MySQL》中提到了两种数据库扩展方式:垂直扩展和水平扩展。前者意味着买更多性能强悍的硬件,但是总会达到扩展的天花板,且成本较高。分库则是后者的一种实现方式。流量瓶颈:主要是写多的场景(读多可以通过读写分离,缓存等方式解决问题),而单集群写在大流量下是易达到瓶颈的。容量瓶颈:数据量大的情况下,单集群磁盘不够存储(尤其对于订单类的业务,即使有归档等手段,也难以支撑一定时间范围内的数据存储)。再说分表。

2024-02-21 20:10:06 842

原创 Spring常用名词

11. Environment对象

2021-10-06 14:54:56 195

原创 《git官方文档》笔记整理

一. 本地操作(1)git clone// 1. 直接从远程clone,会在当前目录下创建一个名为 “libgit2” 的目录,并在这个目录下初始化一个 .git 文件夹// git clone <url>git clone https://github.com/libgit2/libgit2// 2. 自定义目录名称,与上一条命令相同,但目标目录名变为了 mylibgitgit clone https://github.com/libgit2/libgit2 mylibg

2021-10-04 13:21:33 491

原创 Mybatis技术内幕——第1章:整体架构与模块

1.1 整体架构模块图1.2 接口层(org.apache.ibatis.session)1.3 核心处理层:四大核心组件(org.apache.ibatis.executor)Executor StatementHandler ParameterHandler ResultSetHandler1.4 基础支持层解析器模块(org.apache.ibatis.parsing) 反射模块(org.apache.ibatis.reflection) 类型转换模块(org.apach.

2021-08-27 17:04:35 240

原创 Mybatis技术框架总结

本文是对于《Mybatis技术内幕》的笔记和提纲整理主要用于复习和知识点快速复习第一章:整体架构与模块笔记:1.1 整体架构模块图1.2 接口层(org.apache.ibatis.session)1.3 核心处理层:四大核心组件(org.apache.ibatis.executor)Executor StatementHandler ParameterHandler ResultSetHandler1.4 基础支持层 解析器模块(org.apache.iba.

2021-08-27 16:57:04 111

原创 《Maven实战》笔记整理

第一章:Maven简介(1)何为Maven构建工具,依赖管理工具,项目信息管理工具 提供免费的中央仓库 约定优于配置(2)其他构建工具IDE:如Eclipse,Idea Make:最早的构建工具,Makefile的语法 Ant:Another Neat Tool(另一个整洁的工具),最早用来构建Tomcat。与Maven类似,但是不提供依赖管理第二章:Maven的安装和配置(1)安装和配置略(2)配置文件$M2_HOME/conf/settings.xml 全局范

2021-07-26 21:23:50 695 5

原创 Spring相关的接口

BeanFactory接口 Resource接口 ResourceLoader接口 Aware接口 BeanDefinition接口 InitializingBean接口 DisposableBean接口 ImportBeanDefinitionRegistrar接口 ImportSelector接口 AliasRegistry接口 FactoryBean接口 BeanFactoryPostProcessor接口 BeanPostProcessor接口1. BeanFacto.

2021-06-14 18:02:51 940 1

原创 Spring笔记——笔记总纲

1. Spring入门使用IOC入门 AOP入门2. Spring常用文档3. Spring的接口BeanFactory接口 Resource接口 ResourceLoader接口 Aware接口 BeanDefinition接口 InitializingBean接口 DisposableBean接口 ImportBeanDefinitionRegistrar接口 ImportSelector接口 AliasRegistry接口 FactoryBean接.

2021-06-14 16:59:42 114

原创 Java8——lambda表达式 + stream流

什么是lambda表达式 语法格式 函数式接口 四大内置核心函数式接口 Consumer Supplier Function Predicate 引用 方法引用 构造器引用 数组引用 1. 什么是lambda表达式匿名函数 更紧凑,简洁的代码风格(1)原先的写法——匿名内部类public void test(){ //匿名内部类 Comparator<Integer> comparator = new Comparato.

2021-05-29 12:57:48 342 1

原创 Linux内核设计与实现——第5章:系统调用

与内核通信 什么是系统调用 系统调用存在的意义 API,POSIX和C库 系统调用的实现原理 5.1 与内核通信(1)什么是系统调用概况的说,系统调用就是用户程序和硬件设备之间的桥梁 在Linux中,系统调用是用户空间访问内核的唯一手段(2)系统调用存在的意义用户程序无需知道硬件设备怎么实现的,只需访问系统调用的接口 比如:用户程序通过write()系统调用就可以将数据写入文件,而不必关心文件是在磁盘上还是软盘上,或者其他存储上 保证系统安全和稳定 ...

2021-05-11 23:16:59 157 1

原创 Linux内核设计与实现——第4章:进程调度

多任务 抢占式和非抢占式 Linux的进程调度 2.5的O(1)调度 2.6的 完全公平调度算法(CFS) 策略 4.1 多任务多任务操作系统:多进程并发执行,可以划分为两类非抢占式多任务(cooperative multitasking):由调度程序来决定何时停止一个进程的运行,通常与时间片(timeslice)搭配使用 抢占式多任务(preemptive multitasking):进程一直执行,直到它完成或主动让步,然后处理器切换到另一个进程。绝大多数操作..

2021-05-05 13:56:36 379

原创 Linux内核设计与实现——第3章:进程管理

进程概念 程序/进程/线程 fork()+exec()+exit() 进程的数据结构 进程描述符task_struct thread_info,tast_struct,stack三者关系 pid和tgid 进程状态:五种互斥状态 表示进程亲属关系的成员 进程创建3.1 进程(1)概念程序:代码段 进程:不仅限于执行期的程序,还包括其他资源,如打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间,一个或多个执行线程 线程.

2021-05-02 22:11:17 132

原创 Netty笔记1——网络模型

网络IO模型(BIO, NIO, 多路复用, AIO) Reactor模型 单Reactor单线程 单Reactor多线程 主从Reactor多线程 结论1. 网络模型见笔记:https://blog.csdn.net/qq_41157876/article/details/1105054162. Reactor模型Reactor模型,是指通过一个或多个输入同时传递给服务处理器的服务请求的事件驱动处理模式 Reactor模式也叫Dispatcher模式,即I/O多了复.

2021-04-09 00:34:13 98

原创 数据结构——排序算法

堆排序 快速排序1. 堆排序(1)堆的定义(以最大堆为例):性质1:是一颗完全二叉树(通俗地讲,就是每个结点从左到右依次排列,当中没有空缺) 性质2:每一颗子树(非叶子节点)都满足:左儿子 <自己 & 右儿子 <自己以下图为例,就是一个最大堆:首先满足是一颗完全二叉树,其次每个非叶子节点都满足性质2(2)排序算法通俗地讲,分为3步 1. 每次都从最后一个非叶子节点进行遍历,把整个数组中最大的数给置换到堆顶 2. 把堆顶的树和最后一个节点交换(这...

2021-04-08 22:11:12 70

原创 生产力工具集合

数据库可视化 Navicat PLSQL DataGrip 笔记工具 印象笔记 XMind思维导图 draw.io Typora 搜索工具 Utools Http Postman Linux远程 SecureCRT Xshell Redis Another Redis Desktop Manager

2021-04-07 09:13:23 94

原创 计算机网络面经复习2——HTTP/HTTPS

HTTP/HTTPS1. HTTP vs HTTPS 2. HTTPS详细流程 3. HTTPS1.0 / 1.1 / 2.0 4. 常用状态码 5. GET和POST 6. Request和Response 7. Session和Cookie 8.从输入网址到获得页面的全过程1. HTTP/HTTPS(1)区别:HTTPS多了SSL握手协议,更安全可靠HTTPS:当浏览器访问 HTTPS 通信有效的 Web 网站时,浏览器的地址栏内会出现一个带锁的标记。区别 ..

2021-04-06 22:19:10 324

原创 Java并发编程12——CopyOnWrite系列

CopyOnWrite系列 写时复制;弱一致性;写加锁,读快照 CopyOnWriteArrayList 属性:reentrantLock + volatile Object[] add方法:先加锁,复制写,改变引用对象,解锁 get方法:不加锁,对snapshot操作,存在弱一致性问题 CopyOnWriteArraySet 内部用CopyOnWriteArrayList来代理 12.1 CopyOnWriteCopyOnWrite的意思是写时复制,关于这个的容器集.

2021-04-06 17:42:10 147

原创 Java集合框架

Collection接口 List LinkedList ArrayList Stack Vector Set HashSet / LinkedHashSet TreeSet Queue Deque LinkedList Map接口 HashMap /HashTable LinkedHashMap TreeMap 并发集合 ConcorrentHashMap( 1.7 + 1.8 ) Copy...

2021-04-06 16:45:59 82

原创 Redis——Redis实现分布式锁

分布式锁 基于数据库实现分布式锁 基于缓存Redis实现分布式锁 Redisson 基于Zookeeper实现分布式锁 1. 数据库实现(1)悲观锁实现:利用select … where … for update 加排他锁,业务处理完再用commit()释放锁注:要注意行锁转换成表锁的问题 InnoDB引擎在加锁的时候,只有通过索引进行检索的时候才会使用行级锁,否则会使用表级锁。这里我们希望使用行级锁,就要给method_name添加索引,值得注意的是,这个索引一定要.

2021-04-06 15:15:31 178

原创 Java常见问题整理

Object中有哪些方法 Java的基本类型有哪些

2021-04-03 12:29:40 61

原创 MYSQL复习——番外章:优化相关

11.1 常用优化手段show status:查看各个语句频率 show processlist:查看低效率的语句 explain:分析特定语句(最常用) show profiles:查看之前各个语句的耗时 trace工具:查看具体sql执行语句时的优化细节11.2 索引的使用建议和底层原理有关的索引失效 / 回表问题 不要在索引列上进行运算操作,索引失效 字符串类型不加单引号,索引失效 in走索引,not in失效11.3 SQL语句优化大批量insert insert语.

2021-03-31 22:33:05 66

原创 JAVA基础——泛型

泛型的优点和作用 面向抽象 / 可复用 编译期安全检测 代码可读性 泛型定义和使用 泛型类 /泛型接口 泛型方法 泛型标识符:T, E, K, V, S 通配符<?> <?>结合容器时,无法使用增删改查方法,编译期报错 泛型擦除 class Test<T>:会擦除泛型,相关的参数都变Object class Test<T extends Clz>:会擦除泛型,相关的参数都变Clz 本篇是参考来的,参照...

2021-03-31 17:19:53 68

原创 Java并发编程7——Atomic家族2

原子累加器(JDK1.8):AtomicLong和AtomicDouble的升级类型,专门用于数据统计,性能更高。 DoubleAccumulator DoubleAdder LongAccumulator LongAdder 伪共享问题 缓存行失效 / 伪共享 @sun.misc.Contended注解 Unsafe对象原子累加器 LongAdder,DoubleAdder 作用:虽然AtomicLong等原子类能够通过CAS进行原子累加操作,但在多线程竞.

2021-03-31 10:59:07 150

原创 Java并发编程6——Atomic家族1

概述 基本类型(boolean, int, long, 对象) AtomicBoolean AtomicInteger AtomicLong AtomicReference 数组(Long, Integer, 对象) AtomicLongArray AtomicIntegerArray AtomicReferenceArray 字段更新器(指定对象的指定字段) AtomicLongFieldUpdater AtomicIntegerFieldUpdater .

2021-03-30 18:03:00 122

原创 Java并发编程7——AbstractQueuedSynchronizer / ReentrantLock(未完)

ReentrantLock 介绍(与synchronized的区别) 使用方式 源码 NonfairSync 和FairSync AbstractQueuedSynchronizer(AQS) 源码 ReentrantLock 介绍(与synchronized的区别):除了synchronized之外的另一种独占锁 从底层出发 synchronized基于jvm级别,而ReentrantLock属于API级别 从性能出发 synchronized..

2021-03-30 17:27:54 99 1

原创 Java并发编程4——Executor / ExecutorService / ThreadPoolExecutor线程池

继承关系 Executor接口(顶层接口) ExecutorService接口 AbstractExecutorService抽象类 ThreadPoolExecutor实现类 ThreadPoolExecutor 属性 线程池状态(ctl属性) 构造器 / 参数 线程池运行机制 源码级别 Work类 Executors工具类提供的线程池实现 nexFixedThreadPool:固定大小的线程池 newCachedThreadPool:带缓冲池.

2021-03-29 15:45:35 160 1

原创 Java并发编程3——JMM / synchronized / volatile / Monitor / 加锁算法

synchronized和volatile Java内存模型(原子性,可见性,有序性) volatile 可见性:内存语义 有序性:内存屏障 synchronized 两种加锁方式 实例加锁:synchronized(this) / 普通方法 类对象加锁:synchronized(this.class) / 静态方法 底层原理:Monitor monitorenter / monitorexit / ACC_SYNCRONIZED C.

2021-03-19 10:52:06 182

原创 Java并发编程2——Java线程

Java线程 线程的创建(Thread,Runnable,FutureTask) 线程的常用方法 线程的生命周期和状态 操作系统层面:五种状态 Java API层面:六种状态 锁对象的方法:wait()和notify() 执行原理 WAITING与BLOCKED状态的区别 wait()与sleep()的区别 notify()与notifyAll()的区别 虚假唤醒 LockSupport类的方法:park()和unpark(thread).

2021-03-16 21:52:03 104

原创 Java并发编程1——基础知识

基础 并行和并发 同步和异步 线程 线程的创建(Thread,Runnable,FutureTask) 线程的常用方法 1. 基础概念:并发和并行 并发(concurrent ):同一时间应对多件事的能力。例如:一个人交替做多件事 并行(parallel ):同一时间动手做多件事的能力。例如:三个人每人负责一件事 概念:同步和异步 以方法调用为例 同步:需要等待结果返回才能继续运行 异步:不需要等待结果返回 2. 线程线程创建的三种方式.

2021-03-16 21:40:55 81

原创 Oracle-Mybatis记录

批量操作批量插入<insert id="insertList" parameterType="java.util.List"> INSERT INTO TABLE(EID, EITIME, EUTIME, COLUMN1, COLUMN2, COLUMN3, COLUMN4) SELECT SEQ_ID.nextval eid , t.* FROM( <foreach collection="list" item="item" se

2021-03-04 09:04:40 147 1

原创 Redis——缓存穿透 / 雪崩 / 击穿

缓存穿透 BloomFilter 缓存雪崩 缓存击穿 布隆过滤器1.缓存穿透 / 雪崩 / 击穿从事态严重性来讲:穿透 > 雪崩 > 击穿缓存穿透:数据库中数据不存在,缓存也不存在。每次都大量请求数据库,打穿数据库 解决方法 1. 缓存预热:缓存预热就是系统上线后,将相关的缓存数据直接加载到缓存系统,避免用户请求的时候,再去加载相关的数据 2. 布隆过滤器:见下 缓存雪崩:原有缓存失效(过期),新缓存未到期间;或者redis挂了。大量请求打向..

2021-02-24 16:31:53 86

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除