- 博客(21)
- 收藏
- 关注
原创 微服务必要知识总结
微服务入门文章目录微服务入门一、RPC服务调用二、注册中心三、分布式链路追踪四、负载均衡五、API网关六、服务监控七、配置中心八、服务容错一、RPC服务调用为什么引入?服务拆分单独部署后,引入的服务跨网络通信的问题在拆分成多个小服务之后,服务如何治理的问题什么是RPC?RPC 并不是互联网时代的产物,也不是服务化之后才衍生出来的技术,而是一种规范,只要是封装了网络调用的细节能够实现远程调用其他服务,就可以算作是一种 RPC 技术了常见的框架有Dubbo、Grpc、Thrift,
2020-12-09 11:19:05
556
原创 算法学习之排序、LRU算法
文章目录排序LRU排序1)冒泡排序public void bubbleSort(int[] arr){ for (int i = 0; i < arr.length; i++) { //外层循环,遍历次数 for (int j = 0; j < arr.length - i - 1; j++) { //内层循环,升序(如果前一个值比后一个值大,则交换) //内层循环一次,获取一个最大值
2020-08-30 17:39:03
391
原创 算法学习之搜索系列(回溯、DFS、BFS)小结
文章目录BFS111. 二叉树的最小深度752. 打开转盘锁DFS695. 岛屿的最大面积547. 朋友圈BacktrackingBFSBFS 的核心思想就是把一些问题抽象成图,从一个点开始,向四周开始扩散。一般来说, BFS 算法都是用「队列」这种数据结构,每次将一个节点周围的所有节点加入队列。BFS 相对 DFS 的最主要的区别是:BFS 找到的路径一定是最短的,但代价就是空间复杂度比 DFS 大很多。一般来说在找最短路径的时候使用 BFS,其他就用DFS。在程序实现 BFS 时需要考虑以
2020-08-29 17:44:37
737
原创 算法学习之字符串系列小结
文章目录字符串58. 最后一个单词的长度387. 字符串中的第一个唯一字符242. 有效的字母异位词205. 同构字符串字符串58. 最后一个单词的长度给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: "Hello World"输出: 5解题思路:从右向左遍历,从第一个不是空
2020-08-25 17:04:49
221
原创 算法学习之二叉树系列小结
文章目录二叉树递归104. 二叉树的最大深度层次遍历102. 二叉树的层序遍历前中后序遍历BST98. 验证二叉搜索树Tire二叉树递归对于递归类型的题,首先是三点:这个递归函数的功能是什么,怎样调用这个函数,即设计好递归函数的返回值和参数列表什么时候应该结束这个递归,它的边界条件(出口)是什么 (边界条件)在非边界情况时,怎样从第n层转变成第n+1层 (递推公式)104. 二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:
2020-08-23 14:28:56
833
原创 算法学习之链表系列小结
文章目录链表19题 删除链表的倒数第N个数21题 合并有序链表141题 链表是否成环142题 找到链表开始入环的第一个节点2题 两数相加2题 相交链表206题 反转链表链表19题 删除链表的倒数第N个数给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.解题思路:因为要返回删除后的链表,这种问题一般设置哨兵节
2020-08-21 17:48:18
152
原创 算法学习之数组系列小结
数组文章目录数组350题 两个数组的交集14题 最长公共前缀189题 旋转数组27题 原地删除26题 删除排序数组中的重复项66题 加一1题 两数之和15题 三数之和16题 最接近的三数之和6题 Z字打印54题 螺旋打印小结350题 两个数组的交集给定两个数组,编写一个函数来计算它们的交集。给定两个数组,编写一个函数来计算它们的交集。示例1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例2:输入:nums1 = [4,9,5], nums2 =
2020-08-20 16:32:36
574
原创 体育馆场地管理系统1.0-2.0
文章目录前言1.0版本1.项目功能简述2.项目目录结构3.数据库设计4.前端逻辑设计5.后端逻辑设计前言去年大二的时候,学校让我们自己做工程实践项目,我和队友选择了做体育馆场地管理系统。那个时候我们在网上找相关的技术博客、开源项目等就发现很少,今年五月份,我们又重构了之前的系统。所以,我准备写一篇文章介绍一下我们的体育馆场地管理系统。1.0版本1.项目功能简述该项目分为和用户交互的部分(前台)和管理员部分(后台)两个部分前台功能:登录注册部分、首页部分、个人中心部分后台功能:登录部
2020-08-13 16:51:12
10015
4
转载 缓存一致性协议MESI
转载:原文链接 Cache一致性协议之MESI 处理器上有一套完整的协议,来保证Cache一致性。比较经典的Cache一致性协议当属MESI协议,奔腾处理器有使用它,很多其他的处理器都是使用它的变种。单核Cache中每个Cache line有2个标志:dirty和valid标志,它们很好的描述了Cache和Memory(内存)之间的数据关系(数据是否有效,数据是否被修改),而在多核处
2020-07-08 14:36:20
142
原创 java基础知识点脑图
具体可以看在线脑图https://www.processon.com/mindmap/5f5f9881f346fb40fb826594?tutorial=false
2020-07-01 11:22:29
252
原创 java多线程并发基础(三,ReentrantLock,CountDownLatch,CyclicBarrier,Semaphore实现原理)
一、独占锁ReentrantLock的原理ReentrantLock是可重入的独占锁,同时只能有一个线程可以获取该锁,其他获取该锁的线程会被阻塞放入该锁的AQS阻塞队列里面。从图中可以看出,ReentrantLock最终还是使用AQS来实现的,并且根据参数来决定其内部是一个公平锁还是非公平锁 public ReentrantLock() { //默认非公平锁 ...
2020-05-01 12:08:54
824
3
原创 java多线程并发基础二
一、java原子类并发原理JUC提供了一系列原子性操作类,这些类都是使用非阻塞算法CAS实现的,比使用锁实现原子性操作在性能上有很大提升1.1 AtomicLong原理解析public class AtomicLong extends Number implements java.io.Serializable { private static final long serialVe...
2020-04-30 16:00:55
429
原创 java多线程并发基础汇总一
一、java并发线程基础文章目录一、java并发线程基础1.1 什么是线程1.2 线程的创建方式1.3 Object类中的方法:线程通知与等待1.4 Thread类中的方法1.4.1 等待线程执行终止的join方法1.4.2 让线程阻塞的sleep()方法1.4.3 让出CPU执行权的yield方法1.4.4 线程中断(重要)1.5 线程上下文切换和线程死锁1.6 守护线程和用户线程1.7 Th...
2020-04-29 19:03:15
201
原创 redis多机数据库的实现(主从复制,哨兵,集群)
第三部分 多机数据库的实现一、复制redis中,用户可以通过执行SALAVEOF命令或者设置salveof选项,让一个服务器去复制另一个服务器,被复制的服务器为主服务器,对主服务器进行复制的是从服务器。进行复制中的主从服务器双方的数据库将保存相同的数据,概念上将这种现象称作“数据库一致”。1.1旧版复制功能的实现redis的复制功能分为同步和命令传播两个操作:同步操作将从服务器的数...
2020-04-25 11:13:49
791
原创 redis单机数据库的实现(数据库,RDB,AOF)
第二部分 单机数据库的实现一、数据库1.1 服务器中的数据库redis所有数据库都在redis.h/redisServer就够的db数组里面,db数组的每一个项都是redis.h/redisDb就够,每个redisDb结构代表一个数据库。初始化的时候,程序根据redisServer中服务器状态dbnum来决定创建多少个数据库,默认16个。1.2 切换数据库客服端使用SELECT命令...
2020-04-23 18:10:39
286
原创 redis的底层数据结构汇总
第一部分 数据结构与对象一、简单动态字符串redis自己构建一种SDS的抽象类型,用作redis的默认字符串,可以用SDS的API操作1. 作用:redis> SET msg “hello”键是一个字符串对象,对象底层实现一个保存字符串“msg”的SDS值是一个字符串对象,对象底层实现一个保存字符串“hello”的SDS作用于缓冲区AOF模式中的缓冲区客服...
2020-04-14 15:36:36
501
原创 vue入门笔记(三)
Vue Day 03一、v-model的使用(表单绑定)表单控件在实际开发中是非常常见的。特别是对于用户信息的提交,需要大量的表单。Vue中使用v-model指令来实现表单元素和数据的双向绑定1.1.v-model的基本使用<div id="app"> <input type="text" v-model="message"> {{message}}...
2020-03-16 16:03:03
563
原创 vue入门笔记(二)
Vue Day 02文章目录Vue Day 02一、ES6语法补充1.1.let/var(定义变量)1.2.const1.3.对象增强写法二、事件监听三、条件判断3.1.1.if基本语法介绍3.1.2.案例3.1.3.v-show的使用四、循环遍历4.1.1.循环遍历数组4.1.2.循环遍历对象4.1.3.循环过程中添加key4.1.3.数组中的响应式方法五、书籍购物车案例一、ES6语法补充...
2020-03-15 16:17:38
368
原创 vue入门笔记(一)
Vue Day 01文章目录Vue Day 01一、邂逅Vuejs1.1.认识Vuejs1.2.安装Vue1.3.Vue的初体验1.4.Vue中的MVVM1.5.创建Vue时, options可以放那些东西1.6.Vue的生命周期(理解)二、插值语法三、v-bind3.1. v-bind绑定基本属性3.2. v-bind动态绑定class3.3. v-bind动态绑定style四. 计算属性最后...
2020-03-14 17:32:28
661
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人