自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux开发常用命令(持续更新)

Linux开发常用命令基础命令文件相关文件内容相关总结开发中比较常用的命令,包括,linux,java,docker,nginx等,持续总结更新基础命令Llinux简单基础命令文件相关pwd 当前路径cd 切换路径~ 切换到用户目录ls 列出当前路径下文件名与文件夹名-a 包括隐藏文件-l 包括属性mkdir 创建文件夹touch 修改文件或目录时间属性ln 建立文件硬链接-s 软链接cp 复制文件或目录-r 包括目录下所有文件和目录mv 移动或改

2020-12-02 15:45:32 201

原创 分布式锁总结

分布式锁总结1.数据库实现2.缓存实现3. Zookeeper实现1.数据库实现锁强依赖数据库可用性,数据库一旦挂掉会导致业务不可用没有失效时间,解锁失败会导致死锁非阻塞,没有阻塞队列,不过可以使用for update排他锁来实现非重入,获得锁的线程无法再次获得2.缓存实现锁的失效时间通过过期时间来实现,不好把控非阻塞,可通过while循环执行,开销大不可重入,可通过保存主机和线程信息单独做判断优点:性能好,实现方便3. Zookeeper实现基于zookeeper的临时有

2021-10-21 12:04:14 330

原创 从如何保证事务到如何保证分布式事务

从如何保证事务到如何保证分布式事务事务特性本地事务如何保证为什么会产生分布式事务分布式事务如何保证事务特性保证事务就是需要保证能实现这些事务特性原子性一致性隔离性持久性本地事务如何保证为什么会产生分布式事务分布式事务如何保证...

2021-09-08 10:19:20 372

原创 RocketMQ零碎知识点

RocketMQ零碎知识点1.事务消息如何保证2.事务消息执行流程3.消息的存储4.事务消息的存储1.事务消息如何保证基于两阶段提交和定时任务回查2.事务消息执行流程1.应用程序完成本地事务后,同步调用MQ消息发送接口,发送状态为prepare的消息,发送成功后等待本地事务的执行情况。为两阶段提交的第一阶段2.同时MQ会将prepare消息备份其主题和消息队列,将消息存储在RMQ_SYS_TRANS_HALF_TOPIC的消息消费队列中,然后会开启一个定时任务,消费该消息队列的消息,并向应用

2021-09-08 09:20:44 243

原创 分库分表引入的问题

分库分表引入的问题数据迁移数据迁移从没有分库分表到分库分表

2021-08-30 11:30:56 125

原创 操作系统和网络零碎知识点

操作系统和网络零碎知识点1.Http1.0和Http1.1的区别2.HTTP2.0的特点3.线程通信方式4.进程通信方式1.Http1.0和Http1.1的区别HTTP1.1中可以在一个TCP连接上传输多个HTTP请求HTTP1.1拥有更多的请求头和相应头实现功能,比如host缓存处理,带宽优化2.HTTP2.0的特点性能提升:二进制分帧多路复用:一个http可以同时传输多个链接的帧首部压缩:通过双方缓存头部信息表来减少首部的传输大小请求优先级3.线程通信

2021-07-15 22:20:17 75

原创 项目管理知识点

1.什么是项目项目是人们通过努力,运用各种方法,将人力,材料和财务等资源组织起来,根据商业模式的相关策划安排,进行一项独立一次性或长期无限期的工作任务,以达到由数量和质量指标所限定的目标2.项目的特征目标:一个明确界定的目标,一个期望的产品或结果。任务:项目执行需要完成一系列相互关联的任务资源:项目需运用各种资源来执行任务,包括不同的人力,组织,设备,原材料和工具时间:项目有具体的时间计划或有限寿命独特:项目可能独一无二客户:客户是为达成目标提供必需资金的实体不确定性:一个项目开始前,应

2021-06-23 20:51:14 1673

原创 node代理模式在开发中的一点应用

主要介绍代理模式的实现方案和我在开发中的一点应用(真的只有一点)node中代理模式的实现方案主要有三种:对象组合,对象增强和ES2015中的Proxy对象,主要使用最后一种方式进行应用MDN对Proxy的讲解主要利用Proxy代理封装了一个计算函数耗时的代理module.exports.Consuming = function (fun,funName) { return new Proxy(fun, { async apply(target, thisArg, args.

2021-05-20 16:22:06 129

原创 JavaScript作用域深入

JavaScript作用域深入编译相关作用域欺骗函数作用域和块作用域块作用域编译相关一般源代码编译步骤:分词/词法分析:代码分解为词法单元 => 解析/语法分析:将词法单元数组构建为抽象语法树 => 代码生成:将抽象语法树转换为可执行代码两种查询类型:LHS和RHS,赋值号左边和赋值号右边的区别a = b对于a来说,编译器执行的是LHS查询,即获取变量a的容器(也就是地址),要写这个变量对于b,执行RHS查询,获取变量b的值,要读这个变量不管是LHS查询还是RHS查询,如果在当前作

2021-04-22 17:11:18 55

原创 JVM中OOM异常场景及调优方案

JVM中OOM异常场景及调优方案

2021-04-04 20:28:34 205

原创 Elasticsearch学习笔记(一):初识

Elasticsearch学习笔记(一):初识ES使用场景ES vs MysqlES安装ES使用场景分布式全文检索大量数据实时检索且快速支持REST的查询ES vs MysqlMysql数据结构和ES结构对应MysqlESDatabaseIndexTableTypeRowDocumentColumnFieldSchemaMappingMysql: select * from user.user_info where name =

2021-04-01 11:56:49 88

原创 Java对象创建过程详解

Java对象创建过程详解1.常量池中定位类的符号引用2.堆中空间分配分配时的并发安全3.对象属性初始化4.设置对象头5.执行构造方法HotSpot解释器代码片段资料来源于深入理解Java虚拟机:JVM高级特性与最佳实践 周志明著1.常量池中定位类的符号引用若常量池中存在new指令的参数,表示该类已经被加载、解析和初始化过,否则,先执行类的加载过程2.堆中空间分配在类加载检查通过后,在堆中为对象分配内存。分配方式有两种,取决于堆内存区域是否规整。指针碰撞。在新生代一般采用的是Serial,Par

2021-03-31 11:11:23 83

原创 Spring零碎知识点

Spring零碎知识点1.IOC和AOP原理2.AOP用到了哪些jdk代理类3.Bean创建过程1.IOC和AOP原理2.AOP用到了哪些jdk代理类3.Bean创建过程

2021-03-29 15:32:16 81

原创 DB零碎知识点

DB零碎知识点1.Redis穿透击穿雪崩解决方案1.Redis穿透击穿雪崩解决方案缓存穿透:数据本身不存在而导致请求到达DB1.业务层进行校验2.布隆过滤器,维护一个bitmap能够判断数据是否存在缓存穿透:数据存在,而在某个时间点redis缓存过期导致大量请求到达DB1.热点数据永不过期(万金油)2.互斥锁(Lua脚本保证原子性)缓存雪崩:缓存穿透大面积版1.热点数据永不过期2.过期时间随机化,避免同一时间3.分布式部署在不同的库...

2021-03-25 11:18:19 79

原创 JVM零碎知识点

JVM零碎知识点1.Minor GC和Full GC触发场景1.Minor GC和Full GC触发场景当Eden区满会触发Minor GCFull GC触发条件老年代空间不足永久代空间不足System.gc()当准备要触发一次 Minor GC时,如果发现统计数据说之前 Minor GC的平均晋升大小比目前的 old gen剩余的空间大,则不会触发Minor GC而是转为触发 full GC...

2021-03-23 17:22:36 124

原创 Java锁相关零碎知识点

Java锁相关零碎知识点1.synchronized和ReentrantLock的区别1.synchronized和ReentrantLock的区别1.ReentrantLock显式释放锁和获取锁且一般在finally中释放;synchronized隐式。2.ReentrantLock提供了响应中断、锁轮询、定时锁三种解决死锁的方法3.ReentrantLock是API层面的,synchronized是JVM层面的4.ReentrantLock可定义为公平锁5.ReentrantLock可以通

2021-03-17 21:51:07 174 1

原创 RocketMQ学习笔记(一):简介与启动

RocketMQ学习笔记(一):快速入门为什么要用MQMQ比较为什么要用MQ1.应用解耦2.流量削峰3.数据分发缺点:1.系统可用性降低2.系统复杂度提高3.数据一致性问题MQ比较特性ActiveMQRabbitMQRocketMQkafka开发语言javaerlangjavascala单机吞吐量万级万级10万级10万级时效性msusmsms以内可用性高(主从)高(主从)非常高(分布式)非常高(分布式)

2021-03-16 21:48:55 70

原创 快排鲨我

package sort;import java.util.Arrays;/** * @Description: 快速排序 * @Author: lmwis * @Date 2021-03-05 14:47 * @Version 1.0 */public class QuickSort { void quickSort(int[] array,int left,int right){ // 表示只有一个数,递归终止 if(left>right){

2021-03-07 12:17:33 195 2

原创 SpringBoot通用包[fehead-common]开发总结

SpringBoot通用包[fehead-common]开发总结

2021-03-04 12:53:54 882

原创 基于SpringSecurity的登录注册以及JWT校验的流程

基于SpringSecurity,使用JWT设计的登录注册流程

2021-02-02 20:24:49 575

原创 MySQL中DATATIME和TIMESTAMP的区别--来自《高性能MySQL》

MySQL中DATATIME和TIMESTAMP的区别--来自《高性能MySQL》书中原文总结书中原文DATATIME和TIMESTAMP列都可以存储相同类型的数据:时间和日期,精确到秒。然而TIMESTAMP只使用DATETIME一半的存储空间,并且会根据时区变化,具有特殊的自动更新能力。另一方面,TIMESTAMP允许的时间范围要小得多,有时候它的特殊能力会成为障碍总结1.TIMESTAMP所占用的存储空间只有DATATIME的一半2.TIMESTAMP所能表示的时间范围比DATATIM

2021-01-29 20:58:21 522

原创 今日力扣每日一题小发现:stream流的累加比手动for循环要慢?

今日力扣每日一题小发现:stream流的累加比手动for循环要慢?今天的题是742. 寻找数组的中心索引要用前缀和的方法累加官方题解在累加上使用stream流的方式处理,一行写完很优雅int total = Arrays.stream(nums).sum();然后运行出来的结果是6ms,只超了21%这肯定不能接受啊,于是尝试优化将stream改成手动for累加int total=0;for(int i:nums){ total+=i;}一运行今日快乐...

2021-01-28 10:17:05 428

原创 笔记本禁用键盘和触摸板

笔记本禁用键盘和触摸板1.以管理员身份运行 cmd2.输入命令1.以管理员身份运行 cmdcmd 一般在 C:\Windows\System32\cmd.exe我一般会复制到桌面上一份右键以管理员身份运行2.输入命令sc config i8042prt start= disabled //禁用sc config i8042prt start= auto //开启...

2021-01-26 13:08:58 2585 2

原创 SpringBoot定时任务Scheduled技术小积累:想每天在指定一个时间段内的随机一个时间执行,怎么最方便

SpringBoot定时任务Scheduled技术小积累:想每天在指定一个时间段内的随机一个时间执行,怎么最方便一般思路旁门左道例子一般思路使用基于接口的动态定时任务配置:大致思路是,每次的定时任务从数据库读取执行时间,然后写数据库更新定时时间实现动态更新这样改动的代码太多了实在不方便,因此想出了下面的策略旁门左道1.在系统内维护一个变量,分钟数2.将定时任务以所需频率(每分钟或者每秒)执行,校验当前的状态和分钟数是否匹配3.匹配的话执行业务代码4.在别的地方赋予分钟数随机值例子需求

2021-01-21 15:45:18 2901

原创 《高性能MySQL》读书笔记:第一章[MySQL架构与历史]

《高性能MySQL》读书笔记:第一章[MySQL架构与历史]MySQL逻辑架构并发控制锁粒度锁策略表锁行锁事物隔离级别MySQL逻辑架构MySQL最优秀的一点就是它的存储架构,将查询处理,系统任务,数据存储/提取相分离并发控制通过读写锁实现并发控制读锁/共享锁:相互不阻塞,多个用户在同一时刻可以读取同一个资源写锁/排他锁:一个写锁会阻塞其他读锁和写锁锁粒度锁粒度越小,并发程度越高,行锁粒度最小MySQL在存储引擎层实现自己的锁策略和锁粒度,不同存储引擎自然不同锁策略和粒度锁策略

2021-01-15 16:16:48 126 1

转载 Job-To-Be-Done:一套用来定位,研发,宣传产品和服务的方法框架

Job-To-Be-Done:一套用来定位,研发,宣传产品和服务的方法框架案例总结JTBD国外详细讲解Upgrade your user, not your product. Don’t build better cameras — build better — Kathy Sierra升级你的用户体验而非产品。不是制造更好的相机而是打造更好的摄影师案例你买的是组装一个滑板的各个部件你想要的是玩滑板的娱乐,锻炼,社交等各个方面一家卖化妆品的公司对自己的JTBD:工厂里制造的是化妆品,

2021-01-15 10:49:01 1230

原创 间隔日期计算小技巧

日期计算小技巧概念实例使用若需计算给定两个日期计算相距天数或者小时的场景可使用时间戳来简化计算概念时间戳:timestamp,编程语言中的时间戳单位是毫秒,unix时间戳单位是秒,能够表示的范围都是从1970-01-01 到2038-01-19实例Java中获取当前时间戳的两种方式# System类long timestamp = System.currentTimeMillis();# Data类long timestamp = new Date().getTime();获取指定日期

2021-01-09 21:58:59 440 1

原创 我的世界curseforge整合包服务器搭建

我的世界curseforge整合包服务器搭建环境开始搭建1.下载整合包服务端2.启动与配置配置资源链接环境环境版本服务器阿里云Ubuntu18 2核4Gminecraft主体1.12.2开始搭建1.下载整合包服务端在curseforge上选择想玩的整合包,这里以天空工厂4为例。进入模组页面,选择File页面下个最新版,后面跟着 +1 Server Pack的表示作者写好了服务端的下载好后上传到服务器,推荐工具winscp2.启动与配置服务器连接工具x

2021-01-07 19:48:25 14664 4

原创 常见算法基本概念

常见算法基本概念分治法经典应用动态规划经典应用贪心经典应用回溯分治法分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同,然后将各子问题的解合并得到原问题的解经典应用1.二分搜索2.大整数相乘3.归并排序,快速排序动态规划基本思想是将待求解问题分解成若干子问题,先求解子问题,再结合这些子问题得到原问题的解。与分治法不同的是,子问题往往不是相互独立的,所以动态规划会记录所有已解决子问题的答案基本要素:最优子结构+重叠子问题经典应用

2021-01-03 15:19:59 229 1

原创 微信小程序开发基础

微信小程序开发基础小程序基础小程序框架框架全局配置文件:App():注册程序函数Page():注册页面函数视图层:列表渲染:引用小程序基础小程序框架框架全局配置文件、工具类文件和框架页面文件框架全局配置文件:由根目录下的app.js app.json app.wxss组成app.js定义全局数据和函数使用,格式为: App({ onLaunch: function () { //生命周期函数。此为小程序初始化函数 if (!wx.cloud) { consol

2020-12-31 20:08:58 194 2

原创 TypeScript基础

TypeScript基础TypeScriptESTypeScript的优势搭建ts开发环境TS新特性多行字符串字符串模板自动拆分字符串参数类型参数默认值可选参数函数新特性迭代函数for of 循环js的两种循环方式ts面向对象类访问控制符继承 extends 与java一样接口 interface 与java一样模块注解类型定义文件TypeScript微软开发javascript的超集ES客户端脚本语言的规范javascript 实现了es5的规范typescript 实现了es6的规范

2020-12-31 19:48:55 109

原创 基于OAuth2.0协议的第三方登录授权流程

基于OAuth2.0协议的第三方登录授权流程授权流程特殊参数OAuth is short for Open Authorization授权流程1.用户访问网站2.网站请求第三方OAuth登录页:网站请求第三方登录页面时使用带有特定参数的url例如:https://graph.qq.com/oauth/?&client_id=xxxxx&redirect_uri=http://www.xxxx.com/…client_id是在第三方网站登记后的一个client_id用来

2020-12-30 21:42:52 667

原创 Ruby基础

Ruby基础Ruby基础变量类变量实例变量普通变量全局变量类方法字符串不变的字符串:symbol字符串插值数组:可以存储多种数据类型判断支持三元表达式Ruby简写Module:类似于接口或者抽象类吧Mixed in元编程类似于Java中的反射吧Ruby基础Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发。因为Perl发音与6月诞生石pearl(珍珠)相同,因此Ruby以7月诞生石ruby(红宝石)命名。是一门对

2020-12-30 21:36:17 130

原创 Leetcode143. 重排链表 最优O(1)空间题解

Leetcode143. 重排链表题目解法取链表中点反转链表拼接题目给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。最优解法使用O(1)空间:取链表中点,截取,反转示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.解法分为三步:取链表中点 => 反转 => 拼接取链表中点快慢指

2020-12-30 21:16:16 88

原创 计算机网络各层简述

计算机网络各层简述体系结构四层协议体系结构四层协议网络接口层:相当于五层协议中数据链路层和物理层的合并物理层:使用何种物理线路,不同的线路,带宽、可靠性、安全性、延迟等会有所不同。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,把模拟信号转化为01数字比特流,使数据链路层感觉不到这些差异。数据链路层:网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。网络层:数据链路只负责某一个区间

2020-12-30 20:53:00 1122 1

原创 操作系统学习笔记(三):进程和线程

操作系统学习笔记(三):进程和线程进程和线程进程三状态模型状态变迁挂起进程模型等待挂起就绪挂起线程优点处理机调度进程切换死锁出现死锁的必要条件处理死锁的方法死锁预防死锁避免死锁检测和恢复恢复进程通信进程和线程进程三状态模型运行:进程正在处理机上运行就绪:进程获取了处处理机之外的所需资源,得到处理机即可运行等待:进程正在等待某一事件的出现而暂停运行创建:进程正在被创建,还没有完成结束:一个进程正在从系统中消失时的状态状态变迁挂起进程模型跟存储相关处在挂起状态的进程映像在磁盘上,目的是

2020-12-24 14:04:50 107

原创 数据链路层六大协议详解

数据链路层六大协议详解一些假设1.无限制的单工协议(乌托邦协议)五点假设发送方接收方接受方2.单工停-等协议3.有噪声信道的单工协议本文图片截取自学堂在线-华南理工大学的计算机网络课程一些假设物理层、数据链路层和网络层各自是独立的处理进程机器A希望向B发送的是一个可靠的、面向连接的长数据流假设机器不会崩溃从网络层获取到的数据是纯的数据,直接装到载荷里定义了四个数据传送接口from_network_layer 从网络层取数据to_physical_layer 向物理层发送数据to_ne

2020-12-23 16:44:06 5856

原创 Redis配置启用RDB和AOF持久化

Redis配置RDB和AOF持久化环境redis.confDocker启动RDB和AOF原理博客很多这里就不介绍了,以下讲主要是如何进行实际配置环境环境版本ubuntu18docker18redis.conf【该文件中不能写注释,这里只是为了解释】# RDBsave 900 1 #表示900 秒内如果至少有 1 个 key 的值变化,则保存save 300 10 #表示300 秒内如果至少有 10 个 key 的值变化,则保存save 60 10000 #

2020-12-20 16:54:06 1124

原创 SpringCloudAlibabaNacos服务实例启动后,Nacos未注册上,启动报错 com.google.common.collect.FluentIterable.append(Ljava/

项目原来用的是eureka和config做服务发现和配置中心和的,然后现在想改用nacos,服务配置完后启动报错(但启动起来了),且没有注册到nacos。先是抛了好几次warn2020-12-19 16:54:03.932 WARN 13212 — [ main] o.a.c.loader.WebappClassLoaderBase : The web application [ROOT] appears to have started a thread named

2020-12-19 17:03:18 1324 2

原创 操作系统学习笔记(三):虚拟内存管理

操作系统学习笔记(三):虚拟内存管理虚拟内存管理虚拟存储覆盖交换虚拟存储局部性原理虚拟内存管理虚拟存储覆盖需要程序员划分功能模块增加编程的复杂度增加编程时间从外存装入覆盖模块时间换空间交换增加正在运行或者运行的程序的内存可将暂时不能运行的程序放到外存因此换入换出的基本单位是整个进程虚拟存储物理内存+磁盘 = 虚拟存储局部性原理时间局部性一条指令的一次执行和下次执行,一个数组的一次访问和下次访问都集中在一个较短时期内空间局部性当前指令和邻近的几条指

2020-12-18 12:37:41 99

基于TCP/IP网络编程的java控制台聊天室项目

java开发的基于TCP/IP协议的网络编程聊天室项目,结合几乎所有Java高级特效的知识,主要用于局域网之间的无网络通信(插着网线不能上网那种)局限是只能发文字

2017-12-28

空空如也

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

TA关注的人

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