- 博客(46)
- 收藏
- 关注
原创 JVM垃圾回收机制GC理解
JVM垃圾回收分代收集如何识别垃圾引用计数法可达性分析法引用关系四种类型: 强、软、弱、虚强引用软引用 SoftReference弱引用 WeakReferenceWeakHashMap软引用与虚引用的使用场景虚引用与引用队列引用队列虚引用 PhantomReference垃圾回收算法引用计数复制 Copying标记 Mark-Sweep标整 Mark-Compact垃圾回收器种类串行回收器并行回收器并发回收器G1ZGC常用垃圾回收器实例新生代Seria
2023-02-11 18:30:00 3753 1
原创 多线程synchronized对象锁与静态锁之间的8锁问题理解
8锁问题锁1:多个线程使用同一对象分别调用不同带有带synchronized关键字且非静态的方法锁2:在锁1基础上,增加A线程执行的方法的执行时间,使得B有机会参与执行锁3:多个线程使用同一对象,一个线程执行带有对象锁的方法,一个线程执行普通方法锁4:多个线程使用不同对象分别调用不同带有对象锁的方法锁5:多个线程同一个对象分别调用对各自静态锁的方法锁6:多个线程同多个对象分别调用对各自静态锁的方法锁7:多个线程同一个对象分别调用对象锁的方法和静态锁的方法锁8:多个线程不同对象分别调用对象锁的
2023-02-02 17:00:00 628
原创 RabbitMQ消息可靠性问题、死信交换机、延迟消息、惰性队列
消息可靠性生产者确保将消息成功送入队列消息确认消息回执消费者确保消息成功从队列中取出并成功消费消费确认机制消费失败重试机制失败策略使用第三种方式:消费者指定失败后转发的交换机使用第一种方式:在队列中指定死信交换机消息持久化问题交换机持久化队列持久化消息持久化死信交换机配置处理失败的死信交换机配置TTL死信交换机延迟消息DelayExchange插件的安装惰性队列 Lazy Quenes
2023-01-11 20:00:00 982
原创 RabbitMQ的五大常用模型介绍以及SpringAMQP的使用
MQ的介绍使用MQ的好处技术对比RabbitMQ的使用Docker启动MQ角色介绍五大常用消息模型使用SpringAMQP模板简单队列模型工作队列模型广播模型 Fanout路由模式 Direct主题模式 Topic
2023-01-10 20:30:00 587
原创 Java集合List、Set、Map底层源码解析
集合介绍MapHashMapLinkedHashMapHashTablePropertiesCollectionListArrayListVectorLinkedListSetHashSetLinkedHashSetTreeSet
2023-01-09 20:13:13 1124
原创 InnoDB事务原理理解(redo log,undo log,锁,MVCC的理解)
事务事务的四大特性ACID事务相关SQL语句事务原理事务如何解决隔离性隔离性总结事务如何解决原子性、一致性、持久性redo log 重做日志CheckPoint 检查点机制Double Writer 双写磁盘undo log 回滚日志锁表级锁表读锁、表写锁元数据锁MDL意向锁行级锁行读锁,行写锁间隙锁临键锁MVCC实现原理读已提交 RC 详细原理可重复读 RR 详细原理
2023-01-01 20:00:00 756
原创 MySQL存储引擎介绍以及InnoDB引擎结构理解
存储引擎概述各个存储引擎介绍InnoDBMySIAMMemeory其他引擎引擎有关的SQL语句InnoDB引擎逻辑存储结构架构内存部分磁盘部分后台线程InnoDB特性数据引擎是与数据真正存储的磁盘文件打交道的,数据引擎按照指令或将数据存储在磁盘文件,或将磁盘文件数据进行读取。所以说数据引擎是整个DBMS的核心,它有着最本质的功能:读取数据,存储数据。因为不同的表可以选择不同的存储引擎,不同的存储引擎数据处理方式、表的结构,文件形式等也不同MySQL的数据存储引擎采用的是可插拔式的
2022-12-31 20:00:00 733
原创 Docker搭建MySQL主从集群
Docker搭建MySQL主从集群 此时外部环境搭建已经完成,当前两台MySQL各自能够独立运行,容器内部能够相互访问,配置文件中server-id不同,使用Docker搭建一主一从的MySQL集群,使用的是8版本的MySQL镜像不是8的版本部分命令会无效,宿主机任意。可以随意的先启动的一台MySQL容器,然后将/etc目录下的内容复制到宿主机,这样便于修改。上寻找对应的版本,然后将对应版本的下载命令在宿主机复制,最后等待下载完成。这时,此目录到此搭建完成,在主机任何写操作都会立即同步到从机。
2022-12-20 17:54:04 788
原创 SQL概述以及MySQL常用语句总结
数据库概述SQL与NoSQL对比关系型数据库管理系统的常用实例MySQL介绍安装数据库的连接SQLDDLDMLDQL单表查询多表查询多表关系连接查询连接分类内连接 JOIN外连接左外连接 LEFT JOIN右外连接 RIGHT JOIN自连接 JOIN联合查询 UNION子查询标量子查询列子查询行子查询表子查询DCL函数字符串函数数值型函数日期函数流程函数约束约束类型外键
2022-12-14 20:03:50 447
原创 微信小程序+Vant-weapp搭配图表、地图的环境搭建和基本使用
微信小程序+Vant-weapp+wxcharts+高德地图的环境搭建和基本使用
2022-12-13 15:30:00 1263
原创 WebSocket协议理解并实现在线聊天
一文搞懂WebSocket并利用此协议写一个在线聊天室 WebSocket是在HTML5开始提供的一种能在单个TCP连接上进行全双工通讯的网络通信协议HTTP协议:HTTP协议是一种无状态(请求完成后,连接彻底断开,节省资源)、无连接(客户端端向服务端请求数据,获取数据后即断开连接)、单向(连接建立只能由客户端发起)的应用层通信协议,采用请求/响应模型。特性:客户端有事向服务器询问,服务器告诉它,告诉完毕后客户端没有问题就消失的无影无踪
2022-12-12 01:00:00 4210 2
原创 简易室内灯光控制模拟系统 (vue+element+echarts纯前端实现)
极简易的模拟灯光控制系统,使用vue和element-ui、echarts。适合前端小白练习的一个小demo
2022-12-11 18:00:00 1033
原创 NoSQL概述以及redis数据类型总结
SQL与 NoSQLredis简介redis安装修改配置文件redis客户端key的命名五大数据类型String类型Hash类型 HList类型 L RSet类型 SSortedSet类型 Z其他数据类型StreamGeobitMapHyperLogLogredis编程客户端jedis使用springDataRedis使用
2022-12-07 23:30:00 147
原创 zookeeper的使用及集群搭建、监听、选举、锁
简介zk的数据持久化机制ZNode介绍ZNode的类型ZNode结构搭建zookeeper集群选举机制主从数据同步CAP理论监听机制Zookeeper客户端的使用zkClizookeeper原生客户端ZkClientCurator监听机制
2022-11-28 23:45:00 462
原创 vue-admin-template的基本使用
vue-admin-template vue-element-admin 安装 使用 配置nodeJs npm yarn 一套现成的后台管理系统 基于vue和Element ,在element组件的基础上进行封装形成一整套的解决方案
2022-11-17 20:00:00 2692
原创 使用OpenResty、Redis、Caffeine、Canal构成多级缓存
初始化准备JVM进程缓存Caffeinenginx业务集群缓存LUA的基本使用OpenRestyOpenResty业务流程发起请求到tomcat连接redisOpenResty本地缓存缓存同步Canal的安装及配置Canal的消费者端使用Caffeinenginx业务集群缓存LUA基本使OpenRestyOpenResty业务流程发起请求到tomcat连接redisOpenResty本地缓存缓存同步
2022-11-12 20:00:37 1563 2
原创 redis分布式以及持久化机制(主从、哨兵、分片、RDB、AOF)
redis持久化RDBRDB 触发RDB的配置RDB异步持久化原理AOFAOF触发AOF的配置AOF重写AOF重写触发二者对比主从集群搭建集群主从数据同步原理哨兵机制状态监控故障恢复通知搭建哨兵集群客户端连接主从集群分片集群搭建分片集群散列插槽集群伸缩故障转移
2022-11-11 20:00:15 774
原创 黑马点评项目笔记(一)使用redis实现无状态登录
项目搭建项目库表项目架构导入后端项目模板运行前端项目短信登录基于session整体流程发送验证码登录或注册校验登录成功数据放入session问题基于redis基于redis整体流程发送验证码登录或注册检验是否登录成功
2022-11-10 20:00:00 604
原创 黑马点评项目笔记(二)缓存问题(缓存穿透、缓存雪崩、缓存击穿、添加缓存、修改缓存)
redis缓存读写缓存整体流程添加店铺读写缓存添加店铺类型读写缓存更新缓存更新缓存策略更新店铺缓存缓存问题缓存穿透缓存空对象布隆过滤在读取店铺中防止缓存穿透缓存雪崩缓存击穿互斥锁互斥锁的表示添加店铺查询热点key过期问题逻辑过期添加店铺查询热点key过期问题互斥锁与逻辑删除对比
2022-11-09 22:00:00 969 3
原创 黑马点评项目笔记(三)分布式锁、异步秒杀、lua脚本
全局唯一IDredis自增主键秒杀优惠卷悲观锁乐观锁一人一单问题单体项目通过动态代理对象调用方法集群项目分布式锁超时释放导致误删锁问题编写Lua脚本Redission简介可重入锁原理重试原理锁释放原理主从一致原理异步秒杀redis 消息队列ist结构PubSubStream消费者组三者对比使用redisMQ完成异步秒杀总结
2022-11-08 20:00:00 2019 2
原创 黑马点评项目笔记(四)社交、附近人、数据统计功能实现
达人探店查看博文点赞博文点赞排行榜好友关注关注和取关共同关注关注推送(Feed流)Feed流的两种模式Timeline 三种实现模式基于推模式实现消息推送滚动分页附近商户GEO数据结构附近商家搜索用户签到BitMap数据结构实现签到功能签到统计布隆过滤器UV统计hyperLoglog 数结构
2022-11-07 20:00:00 939
原创 SpringSecurity 源码理解及使用(三)
springSecurity授权权限管理策略基于url的权限管理基于方法的权限管理将url权限管理设为动态会话管理会话并发管理会话失效处理禁止再次登录会话共享源码分析CSRF 跨站请求伪造开启CSRF防御传统web开发前后端分离开启CSRF防护csrf防御过程CORS 跨域问题springBoot解决跨域的三种方式springSecurity解决跨域
2022-10-23 19:38:26 2600
原创 SpringSecurity源码理解及使用(二)
springSecurity添加验证码验证码的生成传统web开发前后端分离开发密码加密密码校验流程默认密码加密方式为什么默认是 DelegatingPasswordEncoder指定密码加密方式密码自动迭代更新RememberMe使用方式记住我流程登录认证时 勾选 记住我 流程默认方式一:记住我流程cookie值的构成免密登录流程默认方式的安全问题方式二:内存令牌的使用方式记住我流程cookie值的构成免密登录流程存取过程方式二的安全问题传统web开发记住我前后端分离开发记住我
2022-10-22 09:39:44 508
原创 SpringSecurity源码理解及使用(一)
springSecurity 简介认证与授权整体架构默认配置原理springBoot对SpringSecurity的配置默认数据源存放位置默认用户信息位置自定义配置自定义资源权限规则自定义登录页面自定义登录成功后页面的跳转(传统web项目)自定义登录成功后返回的json(前后端分离)自定义显示登录失败信息自定义登录失败页面跳转(传统web开发)自定义登录失败后返回的json(前后端分离)定义注销登录配置注销登录后 返回的页面(传统web开发)注销登录后 返回的json(前
2022-10-21 16:20:26 634
原创 mybatis逆向工程 根据库表一键生成pojo、mapper、xml
自己整理的 ,只需要修改下配置,拿来即用。免去参照数据库表写实体类,创建持久层层代码环境的时间。3. 编写逆向工程的外置配置文件 (文件名字固定)注意mysql驱动版本要与连接的数据库版本适应。,这里根据项目情况进行自定义配置。
2022-10-18 12:45:00 603
原创 图书管理系统2.0——mysql数据库
图书管理系统mysql数据库 jdbc swing 登录注册用户菜单 借阅图书归还图书个人中心查看所有借阅记录查看借阅中的图书 签到领积分我的消息 修改密码退出登录续借图书 评价图书 消息广场管理员菜单 管理图书添加书籍修改图书下架书籍 消息广场查看图书数据按照库存从少到多查询按照评分从高到低查询
2022-10-10 19:39:28 9193 37
原创 SSM整合笔记
web项目中,springMVC的容器是在dispatcherServlet初始化时创建的,springMVC管理控制层组件controller 需要server和dao层的组件。ContextLoaderListener类中,代码能够加载spring.xml配置创建对应容器,默认spring.xml的位置在。子容器.setParent(父容器),从而子容器能够访问父容器,但父容器不能访问子容器。在服务启动时,spring容器创建的代码在监听器中完成,是父容器。:在web容器启动时创建spring的容器。
2022-09-18 17:24:57 120
原创 mybatis笔记
配置文件mybatis-config 核心配置文件接口Xxx对应的XxxMapper.xml模板mybatis的工厂类mybatis的使用#{} 与${}1. #{}:2. ${}xml中sql语句获取参数值5种情况1. 单个参数2. 多个参数3. 参数为map类型4. 参数为实体类对象5. 使用@Param()查询多条map集合的数据的两种方式map的集合 list模糊查询的三种方式1. 使用 ‘%${}%’2. 使用concat
2022-08-24 16:50:33 211
原创 微信小程序安装及使用 vant-weapp,primose,mobx
微信小程序安装使用 vant-weapp promose化 mobx 组件及页面使用
2022-08-21 13:30:43 688
原创 微信小程序中组件间通信的三种方式
创建一个项目够 修改目录下的app.json,在pages中注册页面 ,同时新增test1组件 也在app.json中注册为全局组件 并命名为my-testapp.json 配置。
2022-08-21 09:47:55 5304
原创 vue/react 组件子父之间的数据传递,事件传递
利用自组件调用父组件事件(事件中形参给数据赋值在子组件调用中,形参为自己的数据)c的页面中定义子组件变量名=“绑定的父组件变量名”(动态绑定)页面中@子组件接收的事件名=父组件中要传递的事件”确保a,b绑定通相同,变量同步。父组件将数据传递给子组件。.........
2022-07-18 03:00:00 996
原创 mybatis-plus + element 实现多功能查询分页
传递两个参数一个是页page的对象(确定分页规则)一个是查询条件wrapper。例如要按照姓名进行分页模糊查询就需要重新设计sql语句同时查出数据和总条数。使用mybatis-plus插件进行分页。在没有使用mp框架的分页插件时进行分页。最终效果(包含element部分)注意pageNum=实际页数-1。②利用继承的mapper找到。③接收前端查询条件并放入分页条件。配置mybatis-plus。例service层。controller层。前端element部分。......
2022-07-17 11:43:19 893 1
原创 快速开始 springboot项目的一个模板
导入父依赖web项目+测试+lombook+mybatisPlus+swagger。。。打jar包插件application模板application-devmapper.xml模板swaggerredis格式化
2022-06-11 16:11:40 149
原创 jwt令牌实现接口保护
登录成功后,将用jwt生成的token返回给前端,可以存放在localstore中,后端不保留身份信息(服务器即使重启也不影响,一但颁发,不可收回)。前端拿着token 上后端确认身份 (会检验出来token是否修改),访问一些受保护的接口时,在headher携带token 进行身份验证。用进行加密算法校验去代替频繁的查询数据库token分为三部分Header :一般存放加密使用的算法(可以不特殊指明)Payload:存放返回来的信息 如user的身份信息 可以被解密 不能存放敏感信息Signatu
2022-06-08 21:42:54 686
原创 利用mybatis-plus自动生成模板代码
特点:1,可指定要生成模板的数据库表2,过滤表格名前置如 如 t_,sys_3,指定命名方式4,指定使用模板(模板可改写)5,指定输出的路径代码运行后 生成代码生成代码生成的模板引擎或(默认为这个)连接mysql数据库通用的工具类......
2022-06-08 18:16:23 1616
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人