自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 【学习笔记】进程、线程、协程及进程间通信

线程是进程的一个实体,是cpu调度的基本单位,比进程更小,且可独立运行,它自己只拥有一点系统资源,与线程通过共享内存通信,上下文切换资源消耗少,但容易丢失数据,与其他线程共享进程拥有的全部资源。一个进程可以拥有多个协程,一个线程也可以拥有多个协程,使用协程可以减少线程切换消耗,在一个线程中可以有多个协程,协程可以决定自己的执行情况以及是否切换。【套接字是网络通信的端点,上接应用程序,下接通信协议,套接字表示为(127.0.0.1:2312)】接通流程:服务端监听->客户端请求->建立连接。

2025-08-15 16:42:36 67

原创 【学习笔记】JVM内存模型

JVM中,多线程切换使用cpu执行时,会使线程进入阻塞状态,此时程序计数器记录了该线程之前的执行位置,可以让线程恢复时找到运行位置。Java栈中存储的是栈帧,一个栈帧代表一个摇执行的方法;存储了类的信息:名称、方法信息、字段信息,静态变量、常量以及编译器编译后的代码,运行时常量池。存储栈中引用指向的具体对象本身,由全部线程共享。与java栈相同,不过处理native方法。线程中存储的值出栈运算后压栈入操作数栈。③运行时常量池的引用。

2025-08-15 16:34:49 66

原创 【学习笔记】JVM GC回收机制

新创建的对象会先入eden,一段时间后进行gc,gc时先将可达的标记,并复制到s1中,然后删除eden中的对象(全部),之后在gc时标记s1与eden中的的可达对象,复制到s2中,删除eden与s1中的全部对象…①先将从树根开始,可以到达的对象标记为可达(JVM中的对象们存储为一颗树)①先将a区域中的可达对象标记,然后复制到b区,再删除a区全部对象。首先新生代分为三个区:eden、s1、s2(8:1:1)将可达对象标记,清除不可达对象,向左压缩。缺点:浪费大量空间(50%)优点:没有碎片空间,速度快。

2025-08-15 16:17:18 129

原创 【学习笔记】Java并发编程的艺术——第10章 Executor框架

用户控制将任务交给线程,而操作系统调度线程的执行,Java线程一对一映射为操作系统线程。

2025-08-15 15:43:32 47

原创 【学习笔记】Java并发编程的艺术——第9章 Java中的线程池

线程池优势:①减少资源消耗②提高响应速度③统一管理。

2025-08-15 15:35:19 74

原创 【学习笔记】Java并发编程的艺术——第8章 Java中的并发工具类

初始化有一个int参数,代表有n个线程阻塞在当前同步屏障上时,会全部放行。

2025-08-15 15:20:56 39

原创 【学习笔记】Java并发编程的艺术——第7章 Java中的13个原子操作类

【原子更新带有版本号的引用类型(解决ABA问题)】可以原子的更新一个类中的某些volatile字段。Int,Long,引用数组。

2025-08-15 15:09:59 80

原创 【学习笔记】Java并发编程的艺术——第6章 Java并发容器和框架

BlockingQueue支持插入/移除时阻塞在插入/移除时可选方法:①抛异常②返回特殊值③阻塞④超时退出把大任务fork成小任务(可多次fork)再join结果。

2025-08-15 14:54:42 571

原创 【学习笔记】Java并发编程的艺术——第5章 Java中的锁

1>锁在编写时面向使用者,定义了锁与用户的交互2>同步器面向锁的实现,并屏蔽了同步状态管理、线程的排队】等待与唤醒等底层操作3>锁与同步器将锁的使用与实现进行了解耦。

2025-08-15 14:10:42 209

原创 【学习笔记】Java并发编程的艺术——第4章 Java并发编程基础

操作系统调度的最小单位,有自己的计数器栈、局部变量、共享内存。

2025-08-14 18:26:22 233

原创 【学习笔记】Java并发编程的艺术——第3章 Java内存模型

该规则保证了前一个操作对后一个操作是可见的1>程序顺序规则一个线程中的每个操作h-b于之后任意操作2>监视器锁规则解锁h-b于加锁3>volatile对于volatile写h-b于读4>传递性。

2025-08-13 13:58:07 918

原创 【学习笔记】Java并发编程的艺术——第2章 Java并发机制的底层实现原理

1>volatiole的定义与实现原理–可见性:当处理器处理时,会将系统内存中的操作数读入缓存,而在修改时,若命中了缓存,则直接修改缓存中的值,但不会立马写回内存中。volatile的变量在修改时会做两件事:①将当前缓存行数据写回系统内存②这个写回内存的举动会使其他cpu里缓存了该内存池地址的数据无效【L1与L2缓存每个核独立;L3缓存核共享,cpu独立】原则:①操作写回系统时会加内存独占锁,或更复杂的缓存锁②cpu会嗅探其他处理器是否修改了自己缓存的行。

2025-08-11 13:45:56 406

原创 【学习笔记】Java并发编程的艺术——第1章 并发编程的挑战

即使是单核处理器也支持多线程执行代码,CPU给每个线程分配CPU时间片实现多线程,而每个时间片一般是几十毫秒,所以多个线程感觉是同时执行的但同一个核切换线程执行时会保存运行状态,以便下次切回来后读取运行,所以有上下文切换。

2025-08-02 19:08:18 215

原创 【学习笔记】MySQL技术内幕InnoDB存储引擎——第9章 性能调优

InnoDB数据库一般应用于OLTP应用:OLTO特点:①用户操作的并发量很大②事务处理的时间一般比较短③查询的语句较为简单,一般走索引④复杂的查询较少1>OLAP一般为CPU密集型(可换CPU好的机器)2>OLTP一般为IO密集型(可换IO性能好的机器)CPU核数多可优化IO线程数与大并发请求。

2025-08-02 18:58:55 231

原创 【学习笔记】MySQL技术内幕InnoDB存储引擎——第8章 备份与恢复

分类:1>备份方法分类:①热备:运行时备份②冷备:停止运行时备份③温备:加全局读锁备份2>备份文件分类①逻辑备份②裸文件物理备份3>备份数据库内容分类①完全备份②增量备份③日志备份【MySQL数据库复制原理(主从)就是异步实时的将二进制日志重做传送到(salve/stard by数据库)】【因为InnoDB支持非锁定读,所以实现一致备份只需在REPEATABLE READ可重复度下到处一组关键表即可】

2025-08-02 18:47:08 220

原创 【学习笔记】MySQL技术内幕InnoDB存储引擎——第7章 事务

持久性指的是可靠性,而不是可用性。

2025-08-02 18:46:44 895

原创 【学习笔记】MySQL技术内幕InnoDB存储引擎——第6章 锁

为保证一致性,对于共享资源设置锁机制。

2025-08-02 17:33:19 373

原创 【学习笔记】MySQL技术内幕InnoDB存储引擎——第5章 索引与算法

不重复的估计值,是预估值,而不是一个准确值,这个值除以数据行数,如果太小的话,不建议使用索引,因为即使在索引中查到了,也需要在相同值中扫描相关数据,从而使索引失去意义。InnoDB1.2.x版本开始,InnoDB支持索引。

2025-07-06 00:02:43 582

原创 【学习笔记】MySQL技术内幕InnoDB存储引擎——第4章 表

数据库的分区是指将一个表或索引分解为更多个更小,更可管理的部分。但逻辑上讲,只有一个表或一个索引,但在物理可能有多个物理分区组成。分区不是引擎层完成的,但部分引擎支持分区,部分不支持。MySQL是水平分区(按行分区)加局部分区(索引与数据一起做分区)分区时应指定唯一索引的一部分为分区列,没有唯一索引时可任意指定。

2025-07-05 16:23:02 528

原创 【学习笔记】MySQL技术内幕InnoDB存储引擎——第3章 文件

每一个表或视图的结构定义保存为一个单独的.frm后缀名文件。

2025-07-05 10:28:15 288

原创 【学习笔记】MySQL技术内幕InnoDB存储引擎——第2章 InnoDB存储引擎

1>InnoDB是基于磁盘存储的数据库引擎,一般使用缓冲池技术来提高整体性能在数据库中进行读取页的操作,首先将页存放在缓冲池中,如果读取时在缓冲池中命中了,则直接读取。在修改数据库页时,先在缓冲池修改,再以一定的频率刷新到磁盘上各种页的含义 P232>缓冲池如何管理①一般情况下,通过LRU算法,频繁使用的在前端,缓冲池不能存放新页时,会释放LRU列表尾端的页②页修改后为脏页,保存在Flush列表中。

2025-06-28 19:07:57 838

原创 【学习笔记】深入理解Java虚拟机学习笔记——第13章 线程安全与锁优化

略。

2025-06-28 17:33:47 219

原创 【学习笔记】深入理解Java虚拟机学习笔记——第12章 Java内存模型与线程

略。

2025-06-28 17:16:49 423

原创 【学习笔记】深入理解Java虚拟机学习笔记——第11章 后端编译与优化

略。

2025-06-22 19:36:46 257

原创 【学习笔记】深入理解Java虚拟机学习笔记——第10章 前端编译与优化

1>前端编译器:Javac命令。【.java文件->.class文件】2>即时编译器:Hotspot.C1.C2 【.class文件->机器码】3>提前编译器:JDK的Jaotc等【.java->机器码】

2025-06-22 18:38:32 231

原创 【学习笔记】深入理解Java虚拟机学习笔记——第9章 类加载及执行子系统的案例与实战

程序能控制的主要是字节码生成与类加载器这两部分。

2025-06-15 19:42:12 151

原创 【学习笔记】深入理解Java虚拟机学习笔记——第8章 虚拟机字节码执行引擎

解释执行,编译执行,或混合执行。

2025-06-15 19:22:17 301

原创 【学习笔记】深入理解Java虚拟机学习笔记——第7章 虚拟机类加载机制

略。

2025-06-15 19:21:57 427

原创 【学习笔记】深入理解Java虚拟机学习笔记——第6章 类文件结构

Java虚拟机指令由操作码及0-多个操作数构成,面向操作数栈。

2025-06-15 17:09:53 336

原创 【学习笔记】深入理解Java虚拟机学习笔记——第5章 调优案例分析与实战

略。

2025-06-08 15:46:33 320

原创 【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

P148~P151。

2025-06-08 15:21:21 252

原创 【学习笔记】深入理解Java虚拟机学习笔记——第3章 垃圾收集器与内存分配策略

p128~P129。

2025-06-08 14:58:08 736

原创 【学习笔记】深入理解Java虚拟机学习笔记——第2章 Java内存区域与内存溢出异常

略。

2025-05-02 22:37:50 738

原创 【学习笔记】深入理解Java虚拟机学习笔记——第1章 走进Java

Java成功的原因1>一次编写到处运行2>内存管理安全,自动回收3>运行时编译4>强大成熟的第三方库。

2025-05-02 18:03:11 331

原创 Redis学习笔记——第24章 监视器

monitor命令将当前redis客户端变为一个监视器,可以实时获取redis的命令请求相关信息。

2024-08-10 13:15:02 403

原创 Redis学习笔记——第23章 慢查询日志

可保存超过配置时间的N条慢查询日志(FIFO),保存日志ID、执行时间、执行时长、命令及参数。

2024-08-10 13:09:57 308

原创 Redis学习笔记——第22章 二进制数组

操作bit数组,省时省空间的好办法。

2024-08-10 13:02:59 311

原创 Redis学习笔记——第21章 排序

对包含数字的列表或集合创建一个长度相同的数组,然后对数组中的元素进行排序。

2024-08-10 12:48:33 342

原创 Redis学习笔记——第20章 Lua脚本

将脚本用Lua环境中的函数定义,函数名为SHAI校验和。

2024-08-04 20:46:12 520

原创 Redis学习笔记——第19章 事务

使用multi命令开启一个事务通过修改客户端的flags字段为REDIS_MULTI。

2024-08-04 18:23:45 403

MyMybatisGenerator.zip

一个超级方便的dao层、bean层、mapperXML代码生成工具。

2021-07-28

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

TA关注的人

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