自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

个人github地址 https://github.com/reedfan/leetcode

  • 博客(245)
  • 资源 (6)
  • 收藏
  • 关注

原创 Java实现视频裁剪

【代码】Java实现视频裁剪。

2024-01-20 16:11:24 619

转载 微服务注册中心如何承载大型系统的千万级访问?

一、问题起源Spring Cloud微服务架构体系中,Eureka是一个至关重要的组件,它扮演着微服务注册中心的角色,所有的服务注册与服务发现,都是依赖Eureka的。不少初学Spring Cloud的朋友在落地公司生产环境部署时,经常会问:Eureka Server到底要部署几台机器?我们的系统那么多服务,到底会对Eureka Server产生多大的访问压力?Eureka Server能不能抗住一个大型系统的访问压力?如果你也有这些疑问,别着急!咱们这就一起去看看,Eureka作为微服务注册中心的核心原

2020-06-07 14:59:50 422

转载 Java 8对CAS机制的优化

但是这个CAS有没有问题呢?肯定是有的。比如说大量的线程同时并发修改一个AtomicInteger,可能有很多线程会不停的自旋,进入一个无限重复的循环中。这些线程不停地获取值,然后发起CAS操作,但是发现这个值被别人改过了,于是再次进入下一个循环,获取值,发起CAS操作又失败了,再次进入下一个循环。在大量线程高并发更新AtomicInteger的时候,这种问题可能会比较明显,导致大量线程空循环,自旋转,性能和效率都不是特别好。于是,当当当当,Java 8推出了一个新的类,LongAdder,他就是尝试使用分

2020-06-07 10:27:56 754

转载 案例实战:每日上亿请求量的电商系统,JVM年轻代垃圾回收参数如何优化?

1、案例背景引入按照惯例,我们接下来会用案例驱动来带着大家分析到底该如何在特定场景下,预估系统的内存使用模型。然后合理优化新生代、老年代、Eden和Survivor各个区域的内存大小。接着再尽量优化参数避免新生代的对象进入老年代,尽量让对象留在新生代里被回收掉。我们这里的背景是电商系统,电商系统其实一般会拆分为很多的子系统独立部署比如商品系统、订单系统、促销系统、库存系统、仓储系统、会员系统,等等我们这里就以比较核心的订单系统作为例子来说明。(提示:食用本案例之前,请务必充分理解专栏之前两周的文章!)我们

2020-06-06 17:58:06 553

转载 spring事务的传播机制新解

以下是事物的传播机制:@Transactional(propagation=Propagation.REQUIRED)如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)@Transactional(propagation=Propagation.NOT_SUPPORTED)容器不为这个方法开启事务@Transactional(propagation=Propagation.REQUIRES_NEW)不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务@Tr

2020-06-06 11:05:53 274

原创 RocketMQ专题

1、安装RocketMQ环境要求Linux 64位操作系统64bit JDK 1.8+1.1下载http://rocketmq.apache.org/release_notes/release-notes-4.4.0/1.2 安装RocketMQ解压完以后可以移动到/usr/local/mv rocketmq-all-4.4.0-bin-release /usr/local/rocketmq1.3 启动RocketMQ由于个人阿里云内存不大,编辑bin/runbroker.sh 和

2020-05-31 00:12:21 333

转载 mysql中tinyint、smallint、int、bigint的区别

tinyint从 -2^7 (-128) 到 2^7 - 1 (123) 的整型数据。存储大小为 1 个字节。unsigned 是从 0 到 255 的整型数据。所以建表的时候 只能是tinyint(3),哪怕你建tinyint(100),他最大还是3位这么多。smallint从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。unsigned 是从 0 到 65535 的整型数据。所以建表的时候 只能是smallint(5),哪怕你

2020-05-17 17:46:32 601

转载 MySQL全文索引-fulltext

MySQL 5.6 之前的版本只有MyISAM存储引擎支持全文索引,5.6 及之后的版本,InnoDB 才开始支持。全文索引相对于like %这种模糊查询效率更高,查询方式更多样,查询结果也更准确。在全文检索领域,全文索引功能非常有用,比如博客类网站,可以对文章标题,文章内容创建全文索引,用户可以根据关键词搜索想要的文章。1、创建全文索引能够创建全文索引的字段类型必须是char,varchar,text等这类字符文本类型。创建一个带有全文索引的表:CREATE TABLE articles (id

2020-05-17 17:31:58 545

转载 redis基本数据结构之ZSet

介绍:ZSet数据结构类似于Set结构,只是ZSet结构中,每个元素都会有一个分值,然后所有元素按照分值的大小进行排列,相当于是一个进行了排序的链表。如果ZSet是一个链表,而且内部元素是有序的,在进行元素插入和删除,以及查询的时候,就必须要遍历链表才行,时间复杂度就达到了O(n),这个在以单线程处理的Redis中是不能接受的。所以ZSet采用了一种跳跃表的实现。这个实现有点类似于Kafka存...

2020-03-13 11:29:40 399

转载 Spring IOC 容器源码分析 - 获取单例 bean

public Object getBean(String name) throws BeansException { // getBean 是一个空壳方法,所有的逻辑都封装在 doGetBean 方法中 return doGetBean(name, null, null, false);}protected <T> T doGetBean( fin...

2020-03-13 11:25:04 285

转载 ZAB协议

zookeeper依赖zab协议来实现分布式数据一致性.基于该协议,zookeeper实现了一种主备模式的系统架构来保持ZooKeeper为高可用的一致性协调框架,自然的ZooKeeper也有着一致性算法的实现,ZooKeeper使用的是ZAB协议作为数据一致性的算法, ZAB(ZooKeeper Atomic Broadcast ) 全称为:原子消息广播协议;ZAB可以说是在Paxos算法基础上...

2020-03-12 16:29:40 946

转载 几种限流算法

漏桶算法思路很简单,请求先进入到漏桶里,漏桶以固定的速度出水,也就是处理请求,当水加的过快,则会直接溢出,也就是拒绝请求,可以看出漏桶算法能强行限制数据的传输速率。该算法很好的解决了时间边界处理不够平滑的问题,因为在每次请求进桶前都将执行“漏水”的操作,再无边界问题。但是对于很多场景来说,除了要求能够限制数据的平均传输速率外,还要求允许某种程度的突发传输。这时候漏桶算法可能就不合适了,令牌桶...

2020-03-11 21:19:50 369

转载 分布式事务中间件Seata的设计原理

分布式事务解决的方案有哪些?目前分布式事务解决的方案主要有对业务无入侵和有入侵的方案,无入侵方案主要有基于数据库 XA 协议的两段式提交(2PC)方案,它的优点是对业务代码无入侵,但是它的缺点也是很明显:必须要求数据库对 XA 协议的支持,且由于 XA 协议自身的特点,它会造成事务资源长时间得不到释放,锁定周期长,而且在应用层上面无法干预,因此它性能很差,它的存在相当于七伤拳那样“伤人七分,损己...

2020-03-11 15:27:04 370

转载 Kafka的零拷贝技术

kafka中的消费者在读取服务端的数据时,需要将服务端的磁盘文件通过网络发送到消费者进程,网络发送需要经过几种网络节点。如下图所示:传统的读取文件数据并发送到网络的步骤如下:(1)操作系统将数据从磁盘文件中读取到内核空间的页面缓存;(2)应用程序将数据从内核空间读入用户空间缓冲区;(3)应用程序将读到数据写回内核空间并放入socket缓冲区;(4)操作系统将数据从socket缓冲区复制到...

2020-03-11 11:09:22 296

转载 脑裂是什么?Zookeeper是如何解决的?

什么是脑裂脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么会导致人体“手舞足蹈”,“不听使唤”。脑裂通常会出现在集群环境中,比如ElasticSearch、Zookeeper集群,而这些集群环境有一个统一的特点,就是它们有一个大脑,比如ElasticSearch集群中有Master节点,Z...

2020-03-08 21:03:16 359

原创 SpringBoot项目如何改成https协议

keytool -genkeypair -alias "test2" -keyalg "RSA" -keystore "test.keystore"输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: fan您的组织单位名称是什么? [Unknown]: guosheng您的组织名称是什么? [Unknown]: guosheng您所在的...

2020-01-01 22:17:45 1859

转载 Redis之事务实现

Redis中的事务提供了一种将多个命令请求打包,然后一次性、顺序性执行多个命令的机制,并且在事务指向期间,服务器不会中断事务而改去执行其他客户端的命令请求,它会将事务中的所有命令都执行完毕,然后才去处理其他客户端的请求。Redis通过MULTI,EXEC,WATCH等命令来实现事务功能。事务首先以一个MULTI命令开始,然后将多个命令放入事务中,最后由EXEC命令将这个事务提交给服务器执行:...

2019-10-28 10:51:59 338

原创 用注解过滤序列化字段

有时候我们在打日志的时候,希望对象中有些字段不显示出来,此时可以考虑自定义一个注解。比如,自定义一个注解GsonIgnoreField如下@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface GsonIgnoreField {}然后定义一个GsonUtil类public clas...

2019-10-25 14:27:30 662

转载 Raft 协议

分布式一致性协议 Raft,自 2013 年论文发表之后就受到了技术领域的热捧,我认为相对于其他分布式一致性算法,Raft 有效的解决了分布式一致性算法过于复杂及难于实现的问题,这也是 Raft 能异军突起的主要因素。Raft 协议有效的借鉴了美国总统大选的策略,采用精英(Raft 称呼这个精英为 Leader)领导全局的方案,整个集群中只有 Leader 可以处理 client 发送过来的请...

2019-10-09 17:21:20 278

原创 vue学习(一)

MVVMmodel: 模型,数据对象(data)view: 试图,模板页面viewModel: 试图模型(vue的实例)写一个简单的vue引入Vue.js创建Vue对象el : 指定根element(选择器)data : 初始化数据(页面可以访问)双向数据绑定 : v-model显示数据 : {{xxx}}<div id="test"> <input...

2019-09-27 21:21:47 219

转载 Redis 线程模型

文件事件处理器(file event handler) Redis 基于 Reactor 模式开发了自己的网络事件处理器: 这个处理器被称为文件事件处理器(file event handler) 文件事件处理器使用 I/O 多路复用(multiplexing)程序来同时监听多个套接字, 并根据套接字目前执行的任务来为套接字关联不同的事件处理器。 当被监听的套接字准...

2019-09-25 11:12:27 231

原创 彻底搞清楚分布式数据库

首先,“分布式”:是从业务的角度的概念。"分布式”是从业务角度出发的:即当我们想着“注册”模块需要更新或者出问题了,那么我们不希望它影响存量用户的“登陆”和“下单”模块,这个时候,我们多希望他们不在一起多好,那么当我们真的这么做了,将各个业务模块都分开,ok,那这就是“分布式”了。从数据库的发展历程来看,像什么数据库冷备热备、主从、双活、多活、集群等等,都与“分布式”不相关,与业务不相关,都...

2019-09-23 15:11:53 536

原创 旋转链表

61. 旋转链表public ListNode rotateRight(ListNode head, int k) { if (head == null || k == 0) { return head; } ListNode tmp = head; int len = 0; while (t...

2019-09-01 15:09:03 395

原创 字符串类

leetcode方法一:将字符串按字符排序好作为keypublic List<List<String>> groupAnagrams(String[] strs) { if (strs == null || strs.length == 0) { return new ArrayList<>(); }...

2019-09-01 10:38:09 530

原创 递归回溯中的一些套路

从一个题说起leetcode 39. 组合总和class Solution { public List<List<Integer>> combinationSum(int[] candidates, int target) { }}首先题目要求返回的类型为List<List<Integer>>,那么我们...

2019-08-29 17:21:20 734

原创 数组问题之二分查找专题

leetcode 33. 搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1: 输入: nu...

2019-08-27 13:29:14 1326

原创 树的递归专题

leetcode 543. 二叉树的直径给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1...

2019-08-27 10:50:36 780

原创 链表快慢指针

leetcode 19. 删除链表的倒数第N个节点public ListNode removeNthFromEnd(ListNode head, int n) { ListNode res = new ListNode(-1); res.next = head; ListNode fast = res; ListNode slo...

2019-08-26 20:18:19 713

原创 动态规划之矩阵路径类

leetcode 62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?示例 1:输入: m = 3, n = 2 输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> ...

2019-08-26 18:02:11 773

原创 斐波那锲数问题

leetcode 70 爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2 输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2: 输入: 3 输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶...

2019-08-26 10:36:08 890 1

原创 01背包类算法题

关于背包问题的概念可以参考此处leetcode 416. 分割等和子集给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1: 输入: [1, 5, 11, 5],输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例 2:输入: [1, 2, 3, 5],输出: false其实可以看成是一个01背包问题...

2019-08-25 23:32:09 1346

转载 深入理解mysql四种隔离级别及底层实现原理(MVCC和锁)

1) 锁的分类Shared Locks(共享锁/S锁)若事务T对数据对象A加上S锁,则事务T只能读A;其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。Exclusive Locks(排它锁/X锁)若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A...

2019-08-19 09:23:36 2590 1

转载 深入理解MySQL的四种隔离级别及加锁实现原理

一、首先什么是事务?事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所有步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消事务开始时的所有操作。二、事务的ACID事务具有四个特征:原子性( Atomicity...

2019-08-18 22:55:22 3340 2

转载 轻松理解MYSQL MVCC 实现机制

1. MVCC简介1.1 什么是MVCCMVCC是一种多版本并发控制机制。1.2 MVCC是为了解决什么问题? 大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一起使用. 大家都应该知道,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下代替行级锁,使用...

2019-08-18 22:49:53 865

转载 Java开发必须掌握的线上问题排查命令

作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题。这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查。由于在生产环境中,一般没办法debug(其实有些问题,debug也白扯。。。),所以我们需要借助一些常用命令来查看运行时的具体情况,这些运行时信息包括但不限于运行日志、异常堆栈、堆使用情况、GC情况、JVM参数情况、线程情...

2019-08-15 19:32:38 400

转载 jvm 性能调优工具之 jmap

概述命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。jmap 用法参数:option: 选项参数。 pid: 需要打印配置信息的进程ID。 executable: 产生核心dump的Java可执行文件。 core: 需要打印配置信息的核心文...

2019-08-15 18:00:27 373

原创 栈的应用

leetcode 20. 有效的括号public boolean isValid(String s) { if(s.length() < 1){ return true; } if(s.length()%2!=0){ return false; } Map&l...

2019-08-10 10:48:14 1296

原创 回文问题

leetcode 9. 回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1: 输入: 121 输出: true示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。对于数字的末位,直接取余就可以了,对于数字的首位,我们可以这么算。首先...

2019-08-08 21:27:23 1304

原创 链表相关

leetcode 2. 两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输...

2019-08-08 20:07:25 619

原创 滑动窗口问题

leetcode 3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1: 输入: "abcabcbb" 输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: "bbbbb" 输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3: 输入: "pwwkew"...

2019-08-07 23:52:36 1465

ssh脚本,ssh脚本,ssh脚本

ssh脚本,ssh脚本,ssh脚本

2023-04-11

行测精品资料学习资料.zip

行测精品资料

2021-04-20

(MemoryAnalyzer)MAT.txt

内存泄露分心工具MemoryAnalyzer 内存泄露分心工具MAT 亲测好用

2019-07-09

netty源码深入剖析.txt

netty源码深入剖析,深入源码,从入门到调优

2019-06-18

jvm、tomcat、mysql调优.txt

1 什么是性能优化\ 2 性能测试与优化\ 3 性能优化JVM篇\ 4 性能优化Tomcat篇\ 5 性能优化mysql篇\

2019-06-18

算法面试通关手写代码40讲 .txt

57.理论讲解:布隆过滤器.mp4 56.面试题:设计和实现一个LRU Cache缓存机制.mp4 55.理论讲解: LRU Cache.mp4 54.面试题:岛屿的个数&朋友圈(下).mp4 53.面试题:岛屿的个数&朋友圈(上).mp4 52.理论讲解:并查集.mp4 51.面试题:编辑距离.mp4 50.面试题:零钱兑换.mp4 49.面试题:最长上升子序列.mp4 48.面试题:股票买卖系列.mp4 47.面试题:乘积最大子序列.mp4 46.面试题:三角形的最小路径和.mp4 45.面试题:爬楼梯.mp4 44.理论理解:动态规划(下).mp4 43.理论理解:动态规划(上).mp4 42.面试题:N皇后问题的另一种解法.mp4 41 .面试题:2的幂次方问题&比特位计数问题.mp4 40.面试题:统计位1的个数.mp4 39.理论讲解:位运算.mp4 38.面试题:二维网格中的单词搜索问题.mp4 37.面试题:实现一个字典树.mp4 36.理论讲解:字典树.mp4 35.面试题:实现一个求解平方根的函数.mp4 34.理论讲解:二分查找.mp4 33.面试题:数独问题.mp4 32.面试题:N皇后问题.mp4 31.理论讲解:剪枝.mp4 30.面试题:生成有效括号组合.mp4 29.面试题:二叉树的最大和最小深度.mp4 28.面试题:二叉树层次遍历.mp4 27.理论讲解:深度优先搜索.mp4 26.理论讲解:广度优先搜索.mp4 25.面试题:买卖股票的最佳时机.mp4 24.理论讲解:贪心算法.mp4 23.面试题:求众数.mp4 22.面试题:Pow(x,n).mp4 21.理论讲解:递归&分治.mp4 20.理论讲解:二叉树遍历.mp4 19.面试题:二叉树&二叉搜索树的最近公共祖先.mp4

2019-06-11

尚硅谷springcloud视频

尚硅谷springcloud视频,2018最新视频,带源码

2019-01-14

空空如也

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

TA关注的人

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