自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 docker

微服务架构需要启动多个容器,多个容器的启动需要遵循一定的顺序,需要管理这些容器。如果手动去操作,太过繁琐。服务编排就是按照一定的顺序批量管理这些容器。在~/docker-compose目录下使用docker-compose启动容器。创建./nginx/conf.d目录并在该目录下编写配置文件xxx.conf。编写docker-compose.yml文件。2、部署SpringBoot项目。构建镜像,输入如下命令。

2023-03-10 16:40:04 382

原创 平衡二叉树

一个有n个内部节点的红黑树的高度最多为2lg(n+1)2lg(n+1)2lg(n+1)从根到叶子的最长的可能路径不多于最短的可能路径的两倍长(由红黑树的定义4和5可得到)B树的节点结构其中PiP_iPi​指向子节点,KiK_iKi​是关键字并且Ki

2022-12-15 16:40:32 418

原创 剑指 Offer 44. 数字序列中某一位的数字

在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。知道在n在第x个长度为len的数上,也就知道了n所在的数的值(val),和n在第x个数上的哪个(t)位置上。使用以上代码我们可以求得n所处的位的数的长度,注意此时n已经不是从1开始的第n位数,而是从。以次类推,我们可以得到长度为k>1的数字上的每一位的处于。对于给定的n,先求它所处的数是几位数(len),我们可以不断的减去。]这个范围内,对于长度为2的数字上的每一位他们处于。它们的各个位上的数字处于[的1开始的第n位数。

2022-09-16 23:04:30 258

原创 实现类似yml数据的扁平化

利用深度优先进行处理,先处理前面没有空格的数据,然后处理有4个空格的数据,再处理有8个空格的数据,重复下去直到所有的数据处理完毕。对于给定的类似于上面的数据,对其进行扁平化,得到类似于下面的数据。

2022-09-14 13:31:36 173

原创 RabbitMQ

AMQP(Advanced Message Queuing Protocol):高级消息队列,进程间传递异步消息的网络协议。

2022-08-25 23:20:07 658

原创 SpringBoot原理

SpringBoot是Spring开源组织下的一个子项目,降低了使用SpringBoot的难度,简省了Spring的配置,提供了各种启动器。SpringBoot可以实现自动配置,而实现自动配置需要依赖的项目满足下面两个条件(也就是上面介绍的自动配置的元素):要在resources目录下建立一个META-INF目录,并且META-INF目录中提供一个spring.factories文件,这个文件中提供了配置类的类路径。

2022-08-19 23:55:50 1844

原创 计算机网络

网络、互联网和因特网网络:由若干节点和连接这些节点的链路组成互联网(internet):多个网络通过路由器相连组成了互联网因特网(Internet):最大的互联网因特网的结构:三层结构:ISP是因特网服务提供者核心部分:网络和连接网络的路由器组成,位用户提供服务。边缘部分:用户直接使用的主机组成。三种交换方式:电路交换:三个步骤:建立连接,通话,释放连接特点:建立连接后独自连接线路,其他用户不可使用,直到释放连接。...

2022-08-08 23:58:10 2472

原创 java虚拟机

一、前言jvm的定义:java virtual machine ,是一台执行Java字节码的虚拟计算机(不同于C,C++等语言,java将源文件编译为class字节码文件,这种文件无法在操作系统上直接运行,这就需要jvm来执行这些文件)。需要注意的是,jvm是一套规范,由不同的厂商来实现这套规范。作用:(1)实现了一次编译到处运行(java将程序编译为class字节码而不是机器码,通过在不同的操作系统上安装不同的虚拟机实现了一次编译到处运行)。(2)自动内存管理,垃圾回收(C,C++需要自己是否内存)

2022-08-02 14:55:26 471

原创 java集合

.(2)String对象的值为什么不可被修改?可能会觉得是因为char数组用final关键字修改,可是这只是说明数组不能被修改而数组中的值是可以修改的。事实上修改char数组的值有4种方法第一种如果数组是public修饰的则可以直接通过对象访问并修改,第二种通过String提供的诸如set等方法修改,第三种通过继承String类在子类中修改,第四种通过反射进行修改。事实上前三种方法都被java的api开发者堵死了。第一种数组是private修饰的无法直接访问。第二种(2)扩容。.........

2022-08-02 14:53:45 179

原创 牛顿迭代法求解平方根

注意牛顿迭代法不同于牛顿法,牛顿法进行一阶展开而牛顿迭代法进行二阶展开。

2022-07-23 18:18:28 222

原创 向下的路径节点之和

还有一种是从当前节点向上搜索,统计从当前节点线向上有多少条路径的和等于targetSum。对如targetSum=15,如下图,对于起始节点,我们要找有多少路径等于targetSum,也就等价于找有多少个preSum=Sum-targetSum,也就是统计Sum-targetSum出现的次数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。这题有两种解法,第一种是从根节点向叶节点搜索,此时有两种情况,考虑当前节点和不考虑当前节点。...

2022-07-19 12:09:24 146

原创 布隆与布谷鸟过滤器

将数组分为几份,每份有若干个存储位置(不再是1bit而是1byte)。对于某个key,先计算它的指纹(相当于把这个key压缩了,大小为1byte,这个指纹暂时记作fp),对key进行hash得到第一个位置(p1),fp与p1进行与操作得到p2 = fp ^ p1。现在p1份里存储fp,存储失败则到p2存储fp,如果都存储失败则随机选择p1,p2中的一个值,在对应的位置挤兑出一个数,然后再为这个数寻找插入位置,如果挤兑次数超出一个上限则执行失败。判断是否存在key时,在p1和p2中寻找这个数,如果查找失败则表

2022-06-27 00:23:01 328

原创 java多线程

2>实现Runnable接口,重写run方法,并且将Runnable对象作为参数传入Thread中的。实现Callable接口,将Callable接口的对象作为参数传入FutureTask,FutureTask对象在传入Thread。Callable接口有返回值,并且可以通过FutureTask获取返回值。需要注意的是,FutureTask其实间接地实现了Runnable对象。start是开启一个线程,这个线程执行的内存就是run()方法。如果直接调用run方法,不会开启线程。join。..........

2022-06-06 17:23:43 897

原创 快速排序的一点细节

快速排序的执行步骤:(1)设置一个分界值(从待排序的数组中选),将分界值与数组左端点进行交换并将分界值存储起来。这时左端点就空了出来,从数组的最右边开始找并找到第一个比分界值小的元素,将这个元素放在左端点(注意左端点的元素已经存起来了)。这时右端点空了出来,然后再左端点开始寻找第一个比分界值大的元素,放在右端点。循环执行,最后会空出来一个位置,将分解值放在这个位置。(2)通(1),分界值左边都不大于它,右边都不小于它。对分解值得左右部分开别执行(1),当待处理元素个数为1时所有元素都是有序的。publ

2022-05-22 15:52:43 123

原创 Mybatis

一、mybatis的使用使用mybatis需要添加mybatis的依赖,同时由于mybatis在是对jdbc的封装,也需要引入对应数据库的jdbc依赖配置mybatis,在resources目录下创建一个mybatis-config.xml文件,然后输入以下类容(可以在官网上找到配置类容链接)<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD C

2022-05-20 16:08:44 288

原创 Redis

一、redis的下载与安装(Linux操作系统)redis下载可以在redis官网的下载界面下载自己需要的版本,将下载后的文件copy到自己需要保存的目录下,这里我们放在/usr/local/reids文件夹中。也可以先将当前目录切换到/user/local/redis中,然后执行wget https://download.redis.io/redis-stable.tar.gz命令。(注意,下载文件需要root权限,使用su root命令进行切换)redis安装使用tar -xzvf redis

2022-05-15 19:23:16 304

原创 Spring

Spring IoC容器是什么是IoCIoC是Inversion of Control的缩写,即控制反转。也就是借助于与第三方进行对象之间的解耦,这是一种设计原则。为什么要Ioc说道IoC就要提依赖倒置原则,满足了依赖倒置原则就可以一定程度上满足IoC。依赖倒置:要依赖于抽象不应该依赖于具体实现。依赖倒置原则是为了最大程度的实现软件的复用,然而这就存在一个问题:不依赖于具体的实现要如何获取对象?举个例子,在访问数据库时我们需要获取数据库连接也就是Connection对象,假设不同的数据库厂商(m

2022-05-09 22:32:42 255

原创 设计原则与设计模式

MVC设计模式是一种混合设计模式,M指的是model,V指的是view,C指的是controller。model:模型持有所有的数据、状态和程序逻辑view:用来呈现模型controller:取得用户的输入并解读其对模型的意识(controller并不负责处理逻辑,只是将用户的输入解读为对模型的操作,所有的逻辑和对数据的操作都交给model)一、非web应用中的MVC设计模式用户对view的操作交由controller,controller对用户的操作进行解析,并将解析后的操作交给model,

2022-04-22 16:55:53 2723

原创 整数分割(剪绳子)问题全网最详细解释

题目描述:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?链接:https://leetcode-cn.com/problems/integer-break/解法1:动态规划设f(n)f(n)f(n)代表长度为n的绳子的最优解。由于m≥0m\geq0m≥0,所以我们至少要切一刀,假设得到的两根绳子的长度分别是kkk,n−kn

2022-04-12 22:01:09 402

原创 约瑟夫环的求解

题目描述:0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。链接:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof建设f(n)f(n)f(n)表

2022-04-11 19:49:23 194

原创 彻底理解JDBC

1注册JDBC驱动注册JDBC驱动的三种方式(以mysql为例):Class.forName(“com.mysql.jdbc.Driver”);DriverManager.registerDriver(new Driver());System.setProperty(“jdbc.drivers”,“com.mysql.jdbc.Driver”);方法1中使用了类的反射,在使用 Class.forName(“com.mysql.jdbc.Driver”)时会向jvm中加载com.mysql.jdb

2022-04-06 17:43:19 649

原创 n&(n-1)

n&(n-1)

2022-04-05 22:06:19 152

原创 leetcode平衡二叉树

leetcode平衡二叉树题目:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。链接:https://leetcode-cn.com/problems/balanced-binary-tree/题解:解法1,自顶向下,先判断左右子树是否平衡,再判断当前树是否平衡public boolean isBalanced(TreeNode root) { if(root == null) return true; ret

2022-04-04 22:17:33 415

原创 Letcode数据流中的中位数

Letcode数据流中的中位数

2022-04-01 10:34:52 248

原创 Letcode两个链表第一个公共节点

输入两个链表,返回它两的第一个公共节点

2022-03-25 22:51:05 828

原创 MySql

MySQL

2022-03-25 22:10:52 946

原创 快速幂和模除

递归快速幂思想很简单,a9=a∗a8,a8=a4∗a4a^9=a*a^8,a^8=a^4*a^4a9=a∗a8,a8=a4∗a4public static int fastPower1(int a, int b){ if(b == 0) return 1; if(b%2 == 1) return a*fastPower1(a,b - 1); else{ int temp = fas.

2022-03-22 11:17:02 69

原创 二分查找算法

搜索区间为开区间 public static int binarySearch(int[] nums, int target){ int left = 0; int right = nums.length - 1; while(left <= right){ int mid = (left + right)/2; if(nums[mid] == target){ re

2022-03-18 13:58:10 245

原创 Servlet

tomcat的下载与安装tomcat的下载与安装:https://www.cnblogs.com/KmilyLee/p/9358657.html解决Tomcat: Can’t load IA 32-bit .dll on a AMD 64-bit platform问题:https://blog.csdn.net/xiaokui_wingfly/article/details/8736142tomcat的目录结构bin:放置可执行文件conf:配置文件 server.xml文件中存放服务器

2022-03-17 21:26:18 1223

原创 周志华教授《机器学习》中PCA求解错了?

在《机器学习》的10.3节主成分分析中基于最近重构性得到了以下优化问题:minW−tr⁡(WTXXTW) s.t. WTW=I\begin{array}{ll}\mathop{min}\limits_{W} & -\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{X} \mathbf{X}^{\mathrm{T}} \mathbf{W}\right) \\ \text { s.t. } & \mathbf{W}

2022-01-08 12:22:09 512 1

原创 二叉树的非递归遍历算法

二叉树的遍历广度优先遍历采用队列,取出当初层对应的所有节点,并将其所有子节点依次加入队列class Solution { public List<List<Integer>> levelOrder(TreeNode root) { ArrayList<List<Integer>> list = new ArrayList<List<Integer>>(); if(root == null

2022-01-01 16:36:00 423

原创 Handler,Looper,MessageQue

1.在主线程中使用Looper.preare()会自动创建一个looper对象,这个对象属于当前线程,并且looper对象中拥有一个messageQueue2. 在主线程中创建一个handler,创建时会自动获取到当前线程的looper对象,并且向looper中存放handler对象3. 通过重写handler的hanlderMessage()方法来确定要执行的内容。4. 创建子线程,并向其...

2020-03-18 17:03:53 136

原创 android真机测试网络连接问题

连接电脑进行测试通过电脑开启wifi,手机连接wifi,在本地连接中查看IP地址,这就是要连接的服务器的IP地址。在android的配置文件中添加,允许网络连接在进行数据传输时高版本的android必须要使用https的 连接,解决方法链接配置tomcat接受https请求的方法...

2020-03-18 09:56:50 742

原创 思科模拟器中三层交换机的配置

创建vlan输入enable进入特权模式输入config t进入配置模式输入int vlan 10创建vlan 10输入ip address 222.222.1.2.254将vlan 10 和目的IP地址绑定输入no shutdown开启vlan 10设置vlan名称输入exit退回到配置模式(需要退出刚才的config-if模式)输入vlan 10创建vlan 10输入...

2019-06-01 17:54:39 5096

原创 EL和JSTL

1.EL 基本语法“expression”“/{expression}”“/expression”“/{expression}”表示转译"user.name&quot;相当与user.getName();(使用了反射的机制)&quot;{user.name}&quot;相当与user.getName();(使用了反射的机制)&quot;user.name"相...

2019-06-01 16:49:58 67

原创 Oracle中单引号和双引号的区别

oracle中" "表示对象名,关键字,别名’ '表示字符串常量和转译字符。如select ename|| 'annual salary is ’ || sal as “Employees Salary”from emp;注意这里的||是连接符用来连接多个字符串,而不是别名或者创建新列。因此不能使用双引号。而select ename “ename” from emp;中就不能使用单引号...

2019-05-13 15:54:31 259

原创 JSP中Filter使用时注意的问题

用Filter中doGet()方法中不可连续调用两次chain.doFilter()方法,地二次调用时会被视作时新的请求而再一次调用doGet()方法,此时就会死循环。但如果请求的时jsp页面却不会发生这样的问题,而是发送回两个html页面,原因也还没有弄清楚。...

2019-05-09 20:50:18 200

原创 用MFC进行TCP文件传输遇到的问题

MFC中不可以在Dialog代码中使用死循环在MFC Dialog中使用死循环会导致界面假死,MFC Diaglog界面的显示本来就是依靠一个线程来完成的,到使用死循环时这个线程就会一直卡在这,导致界面无法刷新,造成界面的假死。解决方法:新开一个线程,在线程中处理死循环的问题。新开线程的基本格式:(1)声明线程函数:DWORD WINAPI recvFun(LPVOID lpPara...

2019-05-09 20:37:30 645

空空如也

空空如也

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

TA关注的人

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