自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多媒体 - Nginx直播搭建

一、Windows直播搭建下载Windows版 附带rtmp 模块的Nginx(nginx 1.7.11.3 Gryphon)解压nginx 并配置(参考资料)

2021-03-13 16:26:19 96

原创 RabbitMq 入坑笔记

一、环境搭建下载 RabbitMq由于RabbitMq依赖erlang 所以需要下载 erlang,但是erlang 国内下载贼慢,改为下载erlang-solutions安装RabbitMq,erlang-solutions进入RabbitMq 的sbin目录 执行rabbitmq-service.bat install 命令进行安装进入RabbitMq 的plugins目录,执行 rabbitmq-plugins.bat enable rabbitmq_management 命令, 启用图

2021-03-12 18:21:13 95

原创 面试题准备

Mysql(锁,事务,索引)SpringCloud中间件(RabbitMq)Spring(IOC,AOP,申明式事务,事务隔离级别)SpringBoot 自动配置原理网络相关 Http(三握四挥),Https (原理,能描述其流程)Redis缓存的重要概念 , Redis 面试题Mybatis(原理)简历自我介绍你还有什么问题要问我吗...

2021-03-04 10:32:25 93 1

原创 Electron常见问题 1 - 深度填坑之阴影问题

1、当Win7 如下参数 实现透明无边框窗口时 const win = new BrowserWindow( { width: 430, height: 200, alwaysOnTop:true, //置顶 frame:false, //无边框 transparent: true //透明 }会发现 界面透明化失败,且页面不同区块 颜色不一致导致该原因是因为 win7下 需要开启aero功能,

2021-02-03 14:52:34 968

原创 Spring自定义校验

参考资料JSR303、349 -Bean Validation 数据校验规范使用说明和验证流程源码分析Spring 全局异常处理注意事项使用Java JSR303、349 Bean Validation 数据校验规范来做数据校验 参考资料:JSR303、349 -Bean Validation 数据校验规范使用说明和验证流程源码分析利用好分组 减少校验的逻辑代码分组的class 需...

2020-01-20 15:35:02 678

原创 消息队列

参考资料作用解耦将非自己系统的义务写入metaq,由指定的业务系统去处理,比如原有订单系统,日志系统,现在新建了一个应用,如果需要订单和日志统计等功能,为了使业务耦合,将订单信息和日志信息分别写入订单的MetaQ 和 日志 MetaQ 由这些系统去处理对应的业务异步如果有一些耗时操作,比如调用外部接口推送消息,但是这个操作比较耗时 要建立连接,发送请求,等待返回 时间不可控...

2020-01-16 15:31:15 68

原创 红黑树

参考资料

2020-01-16 15:30:29 86

原创 Mysql面试基础

查找重复数据select * from log group by uid having count(uid) > 1;Mysql事务的各种隔离级别,分别会有什么问题,mysql 是如何解决的读已提交读未提交可重复读串行化Mysql事务的 7种传播...

2020-01-16 15:30:13 115

原创 什么是面向对象(OOP)

什么是OOP参考资料:什么是面向对象(OOP)OOP 即 Oriented Object Programming, 翻译过来就是面向对象编程面向对象的三大特性五大原则三大特性:封装,继承,多态五大原则:单一职责原则SRP(Single Responsibility Principle)开放封闭原则OCP(Open-Close Principle)里氏替换原则LSP(the...

2020-01-16 15:29:56 220

原创 Java 基础

Java 中有多少中基础类型 以及他们大小限制不跟你多BB 看图说话Java中String的底层内幕底层 string的 ‘+’ 拼接是通过创建StringBuilder 对象实现的 ,但是如果在for循环中 使用 ‘+’ 拼接,会每次创建一个StringBuilder 而 如果直接使用StringBuilder 的话 只有一个StringBuilder对象Java对...

2020-01-16 15:29:28 62

原创 Spring Bean循环依赖实例化逻辑

ObjectFactory 中 会存储beanNameBean的定义Bean实例 : 只当进行了初始化 和 属性注入的实例,缺少循环依赖的bean 或 为初始化的beanBean的工厂 :DefaultListableBeanFactoryorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFac...

2020-01-14 17:41:08 143

原创 自定义类加载器的作用

加载非classpath下的类public class Main { public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException { //设置加载路径...

2020-01-09 15:02:22 1383

原创 关于Maven打包插件

maven中 引用不同的插件 打不同的包普通的jar<!-- 打包普通的jar --><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <con...

2020-01-08 11:16:37 105

原创 AbstractProcessor 编译时处理注解(APT)

继承AbstractProcessor 类@AutoService(Processor.class)public class MyProcess extends AbstractProcessor { @Override public Set<String> getSupportedAnnotationTypes() { Set<Stri...

2020-01-08 10:26:25 2930 1

原创 操作系统

学习资料

2020-01-06 16:16:13 73

原创 秒杀系统粗略设计

初始化库存到缓存内存减库如果减库失败则直接返回失败,成功则进入消息队列 ,然后直接返回状态为争抢中,数据库上要使用乐观锁前端显示争抢中的 需要循环请求查询争抢状态,查询库中争抢的状态...

2020-01-06 16:15:47 73

原创 字符串匹配

常见的字符串匹配算法有以下4中BKBrute Force 暴力匹配算法BFBMKMP

2020-01-06 16:15:36 70

原创 Docker

一. Docker命令1. Docker images //打印当前本地的所有镜像信息2. Docker pull 镜像名 //拉取仓库镜像3. Docker run -d -p 3306:3306 -v xxx:/user/xx xxx镜像 //运行镜像 -d 后台运行 -p 端口映射 -v 文件夹映射4. docker stop 容器唯一标识 //关闭容器5. docker rm...

2020-01-06 16:15:21 99

原创 Redis 基础

Redis 参考资料Redis 能读的速度是 110000 次/s,写的速度是 81000 次/s二. Redis 和 Memcache 的区别3. Memcache存储的数据全部都在内存中,断电后 或 突然挂了会全部丢失,Redis 有部分数据存储在硬盘上,这样可以保证数的持久性4. Memcache 支持的数据类型比较简单,Redis有复杂的数据类型 如List,Set,has...

2020-01-06 16:15:05 66

原创 Linux的五种IO模型

IO一次文件的读取和输出,正常的文件读取(输出则反之)大致有以下几个步骤磁盘 -> 2. 内核 空间-> 3. 用户空间所以IO会有用户核和内核的切换最简单的IO - 阻塞IO用户程序调用 内核函数 recvfrom 获取文件数据,但是如果recvfrom 数据没有准备好,用户程序就一直占用线程(阻塞) 等待recvfrom 完成数据复制工作,等数据完成返回继...

2020-01-06 16:14:46 82

原创 Mybatis核心组件及SqlSession四大对象

Mybatis参考资料,核心组件及SqlSession四大对象核心组件SqlSessionFactoryBuilder(1)作用:根据配置信息或者代码来生成SqlSessionFactory(2)实现原理:SqlSessionFactoryBuilder类负责构建SqlSessionFactory,通过源码分析,该类下提供了多个build的重载方法。其实这些方法可以归结为一个签名的方...

2020-01-06 16:14:33 751

原创 Mysql相关Log

参考资料一. Mysql本身Log,无关存储引擎(存储引擎的上层)二进制日志(binlog)relay(中继) log:Mysql 主节点将binlog写入本地,从节点定时请求增量binlog,主节点将binlog同步到从节点。从节点单独进程会将binlog 拷贝至本地 relaylog中。从节点定时重放relay log。二. 存储引擎LogInnodb重做日志(re...

2020-01-06 16:14:22 74

原创 Mysql 主从备份

将Mysql服务器放在同一个局域网内,内网传输贼快,可忽略网络传输的消耗及延迟

2020-01-06 16:14:13 46

原创 排序算法

冒泡排序插入排序选择排序归并排序快速排序

2020-01-06 16:13:58 88

原创 Mysql Innodb存储引擎

锁:行锁: innodb的锁是对索引加锁,如果查询到并没有用到索引就会对表进行加锁 Record Lock:对单条记录加上锁 Gap Lock: 间隙锁,锁定一个范围,但是不包含记录本身 Next -Key Lock: Record Lock+ Gap Lock,锁定一个方位并锁定记录本身 InnoDB会根据不同事务隔离级别会使用不同的算法 MVCC:多版本控制表锁: 例子:...

2020-01-06 16:13:46 71

原创 代码优化(聪明的傻瓜把简单的事情变复杂,聪明的人能把任何事情变简单)

代码同层级之间不要相互调用函数中不要嵌套太多的函数 ,跳转的头疼,或函数中不要有校验逻辑(校验函数放在主函数中,避免互相干扰)

2020-01-06 16:13:29 207

原创 Spring及Spring Web基础

Spring实现的注解判断工具 org.springframework.core.annotation.AnnotatedElementUtilsimport org.springframework.core.annotation.AnnotatedElementUtils;import java.lang.annotation.*;import java.lang.reflect.M...

2019-12-25 02:09:14 169

原创 订单Id生成之雪花算法

/** * @author wcn * @date 2019/12/23 17:09 */public class SnowFlakeUtil { /** * 起始的时间戳 */ private final static long START_STMP = 1480166465631L; /** * 序列号占用的位数 每一部分占用的位...

2019-12-23 19:05:15 1365

原创 Jvm之垃圾收集器

概述:JAVA的内存是靠JVM自动管理的所以需要一个垃圾回收的算法,垃圾收集器是 垃圾回收算法 的具体实现常见的垃圾收集算法有以下几种:标记-清除算法复制算法标记-整理算法火车算法...

2019-12-20 14:08:28 60

原创 Redis持久化

持久化是Redis高可用和容灾的重要环节我了解的有一下2种RBD:周期性生成Redis的快照文件(适合冷备)优点:1)恢复速度比AOF快2)根据时间生产多个文件,可以根据不同时间进行恢复,3)对Redis性能影响小,使用fork进程来处理缺点:由于周期性的更新,如果挂了丢失的数据可能会多大几分钟(具体看设置的同步时间)生产快照文件时由于Redis数据量大,可能会阻塞客户端...

2019-12-20 14:08:09 44

原创 AQS(AbstractQueuedSynchronizer)

主要思想自旋LockSupport (阻塞 park,唤醒unpark)CAS(保证原子性)简介:AQS是Java提供的一种实现阻塞锁和一系列依赖队列的同步器框架基本思路:AQS中线程获取锁时,使用CAS算法进行比较,确保原子性,对象未则获取锁,加锁则自旋重试获取锁,到达自旋上限,则将线程进行阻塞加入同步队列等待锁释放,锁释放完成根据 公平还是非公平锁,再决定是一起竞争 还是按...

2019-12-20 14:07:57 59

原创 代理模式之Spring申明式事务原理

Spring使用动态代理实现申明式事务,Spring的动态代理又有2种基于接口的JDK的动态代理基于类继承的CGLIB代理所以基于JDK的只有接口上的事务注解会生效,且只有主动调用该接口有效,其他接口中调用该函数是无效的所以基于CGLIB的只有能被继承的函数有效,且同JDK一样,只有直接调用有效(代理模式的限制,想突破限制,可以手动获取代理类,再调用被代理的方法),且Spri...

2019-12-20 14:07:09 66

原创 关于 java.lang.IllegalMonitorStateException 异常

普通线程java.lang.IllegalMonitorStateException 异常是由于线程在未获对象锁时,对对象使用了wait(),notify(),notifyAll()等方法 synchronized (this) { System.out.println(Thread.currentThread().getName() + ":" + count.getAndAdd(1))...

2019-12-20 14:06:30 698

原创 Redis缓存击穿与缓存雪崩

缓存雪崩(大面积缓存失效,导致数据库请求量过大)例子:比如对电商首页的热点产品信息,进行了缓存如果查不到则去数据中查找,再加入缓存。则如果12点集中缓存的1小时,到1点钟集中失效,这个时候所有对这批商品的访问查询都会落到库上,对数据库来说看不住这个大的并发,会导致数据库被打挂,DBA很着急 又重启了数据库,但是缓存中还是没有数据,这批数据的请求还是落在数据库上,起来后又瞬间挂了解决方案...

2019-12-19 22:05:09 107

空空如也

空空如也

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

TA关注的人

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