自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (8)
  • 收藏
  • 关注

原创 Springboot配置数据源

springboot下多数据源的配置

2022-12-26 19:44:59 1028

原创 动态规划经典——爬楼梯

爬楼梯题目经典动态规划问题:爬楼梯https://leetcode-cn.com/problems/climbing-stairs/假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 +...

2021-08-20 14:23:41 402

原创 动态规划经典——斐波拉契数列

https://leetcode-cn.com/problems/fibonacci-number/力扣网址,斐波拉契数列509题目斐波那契数,通常用F(n) 表示,形成的序列称为 斐波那契数列 。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1)= 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。示例 1:输入:2输出:1解释:F(2) = F(1) ...

2021-08-16 15:51:03 544

原创 设计模式——单例模式

单例模式Singleton(单例):无法通过new创建(为了防止在外部对其实例化,将其构造函数设计为私有) 保证类只有一个(在单例类的内部实现只生成一个实例,同时它提供一个静态的getInstance()工厂方法,让客户可以访问它的唯一实例)明白了单例的要求,那么来看下是怎么实现的。一个单例模式的创建(饿汉式)1.创建一个单例类1.1 首先肯定需要一个class类,我们这里随便取名,就叫做Singleton/** * 单例模式 */public class Singlet

2021-08-03 16:47:07 170

原创 动态规划经典——编辑距离

题目给你两个单词word1 和word2,请你计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')示例2:输入:word1 = ...

2021-05-17 11:33:10 114

原创 动态规划经典——分割等和子集(子集背包问题)

题目416. 分割等和子集难度中等778给你一个只包含正整数的非空数组nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。分析1.该题是将数组拆分成两个不同元素的子集,转换为背包问...

2021-05-13 17:04:15 2059

原创 动态规划经典——换硬币(完全背包问题)

换硬币问题也是动态规格的一类经典问题,这里主要给出两个题,给出分析1.最少硬币数题目给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。示例1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:...

2021-04-29 13:43:00 1654

原创 数据结构——单调栈详解

单调栈定义:从栈底元素到栈顶元素呈单调递增或单调递减,栈内序列满足单调性的栈。一般用于求解,元素的左边或者右边第一个大于或者小于元素的值。这里通过一道单调栈的例题进行举例分析。力扣真题https://leetcode-cn.com/problems/largest-rectangle-in-histogram/description/穷举其实可以想到的思路是穷举:以2作为高,计算最大面积;以1作为高,计算最大面积;以5作为高,计算最大面积;以6作为高,计.

2021-04-25 10:40:34 813

原创 数据结构——栈

栈的特性 现进后出(LIFO)的特性,即先放入的元素,后取出。如图,类似我们一个桶里面放东西,依次放入1-2-3-4,我们取出的时候总是需要4-3-2-1经典应用关于栈的经典面试题,就是消除类问题,大多数消除类问题,都会使用栈,如消除括号【题目】字符串中只有字符'('和')'。合法字符串需要括号可以配对。比如输入:"()"输出:true解释:(),()(),(())是合法的。)(,()(,(()是非法的。...

2021-04-19 21:58:04 60

原创 Redis HyperLogLog数据结构

Redis HyperLogLogHyperLogLog一般用作基数统计,如统计网站访问量,视频播放量啊等。在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。HyperLogLog怎么实现的HyperLogLog只需要花费12kb,就可以计算这么多基数。很明显,不是通过直接存储元素值比较实现的。那么既然不存储元素,是否这种存储方式也有误差呢?查.

2021-04-19 15:20:33 307

原创 redis-6.2.1安装教程

redis官网网址https://redis.io/查看下载页选择自己喜欢的版本下载安装教程官网已经说的很详细了,参考

2021-04-18 11:23:22 882

原创 centos8设置NSA固定IP

设置固定IP本文仅针对centos8,注意linux版本,安装教程参考https://www.jb51.net/article/171989.htmcentos8的网卡服务与centos7有所不同,无法通过systemctl或者service命令重启网卡。centos8网卡服务由nmcli进行管理。在刚装上虚拟机时,请使用保证可以执行nmcli和NetworkManager#nmcli工具yum provides nmcli #安装NetworkManageryum instal

2021-04-18 01:00:27 296

原创 动态规划初识

开篇首先要了解动态规划,我们可以从这个题的解题思路入手https://blog.csdn.net/mk33092250/article/details/113862996请确保一定看懂了该题的题解思路,再继续往下。动态规划问题,大多是求解最值核心:找到最优子结构 找到状态转移方程该题,我们采用了一个一维数组存储结果,实际我们的思路中就用到了动态规划。countArray[i]就是我们的最优子结构,表示数组中连续i个元素的最长递增子序列。通过上一次的结果可以经过推.

2021-04-10 10:14:10 56

原创 动态规划经典——背包问题

题目给你⼀个可装载重量为 W 的背包和 N 个物品,每个物品有重量和价值两个属性。其中第 i 个物品的重量为 wt[i] ,价值为 val[i] ,现在让你⽤这个背包装物品,最多能装的价值是多少?举个简单的例⼦,输⼊如下:N = 4, W = 7wt = [2 , 3 , 4 , 5]val = [3 , 4 , 5 , 7]算法返回:10 ,解释:选择重量为2和5的收益最大,为10.分析背包问题难点在于构建dp数组,int[][] dp = new int[N + .

2021-04-08 19:46:10 436

原创 leetcode474.一和零

题目给你一个二进制字符串数组 strs 和两个整数 m 和 n 。请你找出并返回 strs 的最大子集的大小,该子集中 最多 有 m 个 0 和 n 个 1 。如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。示例 1:输入:strs = ["10", "0001", "111001", "1", "0"], m = 5, n = 3输出:4解释:最多有 5 个 0 和 3 个 1 的最大子集是 {"10","0001","1","0"} ,因此答案是 4.

2021-04-07 21:13:46 126

原创 斐波拉契数列三种实现(JAVA)

斐波拉契数列F[n]=F[n-1]+F[n-2](n>=2,F[0]=0,F[1]=1)递归实现//递归实现(n>0) public static int getFibonacci(int n){ if (n==1|| n==2){ return 1; } return getFibonacci(n-1)+getFibonacci(n-2); }效率低下,存在大量的重复计算...

2021-04-07 14:04:24 271

原创 设计模式之设计原则——迪米特法则

迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易,这是对软件实体之间通信的限制,迪米特法则要求限制软件实体之间通信的宽度和深度。迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系。迪米特法则要求我们在设计系统时,应该尽量减少对象之间的交互,如果两个对象之间不必彼此直接通信,那么这两个对象就不应当发生任何直接的相互作用,如果其中的.

2021-04-02 09:17:26 91

原创 设计模式之设计原则——接口隔离原则

接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。该原则表面,当接口过大,我们需要对接口按功能或者角色拆分,这里的接口不仅指interface接口,而且也指一种逻辑上的抽象。如按功能拆分接口。接口承担了太多职责,会导致实现类特别臃肿,子类出现大量空方法,灵活性差。...

2021-04-02 09:09:40 76

原创 设计模式之设计原则——依赖倒转原则

依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。即我们常说的面向接口编程。依赖倒转原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。为了确保该原则的应用,一个具体类应当只实现接口或抽象类中声明过的方法,而不要给出多余的方法,否则.

2021-04-02 09:03:18 219

原创 设计模式之设计原则——里氏代换原则

里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。里氏代换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立。里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。使用里氏代换原则注意事项:1.子类的所有方法必...

2021-04-01 10:45:11 128

原创 设计模式之设计原则——开闭原则

开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。随时间的推移需求会不断发生变化,我们需要在设计之初考虑设计架构是稳定的,可扩展的。开闭原则正是保证该思想的设计原则。为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键。即用接口或者抽象类等替换掉我们的对象。可以通过对抽象层定义,再通过具体类来进行扩展。如果需要修改系统的行为,无须对抽象层进行任何改动,只需要增加新的具体类来.

2021-04-01 09:46:51 179

原创 设计模式之设计原则——单一职责

单一职责:一个类只负责一个功能领域中的相应职责或只有一个引起它变化的原因通俗讲:一个类只干"一件事"看似最简单,实际最易被忽略,我们码代码往往并没有注重单一职责,一个类过于臃肿,功能过多。如:一个类,既有获取连接的方法,又有检验的方法,又有处理业务逻辑的方法,等等。那么怎么处理呢?拆分,拆分成一个获取连接的类,通过这个类获取连接,通过检验类,校验参数,通过处理类,处理逻辑。那么这么做好处是什么呢?遵循了高内聚、低耦合的设计思想1.降低系统的复杂性2.提高代码的可读性,更.

2021-03-31 15:59:50 94

原创 JDK版本优化JDK1.2-12

JDK发展史jdk1.21998年12月4日,JDK迎来了一个里程碑式的重要版本:工程代号为Playground(竞技场)的JDK1.2,Sun在这个版本中把Java技术体系拆分为三个方向,分别是面向桌面应用开发的J2SE(Java 2 Platform,Standard Edition)、面向企业级开发的J2EE(Java 2 Platform,Enterprise Edition)和面向手机等移动终端开发的J2ME(Java 2 Platform,Micro Edition)在语言和API层面上

2021-03-31 13:50:30 292

原创 nginx入门学习

此文仅作入门学习,以及记录下配置中遇到的坑。首先nginx+tomcat主要为了实现负载均衡 (分发请求)。为了解释清楚负载均衡,这里假设www.test.com采用这种配置,当我们去访问www.test.com这个网址的时候,请求是传到了nginx服务器,然后由nginx分发到tomcat,假设我们启动了10个tomcat,nginx根据我们的配置分发请求给指定的tomcat,减轻服务器压力。1.工具nginx-1.8.0apache-tomcat-6.0.20apache-tomcat-

2021-03-24 21:29:05 44

原创 leetcode88.合并两个有序数组

题目链接:https://leetcode-cn.com/problems/merge-sorted-array/88. 合并两个有序数组难度简单772给你两个有序整数数组nums1和nums2,请你将nums2合并到nums1中,使nums1成为一个有序数组。初始化nums1和nums2的元素数量分别为m和n。你可以假设nums1的空间大小等于m + n,这样它就有足够的空间保存来自nums2的元素。示例 1:输入:nums1...

2021-02-20 14:46:46 208 1

原创 leetcode300. 最长递增子序列

题目链接:https://leetcode-cn.com/problems/longest-increasing-subsequence/300. 最长递增子序列难度中等1333给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18...

2021-02-19 14:35:13 242 1

原创 剑指 Offer 42. 连续子数组的最大和

题目:输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof著作权归领扣网络所有。商业转载请联系官方授...

2021-02-19 14:06:27 97

原创 zookeep报错:Socket error occurred: localhost/127.0.0.1:2181: 拒绝连接

使用./zkCli.sh查看zookeeper时服务报错,如下:拒绝链接。首先怀疑是2181端口被占用了,于是查看:sudo netstat -anp | grep 2181发现端口并未被占用,尝试重启zkServersh zkServer.sh start报错已经有进程在运行了。进一步定位:检查conf/zoo.cfg中的配置文件,发现多了一个pid,该文件为上次暴力关闭电脑,未关闭zk导致的。结论:服务未正常退出,删除该zookeepe.

2020-06-18 23:39:59 48504

原创 springboot请求响应分析

springboot项目的创建idea创建:File->New->Project…->Spring Initializr->Default:https://start.spring.ioweb创建:登录https://start.spring.io/ ,选择对应springboot版本,设置group和artifact下载就行\、注:springboot项目默认...

2019-10-09 20:41:10 457

原创 虚拟机搭建本地固定ip

参考自(侵删):https://www.cnblogs.com/chengssblog/p/6531964.html1.注意:1.如果网络连接不上,需要检查服务services.msc是否VMware NAT Service没有打开2.修改域名位置,vi /etc/sysconfig/network3.修改后重启‘service network restart...

2019-09-02 21:52:05 274

原创 linux下Zookeeper集群安装

目录一、准备3台linux虚拟机二、安装zookeeper下载安装包 解压zookeeper 进入到zookeeper路径下,copy一份zoo.cfg在zoo.cfg里面增加配置一个文件 myid启动zookeeper注意一、准备3台linux虚拟机此处不再介绍,可以搜索其他博文,推荐一篇博文https://www.cnb...

2019-09-02 21:46:49 100

原创 nginx+tomcat入门学习

前言此文仅作入门学习,以及记录下配置中遇到的坑。首先nginx+tomcat主要为了实现负载均衡 (分发请求)。为了解释清楚负载均衡,这里假设www.test.com采用这种配置,当我们去访问www.test.com这个网址的时候,请求是传到了nginx服务器,然后由nginx分发到tomcat,假设我们启动了10个tomcat,nginx根据我们的配置分发请求给指定的tomcat,减轻服务器压...

2019-09-01 18:26:02 541 1

原创 微信公众号接入

PACKAGE1.MenuManage/** * 创建菜单 * */public class MenuManager { private static Logger log = LoggerFactory.getLogger(MenuManager.class); public static void main(String[] args) { // 第三方用户唯一凭证 ...

2019-09-01 18:22:34 239

原创 Spring源码学习——自定义标签

1.自定义标签步骤创建一个需要扩展的组件定义xsd文件描述组件内容创建一个文件,实现BeanDefinitionParser接口,解析xsd文件中的定义和组件定义创建handler文件,扩展NamespaceHandlerSupport,注册组件到spring容器编写spring.handlers和spring.schemas文件2.代码如下1.编写pojopublic cla...

2019-09-01 18:19:19 116

原创 设计模式——工厂模式

1.普通简单工厂​        工厂类负责对实现同一接口的类进行实例创建,关系图如下代码如下:package com.designer.factory;public class SendFactory { public Sender produce(String type) { if ("mail".equals(ty...

2019-09-01 18:15:32 79

原创 maven自定义插件

title: maven基础date: 2019-05-19 22:29:22tags: mavenmaven基础优势相比传统项目,减少了手动导入工序,更加简便插件丰富构建简单安装maven下载地址配置MVN_HOME,如JAVA_HOME类似配置完成后,cmd输入mvn-version 检测是否配置成功配置setting.xml,路径在maven安装目录conf目...

2019-08-27 21:46:48 109

原创 设计模式——代理模式

代理模式就是新增加一个代理类,然后通过代理类来调用我们的实现。应用场景可以参考中介。1.未使用代理类场景 未使用代理类,即接口直接通过实现类实现功能接口:public interface UserDao { public void updateUser(); public void delUser();}实现类:public class...

2019-08-27 21:37:37 50

原创 SSM基于javaconfig配置

1    项目结构(SSM+MAVEN) 1.1    目录结构 1.2    POM文件         由于仓库是nexus私服,如遇见无法加载的包,请无视 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema...

2018-03-31 11:07:28 2129

原创 关于mysql不小心取消了root权限

今天不小心关了所有权限,系统进不去,后来总算找到了方法,希望后来人少绕路首先切换到mysql的安装路径的bin资料夹内,执行mysqld –skip-grant-tables,这个指令用以启动mysql,但会跳过权限检查。在cmd中输入此指令(mysqld –skip-grant-tables)后,需要重新开一个窗口,因为此时该窗口已不能操作了然后输入mysql;进

2016-07-29 00:05:53 487

Effective Java中英文(内含示例代码)

Effective Java中文PDF,英文PDF,还有示例代码(maven项目)

2018-04-16

dubbo-admin-2.5.3

dubbo-admin-2.5.3架包,使用方法自行搜索,可以实现web页面监控dubbo运行

2018-04-07

大型分布式网站架构设计与实践

大型分布式网站架构设计与实践,大量介绍现网站各种架构

2018-04-07

java的23种设计模式-动力节点

java的23种设计模式-动力节点文中大量例子教程,java程序员学习设计模式推荐书籍

2018-04-07

THINGKING_IN_JAVA第四版带目录

java经典书籍之一,java程序员必读,带目录文档,需有点C语言基础

2018-04-07

Effective Java中文版(第二版)

EFFICTIVE JAVA 第二版,java之父JAMES GOSLING著作,欢迎下载

2018-04-07

Core_Java——PDF

主要包括JAVA语言介绍,JAVA库,JAVA软件开发技术等几部分

2018-04-07

shiro 安全框架--最好的中文配置文档

shiro 安全框架-集成spring,主要是一些教程,可以查看下作为学习使用,......................................................................................................................................................................................................................................

2017-09-06

空空如也

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

TA关注的人

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