自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot+vue开发跨域问题

背景由于前后端分离开发,各自配置了不同的端口运行,属于跨域情况,会出现如下情况:Access to XMLHttpRequest Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.通过搜索,确定用Nginx代理去解决这个问题。一、下载Nginx解压就能用。二、修改配置我是win,打开该配置文件并修

2021-10-26 18:24:14 1533

原创 KAFKA消费者源码解析

KafkaConsumer这个类有多种构造函数,分别传入参数Properties、ConsumerConfig等。订阅函数subscribe(Collection topics, ConsumerRebalanceListener listener)acquireAndEnsureOpen(); try { if (topics == null) { throw new IllegalArgumentException("Top

2021-10-18 16:39:26 347

原创 java的自定义注解

注解是一种元数据,是对代码的说明,需要配合工具(解析它的代码)使用,参与代码的编译,给应用程序看的;形式我们在学习框架的过程中都遇到过@Autowired,@Service,@Controller这样的注解,也都能查到是怎么回事。但是我今天遇到这样的写法对其中的@interface也不太懂,于是百度了一波,发现这其实是在自定义注解。相关知识自定义注解回用到的相关知识就是几个元注解,相当于是注解的注解。@Target (注解的作用目标)@Retention (注解的生命周期)@Docume

2021-07-29 16:22:39 162

原创 ByteBuffer的学习笔记

ByteBuffer查看它的类信息,大概是如下其中个人理解就是一个字节信息的容器。实例化后的模样这里的pos、lim和cap就是下图中的put尝试put进去一个字节数组和一个int整数结果变成了这样,那大概可以理解出来put就是往里边写数据,然后每次写进去一个字节,pos就会增加1,这里在放入一个int之后,我还在想为啥直接到第八个了,后来突然想到int型数据就是4字节,那么4+4自然就是8了。接下来是一个flip操作看它的函数是这样的 :简简单单,就是一个复位重置操作。g

2021-07-29 14:33:58 198

原创 RocketMQ版 (入门知识二)

消息队列RocketMQ版的适用场景例如,针对一家互联网电商企业,其业务涉及广泛,如注册、订单、库存、物流等;同时,也会涉及许多业务峰值时刻,如秒杀活动、周年庆、定期特惠等。这些活动都对分布性系统中的各项微服务应用的处理性能带来很大的挑战。消息队列RocketMQ版作为分布式系统中的重要组件,可用于应对这些挑战,例如解决应用的异步解耦。下文先以用户注册为场景说明消息队列RocketMQ版如何实现以下功能:1异步解耦2分布式事务的数据一致性3消息的顺序收发最后,再以电商的秒杀场景和价格同步场景分

2021-05-20 15:21:10 299 1

原创 SpringBoot学习(七)简单注解学习

@GetMapping常用的是@RequestMapping,这时默认的是get和post都支持,但也可以根据需求指定那么当参数指定为GET时,相当于@GetMapping@GetMapping("/hello") public String hello(@RequestParam(value = "name", defaultValue = "man") String name) { return String.format("Hello %s!", name);

2021-05-18 16:36:44 156

原创 SpringBoot学习(六)连接Redis收发消息

我们会做什么?第一步:安装个Redis这一步也不难,直接搜索Redis,然后从官网进入github连接,下载系统对应的版本,在这里要注意官网上只有Linux版本的,分辨方法:.tar.gz基本上是linux,而zip是win的。我的是win,但是今年开始国内进不去github了,很蛋疼,幸好百度找了个网盘,下载了一个版本直接解压,也不用安装双击server.exe就看到下边这个黑框,证明启动成功,接下来就不管它了,弄spring。第二步:创建工程这一步和之前相同,但是多了一个依赖&l

2021-05-14 18:32:53 646 6

原创 SpringBoot学习(五)JPA处理数据

这一节完成第三个练习:也就是第一步:建立新项目但是这个项目有点不同,那就是需要新的依赖,分别是<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>2.4.5</v

2021-05-12 17:28:16 182 1

原创 SpringBoot学习(四)使用RESTful Web服务

学完第二节中的创建一个RESTful Web服务之后,我们发现下边还有两个推荐,其中一个就是使用RESTful Web服务:在这里我一直没理解RESTful Web服务到底是个什么!之前已经上网查过好几次了,但大多都说只是一种理念,讲的也不清楚,这就很难顶,索性还是先照猫画虎,操作一番吧第一步:新建一个工程这个简单第二步:搞清楚要做什么?首先,给我们提供了一个网站【https://quoters.apps.pcfone.io/api/random】,进去之后是这样的大概能知道,就是一个接口网

2021-05-11 17:31:30 348 1

原创 springboot学习(三)配置文件

配置文件尝试着配置两项看看结果多环境下的配置文件在核心配置文件的统计目录下新建对应的配置文件每个里边都是不同的配置信息,比如我们在核心文件中执行配置文件名就行了这时候我们再访问8081,发现不行了,为什么呢?因为我们制定的新配置文件里,端口映射是8083,果然修改之后,不就成了吗自定义配置然后去其他地方以这样的形式调用访问成果后,看控制台将自定义配置转为对象第一步:多定义几个变量第二步:创建包和类(这里可以不创建包,主要是怕乱了找不到)用到了两大注

2021-05-10 18:30:19 107

原创 springboot学习(二)RESTful Web

进行完入门之后,本章再学习这个RESTful Web第一步直接在上一届新建的spring web工程里,开始操作。新建一个类文件,定义两个变量id和content,并生成get方法。public class Greeting { private final long id; private final String content; public Greeting(long id, String content) { this.id = id; this.content = co

2021-05-10 15:59:53 127

原创 springboot学习(一)入门

官网https://spring.io/projects/spring-boot/#overview大概看一看介绍后,很多人已经跃跃欲试了,往下翻一翻,发现点进去,创建一个新手简单工程吧首先这是你需要的环境!其次我用IDEA的时候,发现自己没有spring初始化工具,原因是社区版的没有,自己整个专业版的破解就好了,别在社区版本死犟了,浪费时间!!!这里把jdk版本选对了,8还是11自己应该知道吧这里选择web,springweb然后创建完成如下:找到这个java文件,放进去官方

2021-05-07 16:32:21 133 1

原创 RocketMQ版 (入门知识了解)

消息队列RocketMQ版是阿里云基于Apache RocketMQ构建的低延迟、高并发、高可用、高可靠的分布式消息中间件。严格保证先进先出的生产消费。主要用于为了保证消息一定会被消费,或者网络环境不稳定、或者用户应用重启发布的情况下,还设置有重复尝试机制,按照消费幂等去保证一致性,因为不同的Message ID对应的消息内容可能相同,有可能出现冲突(重复)的情况,所以真正安全的幂等处理,不建议以Message ID作为处理依据。最好的方式是以业务唯一标识作为幂等处理的关键依据,而业务的唯一标

2021-04-08 19:00:43 377

原创 解决Anaconda环境下报错“CondaHTTPError: HTTP 000 CONNECTION FAILED for url…“ & “Non-zero exit code”

Pycharm的解释器更换成Anaconda环境时,出现以下两个报错,网上找到的方法很管用,记录下。第一次报错:CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.co参考网上方法:1、win+R 输入%HOMEPATH% ,找到.condarc文件2、将内容替换成如下,有 “- default” 需要删除它channels:http://mirrors.tuna.tsinghua.edu.c

2021-03-22 10:04:46 609

原创 网络安全之反射放大型DDOS

反射放大型DDOS即利用反射手段将分布式拒绝服务攻击进一步放大,同时隐藏掉自己的身份。为了防止这种网络攻击,我们需要弄清其原理,从而更好的保障信息财产安全。接下来从三步走的方式弄懂反射放大型DDOS的原理、模拟和防止。第一步: 原理这种攻击的原理有两个,第一点是ddos是如何形成的?当然是利用某些协议的漏洞,对使用这种使用这些协议的设备进行控制,利用流量对目标进行高带宽的打击,迫使其服务终端,系统瘫痪。第二点是反射,反射是指攻击者并不直接攻击目标服务IP,而是利用互联网的某些特殊服务开放的服务器,

2021-03-02 09:51:46 2263 12

原创 如何使用docker镜像安装一个mysql

近期电脑新装了系统,然后那边直接甩给我一份.sql文件,然后让我去查询,去做一批数据,巴拉巴拉。。。。这时候需要安装mysql或navicat进而把sql文件导入才能使用,但是我不想安装他们,恰好近期在用docker,于是考虑直接拉取镜像,打包一个mysql容器,暴露端口,这样本机就可以随便访问了!docker安装mysql所需其实docker hub直接有mysql镜像,拉下来运行就可以,但是呢,这样就需要配置很多东西,如果是写Dockerfile那么会好很多,不过中间遇到一些问题,顺便记录下来

2020-11-03 20:56:02 420

原创 Docker笔记

之前用了好久,但是没写笔记,最近再用的时候就都忘了。。个人觉得就三大块吧,写dockerfile,docker build 和 docker rundocker ps

2020-10-12 20:13:22 97

原创 Redis学习笔记

学习之前多看官方文档安装教程同样参考官网,我用的ubuntu数据类型在这里的第一个key相当于是redis的键值这样的存储方式,第二组是key value相当于是哈希表的entry同时只有利用整个哈希表对应的key,就可以存很多entry进去。list操作可以左插(lpush)和右插(rpush),因为为链表,代表着的是头插法和尾插法SET是基于哈希实现的,我发现很多集合都是基于键值的数据结构实现的,比如java集合框架中的set全是基于map实现的。这里要注意的是set元素无重复,

2020-09-26 21:46:08 95

原创 java再学习

static关键字可以修饰什么?变量,类,方法,代码块静态的作用到底是什么?一般就表示该部分共享,在类加载或其他初始化的时候就被创建,因而后边有人new这个类的时候并不会再去创建,也就是说static修饰的内容是隶属于类,而不是直接隶属于对象,这样也就导致静态方法内部是不能访问非静态方法的,因为静态资源是在类加载的时候就建立好的,反之是可行的。一般static修饰的类为工具类四个关键字default一定弄清楚接口相关接口里的变量都隐式声明为 public static final,而接口

2020-09-01 15:26:32 136

原创 并查集学习

Union-Find 算法Union-Find 算法,也就是常说的并查集算法,主要是解决图论中「动态连通性」问题的。要实现的地方1、连接2、判断两点是否连通3、计算有多少连通分量其他函数

2020-08-31 18:50:02 74

原创 面试小知识-JVM

JVMJava Virtual Machine的缩写,通过在实际的计算机上仿真模拟各种计算机功能实现的虚拟计算机,是为了屏蔽平台相关信息,在编译时产生字节码文件,从而在多种平台可以直接运行。Java虚拟机本质上就是一个程序。JVM五大模块:类装载器子系统、运行时数据区、执行引擎、本地方法接口和垃圾收集模块。JVM核心一般分为五块:类加载,java内存区域,内存溢出,性能优化和垃圾回收五块。java内存区域这一块主要分为线程共有和线程私有的部分,共有的是方法区:存放类信息,常量和静态变量等堆:青

2020-08-21 22:02:12 103

原创 多重背包算法的java实现(两种思路)

一、把物品拆开成为多个单物品,比如三个a拆成aaapublic static int pack(int[] weight, int[] value, int up) { int size = weight.length; int[] dp = new int[up+1]; for (int i = 0; i <= up; i++) { dp[i] = 0; } for (int i = 0; i <size; i++) { for (int j = up; j

2020-08-10 15:58:33 492

原创 py的正则总是记不住,理不清楚

记录两个网站,现在没时间吗,以后学习了再写笔记https://www.runoob.com/regexp/regexp-intro.htmlhttps://www.runoob.com/python/python-reg-expressions.html

2020-08-09 00:23:36 113

原创 有限状态自动机

有限状态自动机是什么?其实我之前做算法题看题解的时候经常看到有状态转移的方法(动态规划的那种转移除外)今天碰到一个字符串中匹配数字的,其中之一有小数或科学计算法的数或正数负数就是TRUE,否则为false。在计算理论中,确定有限状态自动机或确定有限自动机(英语:deterministic finite automaton, DFA)是一个能实现状态转移的自动机。对于一个给定的属于该自动机的状态和一个属于该自动机字母表Σ的字符,它都能根据事先给定的转移函数转移到下一个状态(这个状态可以是先前那个状态)。

2020-08-04 23:12:07 3398

原创 java你会点什么?

其实就是个笔记。。。记录一下不会的,有错误欢迎指出。64位和32位的区别?运行能力不同。64位是8字节处理,32位是4字节。内存寻址不同。64位最大寻址空间为2的64次方,理论值直接达到了16TB,而32位的最大寻址空间为2的32次方,为4GB。64位的操作系统可以兼容运行32位,反之不行。内存碎片经常听说,但是不是很明确,之前看java的gc时,标记清除算法会容易产生不连续的内存,也就是碎片化了。内存碎片分为:内部碎片和外部碎片。外部碎片是出于任何已分配区域或页面外部的空闲存储块。这些存储

2020-08-03 23:26:43 201

原创 为什么我的快速排序和别人的不一样?

首先对于快排,基准数据使用第一个,中间,最后一个,或者随机一个,那么对排序过程有没有影响?开始之前,我想说今天参加科了大讯飞笔试,碰到一个题,是这样的/**初始数据是25, 84, 21, 47, 15, 27, 68, 35, 20*经过排序,每趟输出结果如下,让你用这种排序方法去提交*/15 20 21 25 47 27 68 35 84 15 20 21 25 47 27 68 35 84 15 20 21 25 47 27 68 35 84 15 20 21 25 35 27 47

2020-07-31 20:29:36 1446 5

原创 算法学习笔记

int xor = x^y;经过xor操作之后,相同位都变成了0

2020-07-30 23:38:13 168

原创 大数据学习笔记

No-SQL出现的原因?PB级以上的数据,新型数据结构,json,图数据等那No-SQL和SQL哪个好?关系型有其生命力,已经存在了40多年,还在被广泛的使用 – 优美的数学模型支持– SQL与ACID等都在实践中被证明了是非常有用的 – 但是关系型系统的实现确实没有考虑到上述超大规模、多种数据类型。No-SQL也站露出不足,所以不能说孰优孰劣。Dynamo支持亚马逊公司电子商务平台上运行的大量服务核心技术是一致哈希对于这样的结构,每次key哈希到哪个区间就存到对应的节点上,出现节点崩溃.

2020-07-26 14:17:06 167

原创 笔记

状态码301和302301是永久失效302是暂时失效,url还可以继续用二叉树遍历非递归死锁的条件排序算法的稳定性指的是什么?这里主要指数据中相同的元素,他们位置会不会改变,如果改变了就不稳定。冒泡稳定直接插入排序稳定归并是分治思想,最后为1个或两个元素,也稳定基数排序是稳定的堆排序的思想小顶堆就是根节点的值都小于等于叶子节点大顶堆就是根节点的值都大于等于叶子节点构建过程七层模型后三层了解的太少了...

2020-07-18 16:09:08 116

原创 SSM框架学习

ssh框架了解吗我才刚自学ssm没多久,听到这个一脸懵逼 ,结果查了一下,发现其实就可以说是ssm的前生,具体就是struts+spring+hibernate,集成SSH框架的系统从职责上分为四层:表示层,业务逻辑层,持久层和域模块层。Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。hibernate原始的不用框架的时候就JDBC连接一个事务过程:

2020-07-15 10:32:25 316

原创 字节的java面经

多态时会出现类型擦除,什么是类型擦除?多态是同一种方法的不同表现形式,具体的实现方式有继承,接口和泛型类型擦除是对于泛型来说的,java泛型是在编辑器层次实现的,在生成字节码的时候不带有类型信息,使用泛型时加上类型参数,编译时又去掉,这个过程叫做类型擦除。Java内存模型是什么Java内存模型(Java Memory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。所有的变量都存储在主内

2020-07-14 17:42:13 640

原创 网络传输笔记(TCP)

以下内容来自个人理解,资料来源是中科院计算所老师讲课UDPTCP(打破脑袋记不住怎么办!!!)建立连接过程连接方端口任意被连接方端口固定握手三步走:SYNACKSYN+ACK连接任何一方都可以主动关闭连接发送FIN数据包表示己方不再发送数据另一端可以继续发送数据对方仍需要对接收数据进行确认TCP是一个全双工传输协议丢包与重传未收到ACK表示丢包了,但是这个未收到ACK有一个时间阈值,较大或较小时的影响如下:较大值:恢复丢包效率低较小值:导致误重传 (Spuri

2020-07-14 13:13:45 182

原创 分布式系统学习笔记

分布式数据库系统和分布式系统一、分布式系统何为网络?首先是由网线连接设备形成各个局域网,然后通过ISP,也就是网络服务提供商或者骨干网(光纤)连接起来形成互联网。分布式系统有三种类型:客户端/服务器根据功能将服务器分成多个,比如数据服务器,应用服务器,日志服务器,web服务器等。P2P,也就是点对点完全的分布式系统,没有中心节点,每个节点功能相似master和worker有一个或一组节点为中心节点,负责任务的调度,其他节点均为worker,负责完成具体工作。分布式系统的CAP性质

2020-07-13 23:47:57 226

原创 数据库学习

插入数据查询最新记录查询平均时间、根据最新时间排序插入一条创建带有主键的表创建双主键,带有外键的表选择,投影和连接选择投影根据专业分组统计人数使用havingorder排个序MongoDB数据库collectiondocument就这三个概念第一步获取Collection第二步输入filter此处还可以用一些函数,比如collection.find().skip(pageindex * 10).limit(10);skip是跳过多.

2020-07-12 15:05:33 347

原创 java的多线程学习笔记

小看一下python多线程threading.Thread(target=receive, args=(destination,)).start()threading.Thread(target=senddata, args=(packet_data,)).start()我对多线程真没什么研究,这是之前做项目时候需要收发双线程工作,然后简单的用了一下python的多线程,当然也是最基础的,就import threadingthreading.Thread(target=函数名, args=(参数

2020-07-12 12:33:13 168 1

原创 网络流中最大流和最小割算法

学习顺序按照下图的改进历程问题转化:寻找初始解,提升,达到条件停止求解优化,加回溯边,画残差图,在残差图中寻找一条s可到t的路径看最大流最小割问题,证明 除 ST外每个点的出度和入度相等,S和T两点出入度差为最大流f根据图列线性规划从对偶问题中理解FF算法对偶问题转化:转化后变成对偶后还没有结束,还可以简化(第一步中四者因为是最小割,图被切为两部分,S和T必然在两边,则二者之一不起作用,假设ys=0)此时还有不等式,我们看345三个约束,先科普一下,若A的任意子方阵

2020-07-09 22:30:44 1530

原创 JAVA高级数据结构学习笔记

枚举EnumbitsetBitSet中数组大小会随需要增加。vectorVector 主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。

2020-07-01 00:14:18 1918

原创 两两配对差值最小

解法一:贪心package com.hs.java;import java.util.Scanner;public class MinDiff { public int[] findMax(int[] a) { int[] rt_a = new int[2]; int tag = -99; int tagid = -99; for (int i = 0; i < a.length; i++) { if (a[i]>=0 && a[i]>ta

2020-06-19 18:06:14 556

原创 java学习笔记

形式参数可被视为local variablejvm中垃圾回收分为scanvenge gc和full GC,其中full GC触发的条件可能有哪些1,新生代:(1)所有对象创建在新生代的Eden区,当Eden区满后触发新生代的Minor GC,将Eden区和非空闲Survivor区存活的对象复制到另外一个空闲的Survivor区中。(2)保证一个Survivor区是空的,新生代Minor GC就是在两个Survivor区之间相互复制存活对象,直到Survivor区满为止。2,老年代:当Su...

2020-06-17 19:06:16 143

原创 【笔记】npm安装东西出错以及安装其他插件

npm使用的一些注意点本人使用npm install安装一些东西的时候,卡住不动取消之后出现报错,经过搜索确定是源速度问题,所以换淘宝源就行了。具体方法:在这里插入代码片npm install -g cnpm --registry=https://registry.npm.taobao.org安装 后使用cnpm -v测试安装是否成功成功后安装其他1.安装ajaxcnpm inst...

2020-06-16 18:36:13 181

空空如也

空空如也

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

TA关注的人

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