自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot+React+Mysql+Mybatis+Restful风格接口,前后端分离的健康管理系统详细剖析(二)

SpringBoot+React+Mysql+Mybatis+Restful风格接口,前后端分离的健康管理系统详细剖析(二)写在前面NginxNginx是什么正向代理和反向代理Nginx的作用React前后端分离Restful风格写在前面本篇文章主要是为了简单介绍一下项目开发和部署所用的技术,主要包括Nginx、React、前后端分离和Restful风格。NginxNginx是什么Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务(电子邮件),其特

2021-01-29 22:25:06 965 4

原创 如何在Linux服务器上部署一个前后端分离的项目

如何在Linux服务器上部署一个前后端分离的项目写在前面后端部署JDK、Tomcat、Mysql的安装后端代码打成jar包运行后端代码前端部署二级目录三级目录写在前面上篇文章刚把一个完整的前后端分离项目给拉到本地跑了起来,SpringBoot+React+Mysql+Mybatis+Restful风格接口,前后端分离的健康管理系统详细剖析(一),之前趁着优惠买了一个阿里云的服务器,总不能浪费,因此这篇文章主要讲述如何把一个前后端分离的项目部署到服务器上去!后端部署JDK、Tomcat、Mysql的安

2021-01-28 03:24:06 3948 1

原创 Springboot项目本地运行无问题而打成jar包出现问题Failed to auto-configure a DataSource

如题,完整报错如下:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2021-01-26 02:08:50.556 ERROR 4152 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : ***************************A

2021-01-26 02:44:18 765 2

原创 SpringBoot+React+Mysql+Mybatis+Restful风格接口,前后端分离的健康管理系统详细剖析(一)

SpringBoot+React+Mysql+Mybatis+Restful风格接口,前后端分离的健康管理系统详细剖析(一)写在前面项目介绍简单介绍准备工作项目结构项目运行前端代码的运行后端代码的运行运行效果写在前面不知不觉大学四年就要过去了,在放寒假之后我准备着手毕业设计软件的开发,由于对健康管理系统了解不多,在阅读了一些相关的文献期刊之后,我决定在github上面寻找类似的项目进行学习。在学习过程中,我也想把其中比较关键的技术点记录下来,如上,如果各位看官发现有啥问题的,还请不吝指出!项目介绍简

2021-01-23 18:58:36 954 1

原创 力扣CV工程师刚学的拓扑排序!包教包会!

力扣CV工程师刚学的拓扑排序!包教包会!何为拓扑排序?拓扑排序例题Leetcode 207 课程表Leetcode 1203 项目管理其他例子何为拓扑排序?所谓拓扑排序,是有向无环图才有的一种排序。对于一个给定的包含n个节点的有向图G,我们给出它的节点编号的一种排列,如果满足:对于图G中的任意一条有向边(u,v),u在排列中都出现在v的前面。那么就称该排列是图G的拓扑排序。第一次读拓扑排序的概念可能会感觉难以理解,从这个概念上出发,我们需要捋清楚的问题是为什么只有有向无环图才有拓扑排序?原因很简单

2021-01-12 22:47:27 191

原创 对guide-rpc-framework的学习(一)

对guide-rpc-framework的学习(一)综述Docker的安装zookeeper的安装跑不起来问题合集找不到主类rebuild找不到包启动成功综述本篇文章主要是记录我对Guide老哥的开源项目guide-rpc-framework的学习过程,记录如何先在自己的电脑上把这个项目跑起来。“guide-rpc-framework 是一款基于 Netty+Kyro+Zookeeper 实现的 RPC 框架。代码注释详细,结构清晰,并且集成了 Check Style 规范代码结构,非常适合阅读和学习。

2021-01-12 16:49:55 1221 2

原创 子集划分是个什么东西?背包问题->动态规划?

子集划分是个什么东西?背包问题->动态规划?子集划分问题抽取子集划分问题解决思路其他题目子集划分问题抽取以上题目来自力扣494.目标和,本篇文章的重点在于提取出其中的一种类型问题,称为子集划分问题。所谓子集划分问题,是一个典型的背包问题,而背包问题,使用的是动态规划来解决。此题可以使用回溯方法来做,但由于一些重复的计算,时间复杂度会很高,因此可以转化为背包问题从而使用动态规划来解决来降低复杂度。子集划分问题解决思路子集划分问题,其实就是我们把nums数组分成两个子集A和B,分别代表分配+和

2020-11-13 23:59:40 520

原创 微服务架构之服务注册与发现

微服务架构之服务注册与发现为什么需要服务注册与发现服务注册与发现原理服务注册客户端注册代理注册服务发现客户端发现代理发现心跳机制常见的服务注册与发现组件为什么需要服务注册与发现在单体架构中一个应用程序就是一个服务包,包内的模块通过函数方法相互调用,模型足够简单,根本没有服务注册和服务发现一说。在微服务架构中会将一个应用程序拆分为多个微服务,微服务会部署在不同的服务器、不同的容器,甚至多数据中心,微服务间要相互调用,服务注册与发现成为不可或缺的一部分。服务注册与发现原理服务注册与发现分为注册和发现两

2020-11-05 01:20:08 480

原创 Java实现快速幂

Java实现快速幂//平平无奇实现法public long normalPower(long base,long power){ long result=1; for(int i=0;i<power;i++){ result*=base; } return result;}//快速幂实现法public long normalPower(long base,long power){ long result=1; while(power>0){ if(power%2=

2020-09-20 23:34:34 1203

原创 每日一点JVM---Java内存模型

每日一点JVM---Java内存模型Java内存模型主内存与工作内存栈中和堆中分别存放什么数据大对象放在哪个内存区域堆区如何分类Java内存模型《Java虚拟机规范》中定义了一种“Java内存模型”(Java Memory Model,JMM)来屏蔽各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。主内存与工作内存Java内存模型的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量存储到内存和从内存中取出变量值这样的底层细节。此处的变量与Ja

2020-08-27 22:03:37 161

原创 教教你怎么用存储过程往数据库里插入大量数据吧!

简单说说,如何使用Mysql的存储过程往数据库里插入大量的数据!最近业务需要,插入数据,调用接口非常慢,因此想到了使用mysql来进行插入。存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。简单来说,存储过程就是数据库 SQL 语言层面的代码封装与重用。-- 若存在此存储过程 删除drop procedure i

2020-08-25 20:49:49 2662

原创 每日一点JVM---类加载相关

每日一点JVM---类加载相关写在前面什么是类加载?何时类加载?Java的类加载过程加载验证准备解析初始化常见类加载器及其之间的关系类加载器的双亲委派机制为什么需要双亲委派机制?Tomcat这种Web容器的类加载器如何设计?写在前面今日份复习的是类加载相关的知识,会分为什么是类加载,何时类加载,Java的类加载过程,常见类加载器及其之间的关系,类加载器的双亲委派机制和为什么需要双亲委派机制来看。什么是类加载?Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,

2020-08-20 09:48:30 137

原创 答应我 你一定要学会字典树!!字典树+Java实现+Leetcode题目--回文对

答应我 你一定要学会字典树写在前面字典树详解字典树概念字典树特点字典树应用字典树具体实现(Java)Leetcode原题结合理解写在最后写在前面大概是一周前的每日一题吧,当初初遇字典树,惊讶于其精妙,昨晚睡前的时候又看到字典树用于解决最长公共子前缀问题,想想具体实现,发现又给忘了,故今日抓紧时间整理,方便日后查看。本文章包括字典树概念的说明、使用场景以及leetcode题解的具体分析。字典树详解字典树概念先上个图,此图来自维基百科,先看看较为官方的定义:在计算机科学中,trie,又称前缀树或字

2020-08-18 11:52:05 162

原创 每日一点JVM---JVM内存结构及调优参数

这里写目录标题JVM内存结构***(手画图1.0 待补充)***JVM调优参数JVM内存结构首先我们来看一张图,这张图可能是很多人第一次学JVM看到的图片。通过这个图我们可以看到,JVM内存结构可以大概分为两块,一块是线程共享的(分别是方法区和堆),另一部分是线程私有的(虚拟机栈、本地方法栈和程序计数器)。(手画图1.0 待补充)在类加载的时候,jvm首先会帮助我们把类中的方法存入方法区中,在接下来执行字节码指令的时候,就需要程序计数器来帮助我们记住运行到哪一行字节码,紧接着就是在对应的线程内,

2020-08-17 22:41:39 165

原创 整理了一道并查集的问题

并查集 看起来可以解决一些关于无向图的问题看看这一篇博客 并查集的理解和Java实现我在博主的基础上实现了输出package Aut;import java.util.*;/** * 并查集的思路解决 */public class meituan3 { //parent[1]=0表示1的父节点是0 若出现parent[2]=2,表示2是根节点 public static int[] parent=new int[1000]; public static void

2020-08-16 00:01:36 112

原创 常用排序算法(二)---优雅地用Java实现堆排序吧!!

关于堆排序 相信有很多博客都讲得很细很细了堆排序的思路还是比较好理解的 也是面试经常考查的点 因此我觉得把堆排序给啃下来然而 图解堆排序的博客很多 但是堆排序的代码实在是写得太复杂了 我一个菜鸡实在是很难理解花费了一整个下午的时间 把堆排序的代码给整理出来了 附上详尽的注释 相信看着这份代码 对照着图解 很多就能把堆排序掌握下来啦!以下附上代码:(可能不是想象的那么优雅 但力求简单易懂好吧!)package Aug;import java.util.Arrays;/** * 堆排序 *

2020-08-14 18:05:51 110

原创 ThreadLocal真那么复杂吗?网抑云年代记

生而为人 我很抱歉网抑云年代平淡的一天 我准备啃下ThreadLocal这块硬骨头 建议打开网抑云 伴随着歌声阅读。ThreadLocal真那么复杂吗?什么是ThreadLocal?ThreadLocal的应用场景ThreadLocal的实现原理ThreadLocalMap内存泄露问题共享线程的ThreadLocal数据什么是ThreadLocal?ThreadLocal对象可以提供当前线程的局部变量,每个线程Thread拥有一份自己的副本变量,多个线程间互不干扰,实现了数据隔离。具体使用如下:

2020-08-02 23:39:33 104

原创 Java8新特性之Stream 入门级

Java 8为我们带来了许多提高生产力的新玩意 这次来研究一下流 Stream的具体用法。我们先看看比较官方的说法:流使用一种类似sql语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象Stream API可以极大提高我们的生产力,让我们写出高效简洁的代码Stream将要处理的集合看做一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(ter

2020-07-30 21:26:38 201

原创 分布式入门--了解基本概念

分布式定义及技术栈分布式系统什么是分布式系统分布式系统的优势分布式和集群的区别分布式和微服务三级目录分布式系统什么是分布式系统分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统。简单来说,分布式系统相对的是集中式系统,集中式系统就是整个项目是一个独立的应用,所有的东西都在一个应用里面。它就类似于我们在学校里开发的web项目,我们把web服务器、数据库等都安装在一台电脑上,好处是易于理解、方便维护。而坏处则是这台机子一旦崩了,那么整个系统也就崩溃了。分布式系统的出现,是为了减少

2020-07-30 14:11:28 215

原创 多模块项目的打包及部署

关于如何在多模块项目中对项目进行打包,并部署到服务器上面去。1、将项目打成jar包注意由于父子和子子模块间可能存在较为复杂的依赖关系,为了省事,我们可以直接对父模块进行打包即可。命令行方式win+R打开cmd,进入父模块的目录,使用命令:mvn clean package通过IDEA通过IDEA中的maven插件可达到同样的效果运行成功后会在该项目目录下的target生成jar包2、上传到服务器这里使用的是SecureCRT和SecureFX来连接服务器,这里也有两种方法将本地jar

2020-07-07 09:32:00 2152 1

原创 SecureCRT和SecureFX的使用心得

找了很久很久的破解软件,都是没有用的,度云链接评论区自取,使用破解软件的时候记得把杀毒软件关掉哦!

2020-07-07 09:09:50 988 2

原创 Java异常浅析及常见异常

Java异常浅析及常见异常Java异常结构ErrorException常见异常Java异常结构在Java语言中,程序执行中发生的不正常情况被称为异常;所有的异常都会继承Throwable接口,而Throwable下一层又分为两类,分别是Error和Exception。ErrorError描述的是Java程序运行时系统内部的错误,通常会比较严重,程序只会被安全地终止,应用程序一般不会去捕获这种异常,通常为虚拟机异常,例如StackOverflowError和OOM。ExceptionExcept

2020-06-18 10:25:06 170

原创 Springboot集成mybatis-plus并使用CRUD代码 最简单易懂的教程!

Springboot集成mybatis-plus并使用CRUD代码 最简单易懂的教程!写在前面依赖及配置代码生成器继承接口CRUD写在前面依赖及配置代码生成器继承接口CRUD

2020-06-17 18:18:38 904

原创 记第一个ssm(spring+SpringMVC+Mybatis)转springboot项目

学完了Spring+SpringMVC+Mybatis框架,做了一个简单的oa项目。最近又接触了SpringBoot框架,所以想把这个项目改成SpringBoot框架。

2020-06-15 16:38:54 2004 5

原创 未解决--mysql版本与mybatis-spring-boot-starter中jar包版本冲突的问题

背景:一开始mysql包的依赖是直接加在父模块中的,然后在libraries中我们也可以看到加载的包是我们所需要的5.1.2。然而当我们将mysql包转移到dao层的时候,就会出现问题,我们看到包里加载的是8.2.20的包。一访问接口就会出现这个由于包版本过高导致的java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required异常:java.sql.SQLNonTransientConnectionExc

2020-06-15 15:01:21 2884

原创 《Java并发编程的艺术》 读书笔记(一)

第3章 Java内存模型(3.1~3.3)前言:本章主要介绍Java内存模型的基础、Java内存模型的顺序一致性、同步原语(synchronized、volatile和final)和Java内存模型的设计原理。3.1 Java内存模型的基础3.1.1 并发编程模型的两个关键问题关键问题,一是线程之间如何通信,二是线程之间如何同步。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。在消息传递的并发模

2020-05-22 02:10:14 376

原创 高并发秒杀系统方案的优化

最近接触了一个关于高并发秒杀的项目,在这里稍微整理一下关于这个项目的一些值得记录的一些点,以下是源码地址:github高并发秒杀一、项目结构搭建1、集成Thymeleaf2、集成Redis3、JMeter的使用4、Result的封装二、功能实现1、全局异常控制器2、拦截器的使用三、页面缓存优化四、接口优化五、安全优化六、个人感受一、项目结构搭建1、集成ThymeleafThymeleaf是一个Java库,是一个XML/XHTML/HTML5模板引擎,能够应用于转换模板文件,以显示应用程序产生的数据和

2020-05-20 21:31:27 3287 14

原创 Java虚拟机之Java内存区域

2.1 概述对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄露和内存溢出问题,看起来有虚拟机管理内存一切都很美好。但一旦出现内存泄露和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误,修正问题将会成为一项异常艰难的工作。2.2 运行时数据区Java虚拟机管理的内存将会包括以下几个运行时数据区域:2.2.1 程序计数器程序计数器(Programming Counter Register)是一块较小的

2020-05-16 00:30:12 143

原创 Java实现 数组转化为完全二叉树并进行前序、中序和后序遍历

Java实现 数组转化为完全二叉树并进行前序、中序和后序遍历数组转化成完全二叉树前序遍历递归版本非递归版本中序遍历递归版本非递归版本后序遍历递归版本非递归版本运行结果数组转化成完全二叉树/**由数组构建完全二叉树 *一棵由数组构建的完全二叉树,下标为n的节点左右子树分别是2n+1和2n+2 */ public static TreeNode createBinaryT...

2020-05-05 18:25:08 895

原创 JMeter压测接口时,Error率非常高---未解决

最近在接触一个秒杀项目,所以使用JMeter来对秒杀接口进行压测,但是在测试过程中,发现秒杀接口的error率非常高,刚开始以为是业务代码出现问题,结果检查之后发现并没有问题,另外,在更换接口压测时,也同样出现了这个问题:我们从结果树这一栏可以看到其中出现异常的请求是出现了一个名为ConnectionException的异常,具体信息是:地址在本地计算机上无效,或端口在远程计算机上无效。但由于...

2020-05-02 12:51:19 9343 12

原创 SpringBoot中如何打war包?

之前的项目都是直接打成jar包的,那么如何使用SpringBoot把项目打成war包呢?分为以下三步:pom.xml文件中的packing标签改为warbuild标签下添加以下依赖<build> <!--打出的war包的名字--> <finalName>${project.artifactId}</finalName> ...

2020-04-28 17:05:53 110

原创 Win10打开JMeter窗口一闪而过,无法正常启动----已解决!

Win10打开JMeter窗口一闪而过,无法正常启动问题描述最近在研究高并发秒杀的问题,因此下载了Jmeter准备进行压测,下载的是JMeter 5.2.1,不知道为什么别人博客里如此丝滑地就打开了,我却只能眼睁睁看着他一闪而过,是真的绝望。解决方法安装JMeter当然需要配置好jdk环境,可以在cmd中使用java和javac看看是否配置正常,关于配置在网上有很多详细的博客教程,这里不再...

2020-04-27 16:47:13 6305 2

原创 Java并发编程之volatile型变量

最近在研究JVM,关于《深入理解Java虚拟机》书中的最后一部分,高效并发,做一些笔记整理,以下是关于volatile关键字的知识点:一、volatile定义关键字volatile可以说是Java虚拟机提供的最轻量级的同步机制,但是他并不容易被完全正确完整地理解。二、两大特性1.可见性当一个变量定义为volatile之后,它将具备两种特性,第一是保证此变量对所有线程的可见性,这里的“可见...

2020-04-15 11:09:52 187

原创 Leetcode——解数独

题目描述题目分析建议食用本题前先看看36.有效的数独,解数独也使用到该题里面如何判断重复的思路。本题用到的是回溯的思路,所谓回溯,其实就是在进行一步操作之后,违反了规则,而进行情景恢复的步骤,换句话说,回溯就是把你刚做的操作撤销,回到操作之前的样子,类似于Ctrl+Z。我们通过回溯的方法,对每一个格子填入1-9进行尝试,如果成功就进行下一步,失败即进行回溯,回到上一步。要填入一个数,...

2020-04-14 16:11:40 149

原创 Java面试准备之多线程基础

最近在准备实习面试的事情,因此每天都在复习一些基础知识,昨天面试的时候关于多线程的问题回答得不是很好,因此今天决定把多线程基础的知识给复习一下,顺便整理整理。线程与进程进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序就是一个进程从创建、运行和消亡的过程。在Java中,当我们启动了main函数时其实就是启动了一个JVM的进程,而main函数所在的线程就是这...

2020-04-13 19:26:08 135

原创 面经(6) 2020/4/9 Java研发实习生 蚂蚁金服

写在前面这次面试突如其来,电话一来就问我方不方便面试,于是乎就糊里糊涂开始了1.笔试问题上来就问问笔试后来有没有去解决,事实上我只去解决了第一道题,第二道我题目给忘了。2.面向对象三大特性,具体说说继承3.设计模式了解哪些4.单例模式的实现我只记得饿汉、懒汉和双重检验加锁了。。。5.try-catch中finally块一定会执行吗?6.进程和线程?线程安全?7.hashMap和...

2020-04-10 18:02:57 164

原创 Leetcode_翻转字符串里的单词

题目描述题目分析这道题用一些Java自带的方法还是比较容易解决的,主要问题还在在于对方法的不熟悉。题目解答class Solution { public String reverseWords(String s) { if(s==null && s.length()==0 ) return null; //除去前导空白和后续空白 ...

2020-04-10 17:48:35 87

原创 Leetcode——括号生成(深度优先遍历)

题目描述题目分析本题采用的是回溯算法(深度优先遍历算法),在看了一些博客之后,我对深度优先的理解是,往尽可能深的方向搜索,有点像二叉树的前序遍历,搜索停止的标志是到达边界或者找到结果。而之所以称为“回溯”,是在往一个方向搜索结束后,要跳转回上一节点,继续往其他方向搜索。在这一题中,由于字符串的每一次拼接都生成一个新的对象,因此不必回溯。到达每一个节点时,我们都有两种选择,一是加上左括号,...

2020-04-09 15:46:58 255

原创 面经(5) 2020/4/5 Java研发实习生 蚂蚁金服

继上一次电话面之后,又来了一次电话面,强烈怀疑这次还只是一面,记录一下。1. 课程成绩,综测排名2. 什么是线程安全?如何解决?3.什么是幂等性?4.死锁是什么?如何解决?期间说到解除占有,但面试官好像想问具体实现。5.什么是并发?JVM控制并发?6.关于ThreadLocal7.什么是事务?用过缓存吗?答了mybatis的一级和二级缓存,还有redis的缓存…8.情景题:如果...

2020-04-06 17:27:50 501

原创 Leetcode——重建二叉树

题目描述题目分析题目的要求很简单,给你两个数组,分别是前序遍历和中序遍历,要你还原二叉树。首先我们要明白的是二叉树的前序、中序以及后序遍历的区别以及特点,大家可以自行去网上搜索,相信有很多博主写的文章都能帮助理解。而我个人的理解方法呢,主要从名字入手,前序遍历,就是根节点在前头,然后再左右,就是根-左-右的顺序遍历;中序遍历呢,就是根节点在中间,也就是左-根-右的顺序;而后序遍历呢,就是...

2020-04-06 17:09:29 165

空空如也

空空如也

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

TA关注的人

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