自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 问答 (1)
  • 收藏
  • 关注

原创 排序(上):为什么插入排序比冒泡排序更受欢迎?

排序对于任何一个程序员来说,可能都不会陌生。你学的第一个算法,可能就是排序。大部分编程语言中,也都提供了排序函数。在平常的项目中,我们也经常会用到排序。排序非常重要,所以我会花多一点时间来详细讲一讲经典的排序算法。排序算法太多了,有很多可能你连名字都没听说过,比如猴子排序、睡眠排序、面条排序等。我只讲众多排序算法中的一小撮,也是最经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。我按照时间复杂度把它们分成了三类,分三节课来讲解。

2023-10-25 17:50:22 84

原创 数据结构与算法(递归)

递归调用超过一定深度(比如1000)之后,我们就不继续往下再递归了,直接返回报错。f(n)表示你想知道自己在哪一排,f(n-1)表示前面一排所在的排数,f(1) = 1表示第一排的人知道自己在第一排。经典面试题之爬楼梯问题:假如有n阶台阶,每次爬1个或者2个台阶,爬完n个后有多少种走法?2、这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样。f(n) = f(n-1)+1 其中,f(1) = 1。1、一个问题的解可以分解为几个子问题的解。去的过程叫“递”,回来的过程叫“归”。

2023-05-05 00:25:57 108

原创 数据结构与算法(栈)

后进者先出,先进者后出,这就是典型的“栈”结构。其实,从功能上,数组或链表确实可以替代栈,但,特定的数据结构是对特定场景的抽象,而且,数组或链表暴露了太多的操作接口。因为,这个n空间是必须的,不能省,所以,我们说的空间复杂度是指算法运行还需要的存储空间。场景:当我们进入浏览器之后,会发现,浏览器的前进后退功能是一串页面,比如从a-b-c的页面,进入到c页面后可以回退到吧b再回退到a,还可以再前进到b再到c。时间复杂度,不管是顺序栈还是链式栈,入栈、出栈只涉及栈顶个别数据的操作,所以时间复杂度都是O(1)。

2023-04-18 08:34:27 109

原创 java语法之stream流

stream为顺序流,由主线程按顺序对流执行操作;parallelStream是并行流,内部以多线程并行的方式对流进行操作,前提是流中的数据处理没有顺序要求。如下:筛选集合中的奇数可以发现如果数据量大的话,并行流的效率更高。

2023-04-10 00:41:14 926

原创 数据结构与算法(队列)

当有一个新的元素a入队时,我们放到下标为7的位置。其中,入队操作会将一个元素添加到队列的尾部,而出队操作会从队列的头部删除一个元素,并返回该元素的值。在用数组实现的非循环队列中,队满的判断条件是tail == n,队空的判断条件是head == tail。队列中元素的插入和删除操作分别在队列的两端进行,新元素被插入到队列的尾部,而原有元素则从队列的头部被删除。当队列的tail指针移动到数组的最右边后,如果有新的数据入队,我们可以将head和tail之间的数据,整体搬移到数组中0到tail-head的位置。

2023-04-06 00:10:59 135

原创 数据结构与算法(链表)

数组的插入和删除时间复杂度O(n)、随机访问O(1)链表的插入和删除时间复杂度O(1)、随机访问O(n)

2023-03-28 00:52:22 65

原创 数据结构与算法(数组)

线性表:线性表就是数据排成像一条线一样的结构,每个线性表上的数据最多只有前和后两个方向,常见的线性表结构:数组、链表、队列、栈等。通过寻址公式:a[i]_address = base_address + i * data_type_size。其中data_type_size表示数组中每个元素的大小,base_address是首元素地址,i数组下标。数组怎么根据下表随机访问的?最好情况的时间复杂度O(1)最坏情况复杂度为O(n)

2023-03-23 00:51:19 51

原创 java语法之反射

允许运行中的Java程序对自身进行检查。反射可以直接操作程序的私有属性,反射像一面镜子,它可以在运行时获取一个类的所有信息,可以获取到包括(成员变量、成员方法、构造器等),并且可以操纵类的字段、方法、构造器等部分。

2023-03-22 01:47:03 55

原创 数据结构与算法(空间复杂度)

只有代码的执行时间不随n的增大而增长,这样代码的时间复杂度我们都记作O(1)。或者说,一般情况下,只要算法中不存在循环语句、递归语句,即使有成千上万行代码,其时间复杂度也是O(1)。由于第三行是循环次数最多的,分析上面代码可以看出,变量i的值从1开始取,每循环一次就乘以2.当大于n时,循环结束。显然是个等比数列:所以,我们只需要知道x值是多少,就知道这行代码执行的次数了。通过2^x = n求解x这个问题。故 x = log 2 ^ (n),所以这段代码的时间复杂度就是O(log 2 ^ (n))。分析以下

2023-03-21 00:34:33 123

原创 数据结构与算法(复杂度分析之时间复杂度)

这就是大O时间复杂度表示法。大O时间复杂度实际上并不具体表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势。因此,也叫渐进时间复杂度。其中对数阶和线性阶对数阶最常见也是最难分析的一种。

2023-03-20 00:18:33 149

原创 java语法之lambda表达式

1)如果有多个参数,参数之间用逗号隔开,如果没有参数,小括号里面为空2)-> 是一个固定的标准写法,使用的符号为英文格式,代表我们指向要操作的动作3){}里是我们具体要完成的业务,也就是我们方法的方法体。

2023-03-16 01:20:04 196

原创 java语法之类型转换

小类型指向大类型。

2023-03-14 23:42:36 57

原创 设计模式之美(面向对象)

面向对象编程的英文缩写是OOP,全称是Object Oriented Programming。对应地,面向对象编程语言的英文缩写是OOPL,全称是Object Oriented Programming Language。面向对象编程中有两个非常重要、非常基础的概念,那就是类(class)和对象(object)。这两个概念最早出现在1960年,在Simula这种编程语言中第一次使用。而面向对象编程这个概念第一次被使用是在Smalltalk这种编程语言中。

2023-02-22 11:33:42 118

原创 SSM整合(表现层数据的封装和异常处理)

所有异常都往上抛,比如(数据层抛到业务层,业务层抛到表现层),最后都抛到表现层然后做统一处理。为了将返回的数据信息呈现给前端和用户,因此需要约定好一个协议。具体代码实现在controller层。

2023-02-22 11:10:00 76

原创 SpringMVC请求与响应

json对象(POJO)json数组(POJO)

2023-02-22 11:09:44 47

原创 SpringMVC

SpringMVC是一种基于JAVA实现MVC模型的轻量级Web框架使用简单,开发便捷(相当于Servlet)灵活性强。

2023-02-22 11:07:46 43

原创 MateQ

发布消息日常环境不需要申请即可发送,Topic与Producer Group请保证唯一即可,但是如果需要在控制台里管理,则需要在控制台里申请对应的资源。生产环境必须要到MetaQ Console申请才能发送,目前已经升级成自动审批,如有问题再联系metaq的开发。对于非常重要的消息,例如订单消息,业务方需要有重发补偿的机制,例如MetaQ服务短暂不可用,此时发往MetaQ的消息将失败,等到MetaQ服务恢复后,业务方可以将之前发送失败的消息重新补偿发送。

2023-02-22 10:56:37 228

原创 HSF用户指南

响应对象会在HSF服务端线程中完成序列化,并放置到通信响应对象中。如果把这些服务都理解为资源的话,对于资源的管理就变得愈发重要,在RPC框架刚开始使用的时候,可能只有几个应用,几十个服务,如果规模扩充到上万应用,几十万个服务,RPC调用反而不是重头戏,而重要的是如何能高效的组织这些服务。软件环境分为:日常、预发和生产三种,如果只有一种,生产环境的数据在日常线下就会被访问和操作,这是不允许的,而环境的分类就需要依靠状态信息分开存储,也就是环境的区分依赖于地址注册中心和持久化配置中心(软负载体系)的区分。

2023-02-21 19:27:31 1603

原创 HSF快速入门

通过执行 mvn clean package 命令,我们可以将 hsf-guide-api 这个服务接口工程打包成 hsf-guide-api-1.0.0-SNAPSHOT.jar,需要调用这个接口的服务消费方,可以通过依赖这个 jar 包实现服务描述的依赖,从而完成远程调用。HSFApiConsumerBean 构建完成后,HSF 就会根据代码中设置的服务名(interfaceName:version)和组别(group)订阅服务的地址,并在发起调用时,随机选取其中的一个服务提供方执行远程调用。

2023-02-21 18:47:13 650

原创 HSF简介

在一些平台型的产品中,泛化调用的方式可以有效减少平台型产品的二方包依赖,实现系统的轻量级运行。HSF 控制台通过打通地址注册中心 ConfigServer、持久化配置中心 Diamond、元数据存储中心 Redis,为用户提供了一些列服务运维功能,包括服务查询、服务治理规则管理、服务测试、服务 Mock、单机运维等,旨在提高 HSF 服务研发的效率、运维的便捷性。服务测试:提供快速测试、调用服务的能力,用户只需通过在页面上输入服务调用的参数,即可方便的完成一次 HSF 服务的调用,提升研发效率。

2023-02-21 18:40:32 985

原创 设计模式之美(导读)

今天课堂讨论的话题有两个:1、聊一聊你对设计模式相关知识的重要性的看法;2、在你过往的项目开发中,有没有用过某种设计模式?是在什么场景下应用的?解决了什么问题?(我觉得设计模式是前人提取出来的经验之谈,不了解设计模式的之前,你写的代码可能也有用到设计模式。了解之后,更能帮助你进一步规范化开发。所有的东西不是必须的,但是站在前人的肩膀上一定是最省力的。)1.可维护性(maintainability)落实到编码开发,所谓的“维护”无外乎就是修改bug、修改老的代码、添加新的代码之类的工作。所谓“代码

2023-02-21 10:57:33 270

原创 阿里巴巴开发规范

开发规约

2023-02-13 14:30:47 498

原创 SSM整合(功能模块)

在SpringConfig类中添加一个注解 @EnableTransactionManagement平台事务管理器@Beanreturn ds;}打开业务层接口挂上事务(其他的事务传播行为等后续需求用上再加)

2022-09-01 03:21:35 154

原创 SSM整合

jdbc.properties配置文件。SpringMvcConfig类。MyBatisConfig类。ServletConfig类。SpringConfig类。JdbcConfig类。

2022-09-01 01:02:03 70

原创 spring事务

事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一些列的数据库操作同成功同失败。

2022-08-21 17:34:29 110

原创 spring(AOP)

aop核心概念。

2022-08-20 21:34:24 39

原创 spring注解开发

自动装配第三方bean管理整合

2022-08-20 17:49:26 59

原创 spring03

spring注解开发。

2022-08-19 19:45:29 85

原创 spring02

容器相关bean相关依赖注入相关。

2022-08-19 19:28:44 863

原创 Spring(01)

初始spring

2022-08-12 18:45:04 88

原创 Docker的基本操作

docker基操

2022-08-11 18:15:06 177

原创 初始Docker

了解docker

2022-08-11 17:46:48 181

原创 微服务---统一网关Gateway

网关

2022-08-11 17:05:50 129

原创 微服务---Feign(自定义配置)

Feign的运行自定义配置来覆盖默认配置,可以修改的配置如下:一般需要配置的就是日志级别。

2022-08-11 11:40:48 994

原创 微服务----Feign(基本配置)

Feign是一个声名式的http客户端,官网地址:https://github.com/OpenFeign/feign其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。使用Feign的步骤如下:1、引入依赖:2、在order-service的启动类添加注解开启Feign的功能:3、编写Feign客户端:主要是基于SpringMVC的注解来声明远程调用的信息,比如:服务名称:userservice请求方式:GET请求路径:/user/{id}...

2022-08-10 11:32:54 618

原创 微服务---Nacos(02)

spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml。无论profile如何变化,[spring.application.name].yaml这个文件一定会加载,因此多环境共享配置可以写入这个文件。[spring.application.name].yaml,例如:userservice.yaml。③、修改集群配置(节点信息)、数据库配置。④、分别启动多个nacos节点。4、搭建Nacos集群。...

2022-08-10 11:04:29 91

原创 微服务---Nacos(注册中心)

1、NacosRule负载均衡策略①、优先选择同集群服务实例列表②、本地集群找不到提供者,才去其它集群寻找,并且会报警告③、确定了可用实例列表后,再采用随机负载均衡挑选实例1、实例的权重控制①、Nacos控制台可以设置实例的权重值,0~1之间②、同集群内的多个实例,权重越高被访问的频率越高③、权重设置为0则完全不会被访问设置权重可以让服务平滑升级,非常优雅!!!1、Nacos环境隔离①、namespace用来做环境隔离②、每个namespace都有唯一的id。...

2022-08-09 17:27:24 309

原创 微服务第一篇

在order-service的OrderApplication中注册RestTemplate总结:1、微服务调用方式基于RestTemplate发起的http请求实现远程调用。http请求做远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可。服务提供者:一次业务中,被其他微服务调用的服务。(提供接口给其他微服务)服务消费者:一次业务中,调用其他微服务的服务。(调用其他微服务提供的接口)服务A调用服务B,服务B调用服务C,那么服务B是什么角色?(相对而言,相对于A是服务的提

2022-08-08 18:18:43 368

原创 go常用命令

go

2022-07-06 11:15:15 364 1

原创 2021-08-30

docker常用命令启动dockersystemctl start docker关闭dockersystemctl stop docker重启dockersystemctl restart docker查看docker 运行状态 ------如果是在运行中 输入命令后 会看到绿色的activesystemctl status docker查看docker 版本号信息docker version查看正在运行容器列表docker ps查看所有容器 -----包含正在运行 和

2021-08-30 17:32:02 75

空空如也

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

TA关注的人

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