自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JDK8新特性

整个笔记参考视频:Java8新特性lambda&stream&optional实现原理(余胜军通俗易懂版本)评价:视频讲的还算清楚,但不够细致,把几个主要的新特性的用法浅浅讲了一下。对新特性,尤其是 类个人评价是写起来很酷,维护起来想哭。jdk8新特性新特性的特点在jdk1.8之前,interface中可以定义变量和方法,变量必须是, , ,方法必须是, ,这些修饰符都是默认的。接口定义的变量:, , ;接口定义的方法:, ,抽象方法,需要子类实现。从jdk1.8开始,支持, 修饰方法体,不需要写子类重写

2022-06-15 18:13:34 422 1

原创 若依Ruoyi-Vue学习笔记

学习开源项目的目标:使用、学习开源项目的流程:从Gitee官网复制url在IDEA中打开(后端),注意前端Vue项目需要额外使用一个idea打开。表:直接执行下的两个sql文件,在本地创建表数据源:修改配置文件中数据源配置使用Docker启动Redis修改Redis配置需要在中修改日志存放位置:启动admin中的springboot启动类根据项目中的文件进行配置安装依赖,然后启动2. 登陆功能2.1 验证码基本思路简而言之:前端让后端出一道算术题,后端把题目告诉前端,并把答案放入后端的Redis中

2022-06-15 18:07:15 4718 2

原创 Docker学习笔记

文章目录1. 简介1.1 什么是Docker1.2 Docker起源1.3 优势1.4 Docker和虚拟机区别1.5 核心架构和概念1.镜像 (Image)是什么为什么这么大UnionFS镜像底层原理(了解即可)2.容器 (Container)3.仓库 (Repository)4.DockerFile5.tar6.数据卷(Docker Volume)1.6 执行流程2. 使用2.1 Docker引擎安装a. Macb. Centos7.x安装docker(centos7.x)bash安装(通用所有平台)2

2022-05-02 03:12:52 2532

原创 Springcloud_alibaba学习笔记

文章目录0. 简介区别特点组件1. 环境搭建2. Nacosa.作为服务注册中心启动Nacos Client简单上手服务间通信(和之前一样)应用搭建Controller具体实现RestTemplate+Ribbon:OpenFeignb.作为统一配置中心Config Client简单上手ControllerNacos中创建配置Nacos config自动刷新细节1、配置集(Data ID)2、配置分组(Group)3、命名空间(Namespace)4、最佳实践c.配置持久化d. 高可用(集群)nacos高可

2022-04-21 22:05:10 1779

原创 Config组件学习笔记

1. 简介config(配置)又称为统一配置中心,顾名思义,就是将配置统一管理,配置统一管理的好处是在日后大规模集群部署服务应用时相同的服务配置一致,日后再修改配置只需要统一修改全部同步,不需要一个一个服务手动维护。Spring Cloud Config 是 Spring Cloud 家族中最早的配置中心,虽然后来又发布了 Consul 可以代替配置中心功能,但是 Config 依然适用于 Spring Cloud 项目,通过简单的配置即可实现功能。配置文件是我们再熟悉不过的了,尤其是 Spring

2022-04-21 21:48:30 1257

原创 Gateway微服务网关组件学习笔记

0. 什么是网关定义网关统一服务入口,可方便实现对平台众多服务接口进行管控,对访问服务的身份认证、防报文重放与防数据篡改、功能调用的业务鉴权、响应数据的脱敏(敏:敏感数据)、流量与并发控制,甚至基于API调用的计量或者计费等等。网关 = 路由转发 + 过滤器为什么需要网关简短回答:网关可以实现服务的统一管理网关可以解决微服务中通用代码的冗余问题(如权限控制,流量监控,限流等)类似公司的保安;防火墙网关vs服务注册中心简单理解:网关是对外;服务注册中心对内。所以各自的负载均衡的客户

2022-04-04 02:49:39 1115

原创 Hystrix组件学习笔记

0. 关于HystrixHystrix是Netflix的一个组件,其本身已经处于维护状态;Hystrix的仪表盘Hystrix Dashboard已经停止维护,处于启用状态,对于服务熔断,可以使用sentinel组件。本篇主要介绍微服务中的一些重要概念,以及Hystrix组件的基本使用。1. 微服务中的重要概念1.1 服务雪崩在微服务之间进行服务调用是由于某一个服务故障,导致级联服务故障的现象,称为雪崩效应。雪崩效应描述的是提供方不可用,导致消费方不可用并将不可用逐渐放大的过程。图解:如存在如下

2022-04-04 02:47:51 446

原创 Leetcode. Largest Rectangle in Histogram

1. 题解题目链接🔗:84. Largest Rectangle in Histogram这道题和42. Trapping Rain Water有些相像,但是42题求的是能围住的最大面积,而本题求的是连成的矩阵的最大面积,因而在计算面积的方法上有些许不同。85. Maximal Rectangle就是在本题基础上的变式,通过一系列变化可以使用本题方法。分析简单分析可以知道最大矩形面积有两种情况:当前矩形的高度heights[i] * 1当前矩形的高度heights[i] * (向右第一个比

2022-03-15 18:41:53 7384

原创 SpringCloud微服务间通信(同步通信HTTP)

0. 简介0.1 目录0. 简介0.1 目录0.2 引言0.3 思考1. RestTemplate1.0 简介1.1 案例1.2 问题2. Ribbon2.1 流程与原理2.2 依赖2.3 实现负载均衡1. DiscoveryClient2. LoadBalancerClient3. @LoadBalance2.4 问题2.5 组件细节实现负载均衡原理负载均衡策略设置策略2.6 停止维护3. OpenFeign3.0 Ribb

2022-03-01 18:58:12 620 1

原创 Eureka&Consul服务注册中心组件学习笔记

1. 简介所谓服务注册中心就是在整个的微服务架构中单独提出一个服务(本身也是一个服务),这个服务不完成系统的任何的业务功能,仅仅用来完成对整个微服务系统的服务注册和服务发现,以及对服务健康状态的监控和管理功能(以及服务元数据信息存储,如服务的IP和端口)。目录1. 简介2. Eureka2.0 版本2.1 Eureka Server开发server服务端Eureka Server细节2.2 Eureka Client开发client客户端2.3 Eureka自我保护机

2022-02-25 07:10:51 339

原创 班级管理系统的后端微服务demo项目

Overview参考:【编程不良人】微服务小项目实战班级管理系统:该项目是学习微服务时的一个demo项目,只具备后端功能,且因为服务的功能和代码极其相似,最后两个服务没有开发完成。文档尽可能事无巨细地记录整个开发过程,方便未来查阅。文章目录Overview技术选型0. How to run1. Setup0. 分析1. 库表入库2. 项目架子搭建3. 处理业务代码微服务4. 每一个微服务5. 开发入口类6. 网关服务consul2. Service Development1. 城市服务1

2022-02-21 19:43:47 457

原创 基于Springboot和Mybatis的文件上传与下载

0. 前言因为太久太久没有碰项目了(上一次还是2021年8月开发个人博客的时候),所以这一次打算从头到尾把整个学习和搭建的过程记录下来。1. 简介这是一个基于SpringBoot和Mybatis的企业级文件上传下载的实战项目,没有太多前端和UI的东西。2. 链接【编程不良人】基于SpringBoot和Mybatis企业级文件上传下载项目实战1. 设计1. 需求用户登陆,展示用户的所有文件(文件如果是图片则在页面中显示图片)完成文件的下载和在线打开(在线打开不计入下载次数)在一张页面中完

2022-01-27 06:39:38 2794 3

原创 Pacman | MDP | Value Iteration

1. 概要1.0 前言最近刚写完AI Reasoning & Decision Making的Coursework,占这门课总成绩的20%。因为不要求写Report,所以在这里单独做一个记录和总结。从CW放出到ddl大概有一个月的时间,工作量不大,难度也较低,在Github上有很多Pacman基于MDP的代码可以参考借鉴。个人认为难点是在于调整项目中的各类参数,如Reward,和制定策略来优化游戏结果(胜率、得分)。1.1 游戏1.1.1 原版吃豆人Pacman原版是需要玩家手动控制,而

2021-12-13 00:08:56 3225 14

原创 Leetcode - 回溯算法(Backtracking)解题模板

回溯算法(Backtracking)的使用场景主要是解决排列组合问题,这类问题的共性就是需要穷举所有的可能/组合,这也意味在不做优化的情况下,需要遍历所有的情况,这也决定了回溯算法无论怎样优化,复杂度都是O(N!)

2021-12-13 00:07:33 368

原创 【CV现状】 - 图像分割

最近在写CV的一个mini project,涉及到Segmentation(图像分割),整个project需要使用Matlab,并且总共只有4分,所以完全没有必要动用深度学习。之前只在Lecture上了解过传统CV解决Segmentation,包括edge detection, thresholding, region-based segmentation, clustering, fitting。在理想状态下,这些方法都能有很好的表现,但是在实践中发现很多算法表现很糟糕,如thresholding和cl

2021-12-13 00:05:57 2904

原创 Java中的序列化及序列化ID

参考转载自:秒懂Java序列化与反序列化Java的序列化ID的作用1. 定义Java的序列化:是指把Java对象转换为字节序列的过程Java的反序列化:是指把字节序列恢复为Java对象的过程2. 为什么需要我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等, 而这些数据都会以二进制序列的形式在网络上传送。那么当两个Java进程进行通信时,能否实现进程间的对象传送呢?答案是可以的。如何做到呢?这就需要Java序列化与反序列化了。换句话说,一方面,.

2021-09-15 12:26:16 5423

原创 负载均衡器

参考:【IT老齐011】关于负载均衡器,你学会(fei)了吗?什么是负载均衡?1. 什么是负载均衡负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。1.1 主要职能具体应用在架构中,负载均衡主要有三大职能:.

2021-09-05 12:28:14 950

原创 Zookeeper学习笔记

视频资源:【尚硅谷】2021最新版Zookeeper 3.5.7版本教程【编程不良人】2021最新ZooKeeper教程0. Dubbo与Zookeeper的关系参考:zookeeper、dubbo、kafka简单了解Dubbo建议使用Zookeeper作为服务的注册中心。Dbbo是一个框架,用于服务间的调度,服务程序编写使用dubbo做接口,dubbo实现了服务与服务之间还有zookeeper之间的通讯。Zookeeper的作用:zookeeper用来注册服务和进行负载均衡,.

2021-08-23 20:55:26 532

原创 Dubbo学习笔记

视频资源:尚硅谷Dubbo教程(dubbo经典之作)1. Dubbo初识特性:面向借口代理的高性能RPC调用:提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。智能负载均衡:内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟,提高系统吞吐量。服务自动注册与发现:支持多种注册中心服务,服务实例上下线实时感知。过程:1.各微服务启动时,将自己的实例信息注册到注册中心,注册中心存储这些数据2.注册中心检测服务提供者的连接状态.

2021-08-16 22:17:30 177

原创 分布式系统基础理论

1. 分布式系统定义分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统。分布式系统(Distributed System)是建立在网络之上的软件系统。随着互联网发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。2. 应用的架构演进[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jdtWNd3z-1628991669721)(https://i.loli.ne

2021-08-15 09:42:53 288

原创 关于三次握手和四次挥手的面试题

TCP握手挥手的千层套路面试官,不要再问我三次握手和四次挥手

2021-08-09 23:47:57 124

原创 HTTP协议

HTTP协议1. 超文本传输协议简介(HyperText Transfer Protocol, HTTP)一种无状态的,以请求/响应方式运行的协议,它使用可拓展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动。无状态:即本身不会存储用户的信息。持久连接:HTTP1.0 使用的是非持久连接,主要缺点是客户端必须为每一个待请求的对象建立并维护一个新的连接,即每请求一个文档就要有两倍RTT 的开销。因为同一个页面可能存在多个对象,所以非持久连接可能使一个页面的下载变得十分缓慢,而且这种短连接增

2021-08-09 21:19:02 400

原创 JQuery为动态元素绑定事件

在前端开发的时候需要一个场景需要为使用AJax动态加载出来的元素绑定一个popup事件,但是发现如果直接在js代码中打开要动态加载的元素的popup的功能无效。本文讨论了出现的原因及解决办法。

2021-07-27 21:47:16 1818

原创 PageHelper的使用以及遇到的坑总结

在开发个人博客的过程中,使用到了PageHelper插件来实现查询的分页功能,遇到了不少坑,这里做一个汇总。实现简单的分页查询使用PageHelper的好处就是实现简单的分页查询非常方便,我们无需修改底层的SQL语句(如果使用Mybatis就需要写SQL)并且传到前端也可以直接使用(相比于使用原生的SQL语句,如limit),使用方法如下:1. db比如现在我们有一个博客的分类表(Type)type_idtype_name1Java2Python3C++

2021-07-08 23:57:45 3395 5

原创 博客-评论系统数据库设计及实现

最近在开发一个小型个人博客,在数据库设计方面遇到了一些问题,这里做一个记录。博客包含博客的基本信息,包括标题、内容等,此外还包括博客的标签、类型和评论。对象关系一篇博客可能对应多个标签,一个标签可以被多篇博客对包含。(多对多)一篇博客只能对应一个分类,一个分类可以被多篇博客对包含。(一对多)一篇博客可能对应多条评论,一条评论只能对应一篇博客。(一对多)一篇博客只能对应一个用户,一个用户可能拥有多篇博客。(一对多)一条评论可能包含多条子评论,一条评论只能对应一条父评论。(一对多)上面关系里:

2021-07-05 16:28:51 9661 7

原创 Java中四种引用类型

Java中有四种引用类型:强引用软引用虚引用弱引用在 Java 中一切都被视为了对象,但是我们操作的标识符实际上是对象的一个引用(reference)。Java中,引用都被存储在了栈中,而实例对象几乎都被存在了Java堆中。引用可以单独存在而不指向任何对象:String str;Integer i;通过将一个引用指向一个对象后,就可以通过这个引用来操作对象了:str = new String("Hello");System.out.println(str);强引用Java中

2021-06-23 20:20:01 170

原创 创建线程的方式

创建线程的三种方式Java中主要有三种实现多线程的方式:继承Thread类实现Runnable接口实现Callable接口(可以获取线程执行后的返回值)第一种方式是创建了一个继承于Thread的多线程类,它本身就是一个线程;而后两种方式更准确的理解是创建了一个可执行的任务,要采用多线程的方式执行,即两种方式还是需要一个Thread类来启动。// 把一个实现Runnable接口的类放入Thread中,并启动该Thread线程new Thread(new Runnable(){}).start

2021-06-23 11:42:14 45

原创 Shiro的简单Springboot整合demo

跟着【狂神说Java】SpringBoot最新教程IDEA版通俗易懂P40-P44在Springboot中简单整合了Shiro并实现了登录认证和访问授权功能。pom依赖<!-- Shiro整合Spring --><dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version&

2021-06-19 13:11:39 137

原创 Shiro的简单使用

最原生的授权和认证可以通过Filter拦截器来做,但是这种方式代码量会比使用框架多好几倍,并且操作麻烦。之前在做Flask项目时,用到@login_required标签,其作用就是告诉程序,使用这个方法是要求用户登录的。这个方法非常方便,但是定制度有点低。关于Shiro的特点这里不作赘述,只是记录一下Shiro的简单使用和一些基本原理,作为未来翻阅的笔记。这里为官方源码里的QuickStart做一个笔记,Shiro github源码。Shiro相关的配置再另一篇demo中记录讲解。获取当前用户关于Se

2021-06-19 12:38:57 194

原创 SpringBoot使用yml装配bean

在SpringBoot中可以把bean的属性放在yaml配置文件中,如下:cat: name: tom age: 12 food: - fish - chickenyaml(也可写成yml)的具体语法这里不作展开,主要记录一下在SpringBoot中怎么用yml配置文件来配置一个bean的属性。application.yml的优先级低于application.properties,所以在.properties中的配置会先于.yml中的配置生效先配置一个Cat的实体类

2021-06-10 12:35:22 2217 3

原创 72. 编辑距离

LeetCode.72 编辑距离(Hard)编辑距离属于经典的动态规划题目,看似十分困难,其实解法十分简单。而所有动态规划题目的解题思路都是找:找到base case(递归结束的条件)找到状态转移方程(递归每一步做的事情 + 返回的值)因为处理的是两个字符串,所以通常使用双指针,分别指向两个字符串的末尾。从后向前递归,当任一字符串走完时,另一字符串剩下的长度就是剩余的步数/操作数。int dp(String str1, String str2, int i, int j) { // base

2021-06-08 22:07:30 75

原创 面试八股文之Hash Map

知乎:阿里面试 HashMap 的 21 连击!一招下来你还有多少血?

2021-06-08 10:16:30 162

原创 Servlet生命周期

1. JSP和ServletJSP = HTML + Java(HTML代码里嵌有Java代码)Servlet = Java + HTML(Java代码里写html代码/标签,如out.write("<HTML>"))JSP的特点在于视图,Servlet的特点在于实现控制逻辑;最原始的Servlet要返回视图的话,需要写大量out.write("<HTML>")…非常不方便JSP本质就是一个Servlet,做的工作就是把JSP里的html + Java代码翻译回原始的形式

2021-06-07 15:28:02 80

原创 BFS解题框架

BFS(Breath First Search,广度优先算法)和DFS(Depth First Search,深度优先算法)是非常常用的两种算法,其中DFS通常被认为是“回溯算法”。BFS相对DFS的最大区别是:BFS找到的路径一定是最短的,但代价是空间复杂度比DFS大很多。BFS的核心思想:把一个问题抽象成图,从一个点开始,向四周扩散。通常BFS算法都是需要“队列”这种数据结构,把一个点周围的点加入这个队列。算法框架int BFS(Node start, Node end) { Queue

2021-06-07 10:02:14 64

原创 SpringMVC运行流程:HandlerMapper & HandlerAdapter的区别

SpringMVC的工作流程很重要,而在实际开发中我们会用注解进行开发,比如使用@Controller来标注控制器,使用@RequestMapping来映射URL请求到具体的处理函数,而其背后的运行流程其实更加重要。SpringMVC的设计体现出软件开发中非常重要的架构设计原则的应用:“关注点分离”和”单一职责“。在复习SpringMVC的运行流程时,对HandlerMapper和HandlerAdapter的职能产生了疑惑,这里对他们两者的区别做一个记录。未来有机会再补上SpringMVC的完整运行流程

2021-06-06 20:41:39 541

原创 一个简单的SSM项目的配置搭建

该项目使用Spring+SpringMVC+MyBatis,来搭建一个十分简单的书籍管理系统,因为SSM项目的配置非常繁琐(配置地狱),且这个配置骨架通常也可以复用,所以在这里记录一下

2021-06-06 16:18:23 207 1

原创 IDEA的XML中写SQL语句自动提示

MAC:Preference -> Language & Frameworks -> SQL Dialects -> Project SQL Dialects设置完写XML时就有自动提示

2021-06-03 15:59:39 2629 6

原创 SSM项目的pom.xml

一个简单的SSM项目的pom.xml需要:1. 导入依赖 2. 配置静态资源导出<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/

2021-06-03 15:03:22 612

原创 事务的四个特性以及四个隔离级别

数据库中的**事务**有四大特性(**ACID**),分别是原子性、一致性、隔离性和持久性。针对隔离性,还有四个隔离级别,分别是串行化、可重复读、读已提交和读未提交。这四个隔离级别是针对并发事务中存在的三个问题,分别是脏读、不可重复读和幻读。

2021-06-03 11:02:44 16589 2

原创 SpringMVC的前后端传参 & RESTFUL

ModelModelMapModelAndViewimport org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servl.

2021-06-02 21:41:27 516

空空如也

空空如也

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

TA关注的人

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