自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

覃会程的博客

致力于Java开发,喜欢算法

  • 博客(239)
  • 问答 (3)
  • 收藏
  • 关注

原创 leetcode64题 最小路径和 动态规划和深搜

文章目录题目描述深搜解法动态规划解法题目描述给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。示例 2:输入:grid = [[1,2,3],[4,5,6]]输出:12提示:m == grid.lengthn == grid[i].lengt

2022-04-12 11:14:47 345

原创 Redis6.0 高级

文章目录Redis_Jedis的使用Redis与Spring Boot整合Redis_Jedis的使用Jedis所需要的jar包<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.2.0</version></dependency>连接Redis注意事项禁用Linux的防

2022-01-02 16:13:44 1212 2

原创 Redis6.0基础

文章目录

2021-12-07 12:32:59 520

原创 分布式全局唯一ID解决方案(雪花算法)

文章目录为什么需要分布式全局唯一ID以及分布式ID的业务需求为什么无序的UUID会导致入库性能变差呢?数据库自增ID机制适合作分布式ID吗Redis集群实现分布式ID的利弊雪花算法(SonwFlake)使用糊涂工具包实现雪花算法优缺点:为什么需要分布式全局唯一ID以及分布式ID的业务需求在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识如在美团点评的金融、支付、餐饮、酒店;猫眼电影等产品的系统中数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息;此时一个能够生成全局

2021-11-20 17:13:15 2293 1

原创 Spring Could(六)Alibaba

文章目录Spring Could主要内容结构图:

2021-11-20 17:11:14 1164 1

原创 Spring Could(五)分布式配置中心 消息总线 Stream

文章目录Eureka ServerEureka Server流程:先启动eureka注册中心启动服务提供者payment支付服务支付服务启动后会把自身信息(比如服务地址以别名方式主册进eureka)消费者order服务在需要调用接口时,使用服务别名去注册中心获取实际的RPC远程调用地址消费者获得调用地址后,底层实际是利用HttpClient技术实现远程调用消费者获得服务地址后会缓存在本地jvm内存中,默认每间隔30秒更新—次服务调用地址...

2021-11-13 17:33:22 1322

原创 SpringCould(四)服务网关GateWay

文章目录服务网关GateWay和Zuul的对比:Zuul模型GateWay模型:GateWay工作流程GateWay搭建入门配置实现动态路由GateWay常用的PredicateGateWay的FilterSpring Could主要内容结构图:服务网关GateWaySpringCloud Gateway是什么Cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关。但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,

2021-11-13 17:25:18 943

原创 SpringCould(三)Hystrix 实现服务降级和服务熔断

文章目录Hystrix(断路器)概述Hystrix的重要概念服务降级(fallback)服务熔断(break)服务限流(flowlimit)Hystrix 应用案例Hystrix实现降级服务提供者使用Hystrix降级调用方使用Hystrix降级默认的FallBack通配服务降级FeignFallbackHystrix实现服务熔断Spring Could主要内容结构图:Hystrix(断路器)概述分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将

2021-11-13 17:17:44 581

原创 SpringCould(二)Ribbon和OpenFeign

文章目录Ribbon框架说明Ribbdn默认自带的负载规则替换负载规则轮询负载均衡算法原理:OpenFeignOpenFeign超时控制OpenFeign日志增强Spring Could主要内容结构图:RibbonSpring Cloud Ribbon是基于Netflix Ribbon实现的—套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说

2021-11-13 17:11:30 173

原创 SpringCould(一)服务注册中心

文章目录服务注册中心EurekaEureka 基础知识什么是服务治理什么是服务注册与发现单机Eureka构建EurekaServer服务安装服务提供者(provider)入驻EurekaServer服务消费者(consumer)入驻EurekaServerEureka工作流程服务发现eureka自我保护理论怎么禁止自我保护机制Zookeeper支付服务注入进zookeeper服务消费者(订单服务)入驻注册中心Consul服务提供者入驻Consul服务消费者入驻Consul三个配置中心的比较Spring C

2021-11-13 16:56:57 1222

原创 设计模式总结(Java)

文章目录面向对象设计的基本原则:创建型模式单例模式 (常用)常见应用场景:常见的五种单例模式实现方式:五种单例模式的代码实现:工厂模式 (常用)工厂模式的分类:应用场景三种模式下的代码实现和UML图:建造者模式 (常用)代码实现和UML图原型模式创建型模式总结结构型模式适配器(adapter)模式 (常用)代理模式 (常用)分类:静态代理(静态定义代理类)动态代理(动态生成代理类):桥接模式(bridge)组合模式(composite)装饰器模式(decorator) (常用)外观模式享元模式(FlyWei

2021-10-09 20:06:31 400

原创 HTTP协议

文章目录HTTP一个完整的HTTP请求过程结果状态码(常见的四类)HTTPSHTTP一个完整的HTTP请求过程域名解析 —> 与服务器建立连接 —> 发起HTTP请求 —> 服务器响应HTTP请求,浏览器得到html代码 —> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片) —> 浏览器对页面进行渲染呈现给用户结果状态码(常见的四类)HTTPSSSL/TLS协议的主要作用就是: 1、认证用户和服务器,保证各自的数据都发送到正确的位

2021-10-04 14:50:41 88

原创 Docker的使用

关于编码的心得docker1、简介Docker是一个开源的应用容器引擎;是一个轻量级容器技术;Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。2、核心概念docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);docker客户端(Client):连接docker主机进行操作;docker仓库(Registry):用来保存各种打包好的

2021-08-28 17:01:21 211

原创 运行docker镜像,出现Exited (137) 5 seconds ago问题

通过docker ps -a命令查看容器状态,发现状态为:Exited (137) 5 seconds ago然后使用docker logs -f container_id命令查看日志信息,发现是代码有错:Exception in thread "main" java.lang.UnsupportedClassVersionError: com/blockchain/management/BlockchainManagementApplication has been compiled by a m

2021-08-21 14:26:26 2585

原创 Spring不能直接@autowired注入Static变量问题和解决方案

文章目录Spring不能直接@autowired注入Static变量问题和解决方案导致的一些的问题:解决方案一:使用@PostConstruct注解解决方案二:给静态变量设置Setter方法,在Setter方法上使用@Autowired注解Spring不能直接@autowired注入Static变量问题和解决方案@autowired注入Static变量会报java.lang.NullPointerException: null异常。原因:当类加载器加载静态变量时,Spring的上下文环境还没有被

2021-08-10 17:59:09 4512 1

原创 如何选择Java遍历集合的方式

文章目录foreach的使用注意点:foreach的使用注意点:foreach遍历可以修改元素中的值(修改对象中的属性),但如果修改引用的指向是无效的,因为foreach相当于是拷贝引用,然后进行遍历。遍历过程中不能添加和删除元素,否则会报ConcurrentModificationException异常。 @Test void test5(){ // foreach遍历可以修改元素中的值,但如果修改引用的指向是无效的,因为foreach相当于是拷贝引用,然后进行遍

2021-08-10 17:38:00 164

原创 SpringBoot学习笔记

文章目录一、Spring Boot 入门1、Spring Boot 简介2、微服务3、环境准备1、MAVEN设置;2、IDEA设置4、Spring Boot HelloWorld1、创建一个maven工程;(jar)2、导入spring boot相关的依赖3、编写一个主程序;启动Spring Boot应用4、编写相关的Controller、Service5、运行主程序测试6、简化部署5、Hello World探究1、POM文件1、父项目2、启动器2、主程序类,主入口类6、使用Spring Initializ

2021-08-07 16:51:02 412

原创 LeetCoed热题 HOT 汇总

简单难度:第1题 两数之和第20题 有效的括号第21题 合并两个有序链表第53题 最大子序和第70题 爬楼梯(动态规划)第101题 对称二叉树第104题 树的最大深度第121题 买卖股票的最佳时机(动态规划)第136题 只出现一次的数字第141题 环形链表的判断第155题 最小栈(包含min函数的栈)第160题 相交链表第169题 超过数组一半的元素第206题 反转链表第226题 翻转二叉树第234题 回文链表第283题 移动零第448 找到所有数组中消失的数字第46

2021-07-20 17:16:42 90

原创 LeetCode SQL练习

文章目录176题 第二高的薪水176题 第二高的薪水编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。+----

2021-07-20 17:09:31 1139

原创 gradle学习总结

文章目录groovy语言的简单使用groovy语言的简单使用Gradle 的构建脚本是采用 Groovy 写的,而不是用 XML。println "hello word!"//定义变量def a = 12println adef s = "asdfasf"println s//定义一个集合def list = ['a', 'b']//向集合里添加元素list << 'c'//取出list中的第三个元素println list.get(2)//定义一个ma

2021-07-09 15:48:29 107

原创 mybatis-plus学习笔记

文章目录mybatis-plus是什么mybatis-plus特性快速上手案例常用注解mybatis-plus是什么  mybatis-plus是mybatis的增强工具,在mybatis的基础上只做增强不做改变。mybatis-plus特性无侵入:不会改变mybatis框架,只是在原来的基础上进行增强。快速上手案例导入依赖 implementation group: 'com.baomidou', name: 'mybatis-plus-boot-starter', v

2021-07-04 14:18:37 236

原创 两万五千字的ConcurrentHashMap底层原理和源码分析

文章目录第一部分:JDK1.7 ConcurrentHashMap源码分析一、Unsafe介绍1、Unsafe简介2、Unsafe Api3、代码演示3.1、图解说明二、jdk1.7容器初始化1、源码解析2、图解3、Segment是什么?4、HashEntry是什么?三、jdk1.7添加安全1、源码分析1.1、ConcurrentHashMap的put方法1.2、ConcurrentHashMap的ensureSegment方法1.3、Segment的put方法1.4、Segment的scanAndLock

2021-05-10 16:15:59 165 1

原创 Java 多线程面试题总结

文章目录多线程部分谈谈你对volatile的理解你谈谈JMM什么是指令重排,并举几个案例你在哪些地方用到过volatile?如果不使用volatile双重检测机制会有什么问题volatile无法保证原子性,应该使用什么保证原子性Atomiclnteger是怎么保证原子性谈一谈CAS和UnSafe详细说一下CASCAS有没有缺点,是什么什么是ABA问题,怎么解决多线程部分谈谈你对volatile的理解  volatile是Java虚拟机提供的轻量级的同步机制。特点如下:保证可见性不保证原子性

2021-04-18 10:42:07 246 1

原创 Java JUC高并发编程

文章目录JUC的简介进程和线程的概念JUC的简介  JUC是java.util.concurrent的简称;是并发编程中使用的工具类。进程和线程的概念进程:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。线程:通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,

2021-04-14 15:20:05 184

原创 Java 函数式接口和Stream流

文章目录函数式接口Stream流函数式接口函数式接口在JDK java.util.function包中四种常用接口:代码演示:消费型接口:public class ConsumerDemo { public static void main(String[] args) { //消费型接口 //匿名内部类的写法 Consumer<String> consumer = new Consumer<String>()

2021-04-14 15:18:17 162

原创 Linux排查系统变慢的原因

文章目录一、查看整体机器性能(top命令)二、查看内存状态(free -m)三、查看磁盘状态(df -h)四、查看cpu状态(vmstat -n 2 3)五、查看磁盘IO(iostat - xdk 2 3)一、查看整体机器性能(top命令)输入top后能看到整体资源占用的情况输入q可以退出该界面使用top命令主要查看的是cup和内存的情况进入top后,按数字键1(关闭也是按数字键1)可以查看cpu的核数以及每一个核的使用情况其中参数:id(idle):表示空闲率,值越高越好。lo

2021-04-03 15:55:01 370

原创 JVM总结

文章目录JVM体系结构概览类加载器ClassLoader类加载器的分类:双亲委派机制:JVM体系结构概览类加载器ClassLoader  负责加载class文件,class文件在文件开头有特定的文件标示(用于识别是否是class文件),将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。(简单说方法区就是存放模板的地方)类加载器的分类:类加

2021-03-13 16:51:04 227

原创 MySQL高级学习

文章目录MySQL逻辑结构介绍存储引擎介绍:索引的优化分析索引简介:MySQL逻辑结构介绍连接层:最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcplip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层:第二层架构主要完成大多少的核心服务功能,如SQL接口,并完成缓

2021-03-03 11:27:31 297

原创 LeetCode第49题 字母异位词分组

文章目录问题描述:解题思路:代码实现:问题描述:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。解题思路:  由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分

2021-02-26 09:54:30 148 1

原创 LeetCode第48题 旋转图像

文章目录问题描述:解题思路:代码实现:问题描述:给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],

2021-02-24 10:52:28 142

原创 LeetCode第39题 组合总和(深搜)

文章目录问题描述:解题思路:代码实现:问题描述:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例 2:输入:c

2021-02-22 12:45:55 251

原创 LeetCode第34题 在排序数组中查找元素开始和结束的位置

文章目录问题描述:解题思路:代码实现:问题描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输

2021-02-20 11:30:09 346 1

原创 LeetCode第617题 合并二叉树(递归遍历二叉树)

文章目录问题描述:解题思路:代码实现:问题描述:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 1 2

2021-02-18 13:21:54 198

原创 LeetCode第543题 二叉树的直径

文章目录问题描述:解题思路:代码实现:问题描述:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。解题思路:  所有节点中的(左子树深度+右子树的深度)的最大值就是树直

2021-02-18 11:47:46 86

原创 LeetCode 第448题 找到所有数组中消失的数字

文章目录问题描述:解题思路:代码实现:问题描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]解题思路:  由于数字范围均在 [1,n]中,我们也可以用一个长度为

2021-02-18 10:35:28 404 2

原创 LeetCode第461题 汉明距离

文章目录问题描述:解题思路:代码实现:问题描述:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:x和y都在int的范围内示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。解题思路:  汉明距离实际上就是求两个数的二进制有几个位不相同,可以先用异或运算求出两个数的异或结

2021-02-13 08:58:45 189 1

原创 LeetCode第283题 移动零

文章目录问题描述:解题思路:代码实现:问题描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解题思路:  解法一:使用冒泡排序的方法将所有0移动到后面。&emps; 解法二:遍历两次数组,第一次先将所有的非零数移动到前面,即先前靠拢;第二次遍历将数组末尾多余出来的位置赋值为零。

2021-02-12 13:18:27 1118 3

原创 LeetCode第234题 回文链表

文章目录问题描述:解题思路:代码实现:问题描述:请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true解题思路:解法一:   可以使用栈先进后出的特点进行解题,遍历链表将所有元素进行压栈,然后再从头遍历一次链表,与栈弹出的节点进行对比,看是否相等。需要注意的是比较的是节点的value值是否相等,而不是比较两个节点是否相等。解法二:   解法一的空间复杂度为o(n),为了

2021-02-12 11:22:41 190

原创 LeetCode第141题 环形链表的判断

文章目录问题描述:解题思路:代码实现:问题描述:给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?示

2021-02-07 11:28:09 184

原创 LeetCode136题 只出现一次的数字(位运算)

文章目录问题描述:解题思路代码实现:问题描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解题思路  可以使用异或运算解题,异或运算可以使得两个相同的数结果为0,任何数字与0进行异或运算都得到它本身。由于数组中的其他数字都是出现两次所以将数组中所有的数

2021-02-07 10:50:58 147

空空如也

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

TA关注的人

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