自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Chat GPT提示词(prompt )入门指南

对于这类简单的问题,不需要过多的描述,直接提问即可。作为一名中文写作改进助理,你的任务是改进所提供文本的拼写、语法、清晰、简洁和整体可读性,同时分解长句,减少重复,并提供改进建议。但是写一个好 prompt 对于初学者来说是件比较困难的事情,于是有大佬就根据自己的经验总结出了一套方法论,只要根据这个方法论来一步步执行,写出的 prompt 都不会差的。但个人比较推荐的是使用提供模板给 GPT,也就是拿已经写好的 prompt 发给 GPT ,让他学习,然后根据这些优秀案例再生成你指定方向的 prompt。

2023-06-21 10:16:16 6100

原创 springboot项目 + rancher管理 实现用户无感知部署

在rancher找到对应服务的config,将Minimum Ready设置为合适的时间(单位为秒)或者以yaml文件修改配置,但是在yaml配置中是叫minReadySeconds此时新编译打包的镜像启动后,旧版本的镜像将会在60s后才被kill掉,避免了新镜像刚启动未注册到服务发现配置就把旧镜像kill掉后导致的空窗期。但是这样又会引发一个新问题:旧镜像在60s后被kill掉会不会导致一部分负载到此镜像的流量异常(此时相当于两个节点在服务发现上)由此可以引申出服务优雅下线。

2023-06-06 16:21:43 1329

原创 CompletableFuture

CompletableFuture

2023-01-28 15:23:00 883

原创 k8s yaml文件简单分析

k8s yaml文件简单分析

2023-01-11 10:13:31 272

原创 mysql学习笔记

供自己复习使用

2022-06-29 23:13:31 221

原创 从单一元素的异或解法到HashMap源码

从单一元素的异或解法到HashMap源码有序数组中的单一元素来自力扣原题:给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。示例 1:输入: nums = [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: nums = [3,3,7,7,10,11,11]输出: 10来源:力扣(LeetCode)链接:htt

2022-03-22 11:42:15 421 1

原创 idea查找方法的调用链路

idea查找方法的调用链路选中方法[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j3h1LwFE-1635412424128)(https://raw.githubusercontent.com/zlongqaq/img/main/pro/image-20211028170735937.png)]idea 导航[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r4aK56D6-1635412424130)(https://raw.g

2021-10-28 17:13:59 1386

原创 JVM 运行时数据区域

JVM 运行时数据区域简要模型jdk1.8前jdk1.8后两个版本之间的区别元数据区取代了永久代的方法区。元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存。程序计数器记录正在执行的虚拟机字节码指令的地址,它可以看做是当前线程所执行的字节码的行号指示器 。如果正在执行的是Native方法(本地方法)则为空。这个内存区域是唯一一个在虚拟机中没有规定任何OutOfMemoryError情况的

2021-06-28 15:10:20 124

原创 mysql高并发场景下重复插入如何保证唯一性

mysql高并发场景下重复插入如何保证唯一性有家公司的题:1.用户通过手机号进行注册,手机号仅允许注册一次,需求如下: - 账户的注销采用软删除进行 - 注销的数据对于应用来说是不存在的,应用不允许对其有任何修改 - 注销的账户后允许再次注册软删除也就逻辑删除,大概就是下面这个亚子。这种题其实就是问的高并发场景下重复插入。在高并发的时候,用户的两个请求同时进来,select的时候发现没有这条数据或者说没有发现状态为使用中的数据,就会重复插入了

2021-05-21 10:20:42 1730 3

原创 seata实践

seata下载https://seata.io/zh-cn/blog/download.html配置文件修改conf/registry.confregistry和config的type都改成nacos然后指定一个namespaceregistry { # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa type = "nacos" nacos { application = "seata-server" serverA

2021-05-04 21:12:18 637 2

原创 MySQL 查出、更改、删除某个字段重复的所有数据

这个是查询 手机号重复的数据。以后根据需求修改sql就好了。SELECT phone, COUNT(phone) AS sumCount FROM tb_user GROUP BY phone HAVING sumCount > 1;如果想要修改正确案例:UPDATE tb_user SET state = 1 WHERE phone IN ( SELECT a.phone FROM ( SELECT phone FROM tb_user GROUP BY phone HAVING C

2021-04-14 11:54:31 389

原创 未支付订单超时处理分析

未支付订单超时处理分析如购买后未支付订单,需要在十分钟后回滚状态等这类问题。有什么方法解决定时任务实现思路比较简单。启动一个计划任务,每隔一定时间处理一次,不过这种处理方式只是适用比较小而简单的项目。好处是实现简单、也好做分布式集群。但是坏处也很明显:时效性差,会有一定的延迟,这个延迟时间最大就是每隔一定时间的大小,如果你设置每分钟定时轮询一次,那么理论上订单取消时间的最大误差就有一分钟。效率低。对数据库的压力比较大。懒加载也就是不做处理,只有在用户重新点开的时候在判断。这种方法简单

2021-04-12 13:48:41 1715

原创 SpringBoot常用注解(1)

SpringBoot常用注解@ComponentScan扫描路径并装配从定义的扫描路径中找出标识了需要装配的类自动装配到spring的bean容器中我们可以通过basePackages等属性来细粒度的定制@ComponentScan自动扫描的范围,如果不指定,则默认Spring框架实现会从声明@ComponentScan所在类的package进行扫描。注:所以SpringBoot的启动类最好是放在root package下,因为默认不指定basePackages。@Retention(Reten

2021-03-15 17:41:00 151

原创 SpringBoot中请求映射的原理

SpringBoot中请求映射的原理学习资源https://www.yuque.com/atguigu/springboot/vgzmghhttps://www.bilibili.com/video/BV19K4y1L7MT?p=28本图是很久以前学习SpringMVC时的,本次学习拿出来对照收获颇多。带着问题学习:我们写的接口,是如何被处理的。在SpringBoot中,所有的请求都是会来到DispatcherServlet中,而这也就是SpringMVC中的东西。从此图可以看出继承树,最

2021-01-07 15:28:56 832 1

原创 计算周围经纬度并转换成高德

计算周围经纬度并转换成高德使用微信的定位获取当前经纬度后:public ResultMap getUserAroundDeviceFileByLAL(Map hmap) { try { Map map = getPosition(hmap); Double longitude = Double.parseDouble(map.get("longitude").toString()); Double latitude = Double.parseDo

2021-01-05 15:59:41 273

原创 Spring Security 简记

仅供自己所需,绝大多数参考https://blog.csdn.net/larger5/article/details/81063438部分参考https://blog.csdn.net/ech13an/article/details/80779973我这个是没用自带的登录方法,因此登录成功的操作是在我自己写的接口里的,如果使用了框架带的,就是在注释为:登录成功的地方设置操作package com.example.entry.security.config;import org.s...

2020-11-26 22:34:30 135

原创 设计原则-七大设计原则

单一职责原则介绍:​ 对类来说的,即一个类应该只负责一项职责。如类 A 负责两个不同职责:职责 1,职责 2。当职责 1 需求变更而改变 A 时,可能造成职责 2 执行错误,所以需要将类 A 的粒度分解为 A1,A2实例:​Vehicle vehicle = new Vehicle();vehicle.run("摩托车");vehicle.run("汽车");vehicle.run("飞机");}}// 交通工具类// 方 式 1// 1. 在方式 1 的 run 方法中,违

2020-11-15 22:17:53 344

原创 记录easyExcel使用案例

@Override public ResultMap importTopic(MultipartFile file) throws Exception { EasyExcel.read(file.getInputStream(), TbExamTopic.class, new TopicListener(tbExamTopicMapper)).sheet().doRead(); return ResultMap.init(Const.EXPORT_SHEET0, C.

2020-11-12 09:57:14 523 2

原创 记录上传、保存、读取文件以及nginx映射

上传(此时就应该保存文件到本地了) @Override public ResultMap upload(MultipartFile file) throws IOException { //若上传附件大小大于10M=10485760=10*1024*1024k// if (multipartFile.getSize() > 10485760) {// return ResultMap.error("上传图片不能大于10M");/.

2020-11-05 11:04:38 687

原创 重学设计模式2

页首声明:此篇来源 作者:小傅哥 博客:https://bugstack.cn 公众号:bugstack虫洞栈建造者模式建造者模式所完成的内容就是通过将多个简单对象通过一步步的组装构建出一个复杂对象的过程。那么,哪里有这样的场景呢?例如你玩王者荣耀的时的初始化界面;有三条路、有树木、有野怪、有守卫塔等等,甚至依赖于你的网络情况会控制清晰度。而当你换一个场景进行其他不同模式的选择时,同样会建设道路、树木、野怪等等,但是他们的摆放和大小都有不同。这里就可以用到建造者模式来初始化游戏元素。而这样的根据

2020-10-21 11:47:39 234

原创 重学Java设计模式-学习笔记(1)

重学Java设计模式-学习笔记(http://book.bugstack.cn/#s/6AneBuNA)设计六大原则:单一职责:一个类和方法只做一件事里式替换:多态,子类可扩展父类依赖倒置:细节依赖抽象,下层依赖上层接口隔离:建立单一接口迪米特原则:最少知道,降低耦合开闭原则:抽象架构,扩展实现工厂模式工厂模式又称工厂方法模式,是一种创建型设计模式,其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。这种设计模式也是 Java 开发中最常见的一种模式,它的主要意图是定义一个

2020-10-15 15:27:37 635 3

原创 数组:为什么很多编程语言中数组都从0开始编号?

数组前文提要文字完完全全来源于极客时间的王争老师的课程“数据结构与算法之美”中。笔记更多是为自己所需记录,顺便加深印象。各位觉得好可以前去购买,真不贵可以说是最物超所值的一系列课。小小安利一波。在大部分编程语言中,数组都是从 0 开始编号的,但你是否下意识地想过,为什么数组要从 0 开始编号,而不是从 1 开始呢? 从 1 开始不是更符合人类的思维习惯吗?你可以带着这个问题来学习接下来的内容。如何实现随机访问?数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类

2020-08-31 15:14:32 350

原创 复杂度分析(大O表示法)

复杂度分析前文提要本文完完全全引用极客时间的文章《数据结构与算法之美》,作者王争。数据结构是作为程序猿绕不过的一道坎,所以萌生了学习的想法,试读了几篇文章后发现讲的很好,也有很多人订阅,于是不回头的走。只希望能不忘初心,不让犯懒击败自己。正文为什么需要复杂度分析你可能会有些疑惑,我把代码跑一遍,通过统计、监控,就能得到算法执行的时间和占用的内存大小。为什么还要做时间、空间复杂度分析呢?这种分析方法能比我实实在在跑一遍得到的数据更准确吗?首先,我可以肯定地说,你这种评估算法执行效率的方法是正确的。

2020-08-31 09:36:25 8411 5

原创 GitBlit使用Tortoise(乌龟)pull项目和idea使用git开发

GitBlit点击项目进到概况他下面是有点击克隆打开然后选定放的文件夹就ok了idea开发的话,就直接打开这个项目一般都自己建一个分支来进行开发,完成后再合并这个是在右下角的。自己写个名字创建并切换到这个分支拉取最新的代码(Pull)如果开发完了就切回到主分支再点击一下这个选项,将所做的开发合并到主分支里面最后commit以及pull就好了可以看看这个博客:https://blog.csd...

2020-08-19 14:17:54 672

原创 SpringCloud学习笔记-Eureka

注册中心-EurekaSpring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现。Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用 Eureka 的客户端连接到 Eureka Server,并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。Spring Cloud 的一些其他模块(比如Zuul)就可以通过 Eur

2020-06-18 14:40:43 128

原创 Springboot整合RabbitMQ的坑

出现reply-code=530, reply-text=NOT_ALLOWED - vhost JCcccHost not found, class-id=10, method-id=40这些错误查看配置文件中这里是否有错没有错查看账户是否有/的权限,没有就去管理系统改。基本上就是这两个错误...

2020-06-09 11:55:19 319

原创 Jvm-类加载过程

学习地址:https://mp.weixin.qq.com/s/eHqFONXXNc-LD4ugaKM6UAhttps://www.jianshu.com/p/cc66138d72b1系统加载 Class 类型的文件主要三步:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。加载阶段类加载过程的第一步,主要完成下面3件事情:通过一个类的全限定名来获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法区的运..

2020-06-07 18:55:31 114

原创 Redis(删除策略、逐出算法、高级数据结构)

Redis的删除策略(对于过期的数据)数据删除策略的目标:在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或 内存泄露数据删除策略:1. 定时删除2. 惰性删除3. 定期删除如果设定了一个数据的存活时间,则会有数据(如expires)专门记录 存储数据地址(0x0110)和存活时间(135954124)定时删除:创建一个定时器,当key设置有过期时间,且过期时间到达时,由定时器任务立即执行对键的删除...

2020-06-07 13:16:52 559

原创 Redis复习(持久化)

学习来源:https://www.bilibili.com/video/BV1CJ411m7Gc?p=66持久化什么是持久化?利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。为什么要进行持久化防止数据的意外丢失,确保数据安全性redis的持久化方式:redisDataBase-RDB appendOnlyFile-AOFRDB启动方式:save:手动执行一次保存方式RDB启动...

2020-06-06 20:40:59 132

原创 数据库--索引

1. 索引(1)什么是索引?一个索引是存储的表中一个特定列的值数据结构(最常见的是B-Tree)。索引是在表的列上创建。所以,要记住的关键点是索引包含一个表中列的值,并且这些值存储在一个数据结构中。请记住这一点:索引是一种数据结构 。 他的作用类似于目录,是通过缩小一张表中需要查询的记录/行的数目来加快搜索的速度。 因为索引基本上是用来存储列值的数据结构,这使查找这些列值更加快速。如果索引使用最常用的数据结构-B-Tree-那么其中的数据是有序的。有序的列值可以极大的提升性能。下面解释原因。

2020-05-26 20:59:03 166

原创 基于Windows下的Nginx学习

Nginx(engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(I..

2020-05-24 21:38:50 484

原创 Redis复习(入门)

关于spring-redis1. 连接池自动管理,提供了一个高度封装的“RedisTemplate”类2. 针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口 ValueOperations:简单K-V操作 SetOperations:set类型数据操作 ZSetOperations:zset类型数据操作 HashOperations:针对map类型的数据操作 ListOperations:针对list类型的数据操作3. 提供了对key的“bound”(

2020-05-22 22:24:04 137

原创 类加载面试题及解析

先放上一道题作为例子,大家可以先试着做做再看答案public class Demo{ public static void main(String[] args) { new Sub(); //输出结果是什么? }}class Super { int a = 5; public Super() { test(); } public void test() { System.out.println(a); }}class Sub ex

2020-05-10 22:07:07 545

原创 git资料保存

git基本操作git多人协作时的操作

2020-05-10 11:06:27 116

原创 Servlet问题整理

Servlet生命周期1.从第一次调用到服务器关闭 2.web.xml中配置load-on-startup,则从服务器启动到服务器关闭Servlet生命周期方法Servlet 通过调用init ()方法进行初始化。 Servlet 调用service()方法来处理客户端的请求。 Servlet 通过调用destroy()方法终止(结束)。 最后,Servlet...

2020-05-06 22:11:16 134

转载 Linux简介及最常用命令(转)

一、linux的目录结构bin(binaries)存放二进制可执行文件 sbin(super user binaries)存放二进制可执行文件,只有root才能访问 etc (etcetera)存放系统配置文件 usr(unix shared resources)用于存放共享的系统资源 home 存放用户文件的根目录 root超级用户目录 dev (devic...

2020-04-04 14:18:11 1268 1

原创 Thymeleaf(5)一个实现页面crud的小项目(删除数据)

这条容易到有点不想写,还是有始有终把。点击了list页面的删除后创建public class DelServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, ...

2020-03-30 23:03:16 234

原创 Thymeleaf(4)一个实现页面crud的小项目(更改数据)

我们在list页面已经写好了a按钮,点击就会飞到ShowServlet,所以买它,哦不,创建他这里的思路主要是:把原本list的这条数据带上,然后转发到update页面想要带上这条数据,我们已经做好了伏笔,获取了id,我们只要再去数据库查就ok了public class ShowServlet extends HttpServlet { private static f...

2020-03-30 23:00:45 188

原创 Thymeleaf(3)一个实现页面crud的小项目(插入数据)

完成了展示,就来实现一个增加的功能。那就先创建一个add.html<!DOCTYPE html><html><head><meta charset="UTF-8"><title>添加课程</title></head><body> <form action="AddS...

2020-03-30 22:27:25 332

原创 Thymeleaf(2)一个实现页面crud的小项目(展示数据)

一步一步做下去。实体类,是根据数据库的一张表的数据创建的,后面getset就不放了。封装类package cn.tedu.utils;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverMana...

2020-03-30 22:08:27 240

空空如也

空空如也

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

TA关注的人

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