自定义博客皮肤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)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 使用GithubAction自动构建部署项目

目录1.1 项目准备2.1 GithubAction设置3.1 运行测试4.1 小结GitHub Actions 是一种持续集成和持续交付(CI/CD) 平台,可用于自动执行生成、测试和部署管道。 您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。 GitHub Actions 不仅仅是DevOps,还允许您在存储库中发生其他事件时运行工作流程。1.1 ...

2023-03-29 17:26:00 1037 1

原创 Netty网络通信中的粘包和半包问题

文章目录1.1 问题2.1 解决方案问题引入,在Netty网络通信中常常遇见在接收端接受消息的时候会出现三中类型的输出:读到一个完整的客户端输入的ByteBuf读到多个客户端发过来的ByteBuf读到一个客户端不完整的ByteBuf1.1 问题出现以上三个问题的原因是我们没有在应用层对传输层的TCP包进行包的拆分与分发。让我们回顾一下Netty中一个网络通信的完整过程:客户端的处于应用层的数据首先要发送到他自己的内核缓冲区中。但是到了操作系统的内核缓冲区之后,底层会按照协议对数据

2021-12-02 19:33:08 1004

原创 Netty中的粘包与半包问题

目录1.1 问题2.1 解决方案问题引入,在Netty网络通信中常常遇见在接收端接受消息的时候会出现三中类型的输出:读到一个完整的客户端输入的ByteBuf读到多个客户端发过来的ByteBuf读到一个客户端不完整的ByteBuf1.1 问题出现以上三个问题的原因是我们没有在应用层对传输层的TCP包进行包的拆分与分发。让我们回顾一下Netty中一个网络通信的完整过程:客户端...

2021-12-02 19:31:00 238

原创 多线程Reactor模式

文章目录1.1 主服务器2.1 IO请求handler+线程池3.1 客户端多线程Reactor模式旨在分配多个reactor每一个reactor独立拥有一个selector,在网络通信中大体设计为负责连接的主Reactor,其中在主Reactor的run函数中若selector检测到了连接事件的发生则dispatch该事件。让负责管理连接的Handler处理连接,其中在这个负责连接的Handler处理器中创建子Handler用以处理IO请求。这样一来连接请求与IO请求分开执行提高通道的并发量。同时多

2021-12-02 17:04:12 1390

原创 将博客搬至CSDN

将博客搬至CSDN

2021-11-21 16:17:20 221

原创 Docker开发环境预览

目录1.1 开发环境预览1.1.1 启动单个容器开发1.1.2 从特定的分支或标签创建一个开发环境2.1 分享你的开发环境3.1 优缺点docker在我们印象中完成的是开发完阶段的部署与协作共享功能,最近Docker推出了适合开发阶段的Docker环境容器开发。1.1 开发环境预览开发环境允许您与团队成员共享正在进行的代码,从而使您能够轻松协作。使用 Dev Environments 时...

2021-11-09 09:35:00 2449

原创 Spring技术内幕笔记2--我懒不写了哈哈哈哈。

目录1.1 关于IOC容器设计的线路区别1.1.1 BeanFactory1.1.2 ApplicationContext2.1 FileSystemXmlApplicationContext再次阅读这本书有些不一样的感悟,记录一些零星点点。1.1 关于IOC容器设计的线路区别我们都知道在Spring里主要有两种设计IOC容器的思路,一种是围绕BeanFactory,另外一种是围绕App...

2021-10-03 15:55:00 188

原创 转载一篇好文-设计模式

设计模式之间的关系: 设计模式总概况:一、设计原则1、单一职责原则 一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。例如:要实现逻辑和界面的...

2021-10-03 15:51:00 100

原创 Docker开启安全的TLS远程连接

目录1.1 不安全的远程访问方式1.1.1 编辑docker.service文件:1.1.2 重新加载Docker配置生效1.1.3 警告!2.1 建立基于TLS数字签名的安全连接1.1 不安全的远程访问方式1.1.1 编辑docker.service文件:vi /usr/lib/systemd/system/docker.service找到 [Service] 节点,修改 ExecSta...

2021-06-18 10:56:00 608 1

原创 消息队列之如何保证消息的幂等性

目录1.1 前言2.1 解决方案1.1 前言不管是RQ还是Kafka等消息队列,在被消费者消费的时候需要防止的一个问题就是:如何防止消息被重复消费,也是就消息的幂等性。这问题通常不是 MQ 自己保证的,是由我们开发来保证的。挑一个 Kafka 来举个例子,说说怎么重复消费吧。Kafka 实际上有个 offset 的概念,就是每个消息写进去,都有一个 offset,代表消息的序号,然后 con...

2021-05-03 10:40:00 301

原创 消息队列之如何保证消息的可靠传输

目录1.1 RQ1.1.1 RQ消费者发生消息丢失1.1.2 RQ本身出问题宕机1.1.3 消费者丢失消息1.1.4 RQ总结2.1 Kafka2.1.1 Kafka生产者2.1.2 Kafka弄丢了消息2.1.3 消费端弄丢了数据1.1 RQ对于RQ来说在消息传输的过程中主要有三块地方可能发生消息丢失:生产者RQ消费者1.1.1 RQ消费者发生消息丢失此时可以选择用 Rabbi...

2021-05-03 10:32:00 268

原创 spring技术内幕学习笔记01

目录1.1 IOC容器的实现1.1.1 关于DI和IOC1.1.2 BeanFactory与ApplicationContext2.1 IOC容器的设计2.1.1 BeanFactory的应用场景2.1.2 BeanFactory的设计原理2.1.3 ApplicationContext的应用场景2.1.4 ApplicationContext的设计原理2.2 IOC容器的初始化过程该来的总会...

2021-04-17 18:36:00 256

原创 linux操作指南-04

目录1.1 vi/vim2.1 BASH1.1 vi/vim先贴一段发展史:Vi的诞生Vi源自QED编辑器,距今已有五十多年的历史。其发展历程如下:1966年:伯克利分时系统的QED(“Quick EDitor”)1969年7月:登月(仅供参考)1969年8月:QED -> AT&T的ed1976年2月:ed ->玛丽王后大学的em(“Editor for ...

2021-04-03 15:32:00 154

原创 深入理解AQS

目录简介1.1 实现原理2.1 一些同步器的实现简介AQS是Java并发包中很重要的一个抽象类,我们所使用的ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore等都是基于AQS来实现的。1.1 实现原理AQS中维护了一个state变量这个表示共享的资源,以及一个CHL队列(多线程争夺资源的时候被阻塞的线程将会被放进这个队...

2021-04-02 17:51:00 137

原创 布隆过滤器

目录1.1 什么是布隆过滤器?2.1 布隆过滤器的原理3.1 布隆过滤器的应用场景4.1 java实现布隆过滤器1.1 什么是布隆过滤器?首先,我们需要了解布隆过滤器的概念。布隆过滤器(Bloom Filter)是一个叫做 Bloom 的老哥于1970年提出的。我们可以把它看作由二进制向量(或者说位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的的 List、...

2021-03-28 18:43:00 177

原创 Redis之面试连环炮

目录1.简单介绍一下Redis2.分布式缓存常见的技术选型方案有哪些?3.Redis和Memcached的区别和共同点4. 缓存数据的处理流程是怎样的?5. 为什么要用 Redis/为什么要用缓存?6. Redis 常见数据结构以及使用场景分析6.1 string6.2 set6.3 hash6.4 set6.5 sorted set7. Redis 单线程模型详解8. Redis 没有使用多线...

2021-03-03 16:48:00 589

原创 JUC-ThreadLocalRandom

目录Radndom类的局限性ThreadLocalRandom这个类是在JDK7中新增的随机数生成器,它弥补了Random类在多线程下的缺陷。Radndom类的局限性在JDK7之前包括现在java.util.Random都是使用比较广泛的随机数生成工具。为什么说它在多线程中有缺陷,看下面一个例子:public class RandomTest { public static v...

2021-03-01 12:23:00 155

原创 JUC-ThreadLocal

目录ThreadLocalThreadLocal测试ThreadLocal类结构ThreadLocal不支持继承性InheritableThreadLocal前言多线程访问同一个共享变量的时候也别容易出现并发问题,特别是在多线程需要对一个共享变量进行写入的时候。为了保证线程的安全,一般使用者在访问共享变量的时候需要进行适当的同步。如下图所示同步的措施一般是加锁,但是加锁显然加重了使用者的负...

2021-03-01 11:20:00 272

原创 MYSQL索引优化法则

目录一首诗送给各位:全值匹配我最爱,最左前缀要遵守;带头大哥不能死,中间兄弟不能断;索引列上少计算,范围之后全失效;Like百分写最右,覆盖索引不写星;不等空值还有or,索引失效要少用;VAR引号不可丢,SQL高级也不难!举个栗子:假设index(a,b,c)where语句索引是否被用到原因where a=3使用到a全值匹配where a=3 ...

2021-02-28 15:19:00 359

原创 关于String对象到底占多少字节?

目录空字符串有长度的String首先我们得先了解java的对象结构可以看到分别由三个部分组成对象头,实例数据,以及填充位查看JDK1.8 String源码可以看到一个String对象由以下组成:@Stable private final byte[] value; /** Cache the hash code for the string */ private...

2021-02-27 13:16:00 854

原创 类加载的时机

目录类的生命周期类加载过程中“初始化”开始的时机被动引用演示 Demo接口的加载过程类的生命周期类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括以下 7 个阶段:加载验证准备解析初始化使用卸载验证、准备、解析 3 个阶段统称为连接。加载、验证、准备、初始化和卸载这 5 个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始(注意是“开始”,而不是...

2021-02-26 11:30:00 157

原创 HotSpot 虚拟机对象探秘

目录对象的内存布局对象的创建过程对象的访问方式对象的内存布局在 HotSpot 虚拟机中,对象的内存布局分为以下 3 块区域:对象头(Header)实例数据(Instance Data)对齐填充(Padding)对象头对象头记录了对象在运行过程中所需要使用的一些数据:哈希码GC 分代年龄锁状态标志线程持有的锁偏向线程 ID偏向时间戳对象头可能包含类型指针,通过...

2021-02-26 11:20:00 143

原创 JVM 内存结构

目录程序计数器(PC 寄存器)Java 虚拟机栈(Java 栈)本地方法栈(C 栈)堆方法区直接内存(堆外内存)Java 虚拟机的内存空间分为 5 个部分:程序计数器Java 虚拟机栈本地方法栈堆方法区JDK 1.8 同 JDK 1.7 比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数...

2021-02-26 11:05:00 164

原创 Tomcat10-记录踩坑

目录前因:今天一个朋友叫我帮忙看代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, respons...

2021-01-20 15:52:00 340

原创 JVM-04

目录1.1 类加载器1.1.1 类加载器1.1.2 加载器种类2.1 双亲委派模型1.1 类加载器1.1.1 类加载器判断类是否“相等”任意一个类,都由加载它的类加载器和这个类本身一同确立其在 Java 虚拟机中的唯一性,每一个类加载器,都有一个独立的类名称空间。因此,比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源于同一个 Class...

2021-01-14 17:51:00 143

原创 JVM-03

目录1.1 新生代垃圾收集器1.1.1 Serial 垃圾收集器(单线程)1.1.2 ParNew 垃圾收集器(多线程)1.1.3 Parallel Scavenge 垃圾收集器(多线程)2.1 老年代垃圾收集器2.1.1 Serial Old 垃圾收集器(单线程)2.1.2 Parallel Old 垃圾收集器(多线程)3.1 CMS 垃圾收集器4.1 G1 通用垃圾收集器HotSpot...

2021-01-14 17:46:00 58

原创 MybatisPlus-03

目录1.1 CRUD演示2.1 条件构造器1.1 CRUD演示2.1 条件构造器https://baomidou.com/guide/wrapper.html#gt

2020-12-19 17:03:00 97

原创 MybatisPlus-02

目录1.1 Mybatis核心功能1.1.1 代码生成器2.1 几个小点1.1 Mybatis核心功能1.1.1 代码生成器和其他框架一样比如:Mybatis,HibernateMybatisPlus也有逆向工程功能,根据你数据库中的表自动为你生成entity,controller,service等工程中需要的几层文件。特点是功能更加强大,简洁。MyBatis-Plus 从 3.0....

2020-12-19 16:23:00 122

原创 MybatisPlus_01

目录1.1 简介1.1.1 特性1.1.2 框架结构2.1 快速开始2.1.12.1.2 yaml文件配置2.1.3 编码2.1.4 测试3.1 思考1.1 简介MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。1.1.1 ...

2020-12-19 15:36:00 646

原创 Ribbon 和 Feign 的区别

目录1.1 Ribbon2.1 Feign3.1 代码区别3.1.1 Ribbon 的用法3.1.2 Feignspring cloud的 Netflix 中提供了两个组件实现软负载均衡调用:ribbon 和 feign 。1.1 Ribbon是一个基于 HTTP 和 TCP 客户端 的负载均衡的工具。它可以 在客户端 配置 RibbonServerList(服务端列表),使用 HttpC...

2020-11-24 13:50:00 210

原创 Eureka的自我保护机制

目录前言1.1 eureka的自我保护机制1.1.1 自我保护开关1.1.2 开发环境配置2.1 集群搭建前言首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行。默认情况下,如果Eureka Server在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,Eureka Server将会移除该实例...

2020-11-24 13:36:00 122

原创 Planar graph and map 3-colorability reduce to one another

目录1.1 证明2.1 Planar 3-colorability is NP-complete2.1.1 平面3着色特点2.1.2 构造方法Theorem. PLANAR-3-COLOR ≣ P PLANAR-MAP-3-COLOR.(一个平面三着色问题是可以跟一个平面图三着色问题相互规约的!)1.1 证明2.1 Planar 3-colorability is NP-complete...

2020-11-19 20:39:00 255

原创 3-colorability

目录1.1 3-colorability1.1.1 3元可满足规约到3着色1.1.2 证明充分和必要性1.1 3-colorability一个图的三着色问题:要使得边两头的结点颜色互不相同。1.1.1 3元可满足规约到3着色首先文法中的每一个变量和它自己的"非"连接。创建3个新结点分别为T,F,B并且将他们连接在一个三角形中。然后每一个文法都连接到B结点,对于每一个子句添加6个...

2020-11-19 20:12:00 651

原创 一少年独坐屋中突然顿悟!-回溯

目录朋友们很快啊!我pa一下就打开博客赶紧记下来了!接下来就是一个for,一个递归。这时候传统编程就点到为止了//对每一个元素进行回溯 for(int i=first;i<=length;i++){ list.add(i); backtrack(i+1,length,list,k); //进行...

2020-11-14 21:26:00 63

原创 Hamilton cycle

目录1.1 Hamilton cycle2.1 Directed Hamilton cycle reduces to Hamilton cycle2.1.1 证明3.1 3-satisfiability reduces to directed Hamilton cycle3.1.1 3-satisfiability reduces to directed Hamilton cycle3.1.2 ...

2020-11-14 15:38:00 624

原创 NP-complete

目录1.1 NP-complete1.1.1 The “first” NP-complete problem1.1.2 Establishing NP-completeness1.1.3 Implications of Karp1.1.4 Implications of Cook–Levin1.1.5 Implications of Karp + Cook–Levin1.1.6 Some NP-...

2020-11-14 14:52:00 1977 1

原创 P VS NP

目录1.1 P1.1.1 NP1.1.2 Certifiers and certificates: satisfiability2.1 Certifiers and certificates: Hamilton path2.1.1 Some problems in NP3.1 P, NP, and EXP3.1.1 The main question: P vs. NP1.1 PDef. Al...

2020-11-14 14:20:00 1344 1

原创 Satisfiability

目录1.1 SAT1.1.1 3-SAT1.1.2 3-satisfiability reduces to independent set1.1.3 必要性1.1.4 充分性1.1 SATSAT. Given a CNF formula Φ, does it have a satisfying truth assignment?可满足性要求的是结果为TRUE!1.1.1 3-SATSAT...

2020-11-14 13:59:00 334

原创 Vertex cover reduces to set cover

目录1.1 Vertex cover1.1.1 VERTEX-COVER ≤ P SET-COVER1.1.2 证明充分性1.1.3 证明必要性1.1 Vertex cover例子:U = { 1, 2, 3, 4, 5, 6, 7 }Sa = { 3, 7 } Sb = { 2, 4 }Sc = { 3, 4, 5, 6 } Sd = { 5 }Se = { 1 } Sf= { 1,...

2020-11-14 13:25:00 532 1

原创 独立集与顶点覆盖相互规约问题

目录1.1 Theorem. INDEPENDENT-SET ≡ P VERTEX-COVER.1.1.1 证明充分性1.1.2 证明必要性1.1 Theorem. INDEPENDENT-SET ≡ P VERTEX-COVER.Pf. We show S is an independent set of size k iff V − S is a vertex coverof size ...

2020-11-14 13:02:00 576

牛客2021绿皮书.pdf

牛客2021绿皮书.pdf

2021-07-26

JavaEE网上购书系统

采用标准J2EE,平台:mysql5,Tomcat9,eclipse.所需的包都在里面构建好,无需导包 数据库框架采用c3p0. 里面包含数据库文件。主要功能:1.用户注册登录,邮件激活(javaMail),购书,购物车,仿支付过程。 2.管理员,添加书籍,发货。

2018-12-24

android音乐播放器

android音乐播放器,涉及知识点:service,activity,异步消息处理,多线程处理等等,android8.0平台上通过测试。

2018-12-06

javaWeb 学生管理系统

javaWeb动态学生管理系统,简洁的UI界面,数据库采用mysql.服务器用的Tomcat9.0.

2018-08-19

ubuntu18.04/16.04网易云音乐可运行包

该软件包,我已经重新构建,解决对与18。04只能从终端启动,以及依赖包缺少,并无法安装问题(注:只需要用dpkg命令安装即可,然后会出错,再使用apt install -f ,修复依赖后,再安装成功!)ps:从官网下载的安装包,在16.04上可以安装,但是18.04有些依赖包已经不存在了,所以重新构建路径,这样你使用apt install -f命令就会找到,并成功安装缺少的依赖包了。

2018-07-16

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

TA关注的人

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