自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

疯狂的毛毛虫-一个java后端爱好者

专注于分享java后端技术

  • 博客(39)
  • 收藏
  • 关注

原创 在线点餐下单、外卖、叫号排队、支付、配送等功能

2024-06-24 13:00:52 121

原创 flowable 工作流从入门到精通

flowable6&springboot2 工作流从入门到精通

2024-06-04 13:40:30 1109

原创 flowable6&springboot2 工作流从入门到精通

更多内容如下1. 任务分配 2. 流程变量 3. 用户任务、服务任务、邮件任务 4. 网关服务 5. 流程事件、信号、消息 6. 子流程 7. 流程设计器、表单设计器 8. 会签、或签 9. 转办 委派 抄送 10. 任务回退、驳回 11. 执行监听器、任务监听器 12. 流程表达 有需要更多文档联系作者:vx:crazyfur

2024-05-28 13:25:28 1086

原创 mongoose入门

看一下实际模型定义代码,db/mini/user.js// 定义Schemausername: {// 真实姓名},password: { // 密码});// 定义Model// 暴露接口这是MVC里Model层最长见的代码,没有连接信息,也没有其他额外不相干代码,当你看到user.js你就能理解它在数据库里对应的表结构,以及字段的类型、约束等信息,一般来说,代码写的越干净,可读性会更好一些。

2024-04-09 16:39:49 1023 1

原创 nodejs fs http express express-session jwt mysql mongoose

console.log("我是m1模块");return a+b;return 1;const uname= "我是妹妹";// 暴露模块,最终共享的结果以module.exports为准sum,uname,sayHello// module.exports.uname = "我是妹妹";// 解析表单数据的中间件})next();})})});});/*** string() 值必须是字符串。

2024-04-08 17:18:34 1184 1

原创 typescript

1、TypeScript是以JavaScript为基础构造的语言,是JavaScript的超集2、扩展了JavaScript,并添加了类型。3、TS代码需要通过编译器编译为JS,然后再交由JS解析器执行。4、TS完全兼容JS,任何的JS代码都可以直接当成JS使用。5、相较于JS而言,TS拥有了静态类型,更加严格的语法,更加强大的功能;TS可以在代码执行前就完成代码的检查,减小了运行时异常的的出现的几率;TS代码可以编译为任意版本的JS代码,可有效解决不同JS运行环境的兼容问题;

2024-04-08 17:09:18 1062

原创 判断类是否“相等”

这里的“相等”,包括代表类的 Class 对象的 equals() 方法、isInstance() 方法的返回结果,也包括。否则,即使这两个类来源于同一个 Class 文件,被同一个虚拟机加载,只要加载它们的类加载。任意一个类,都由加载它的类加载器和这个类本身一同确立其在 Java 虚拟机中的唯一性,每。因此,比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,一个类加载器,都有一个独立的类名称空间。器不同,那么这两个类就必定不相等。

2023-05-13 19:05:11 455

原创 锁机制与 InnoDB 锁算法

MyISAM 和 InnoDB 存储引擎使用的锁:MyISAM 采用表级锁(table-level locking)。InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁表级锁和行级锁对比:表级锁: MySQL 中锁定 粒度最大 的一种锁,对当前操作的整张表加锁,实现简单,资源消耗也比较少,加锁快,不会出现死锁。其锁定粒度最大,触发锁冲突的概率最高,并发度最低,MyISAM 和 InnoDB 引擎都支持表级锁。行级锁: MySQL 中锁定 粒度最小 的一种锁,只针对

2021-12-10 10:10:10 188

原创 线程上下文切换

上下文切换(有时也称做进程切换或任务切换)是指 CPU 从一个进程(或线程)切换到另一个进程(或线程)。上下文是指某一时间点 CPU 寄存器和程序计数器的内容。寄存器是cpu内部的少量的速度很快的闪存,通常存储和访问计算过程的中间值提高计算机程序的运行速度。程序计数器是一个专用的寄存器,用于表明指令序列中 CPU 正在执行的位置,存的值为正在执行的指令的位置或者下一个将要被执行的指令的位置,具体实现依赖于特定的系统。举例说明 线程A - B1.先挂起线程A,将其在cpu中的状态保存在内存中。2.在

2021-12-09 13:21:27 691

原创 MySQL的binlog有有几种录入格式?分别有什么区别?

java面试小蜜:有三种格式,statement,row和mixed。 statement模式下,每一条会修改数据的sql都会记录在binlog中。不需要记录每一行的变化,减少 了binlog日志量,节约了IO,提高性能。由于sql的执行是有上下文的,因此在保存的时候需要保存 相关的信息,同时还有一些使用了函数之类的语句无法被记录复制。 row级别下,不记录sql语句上下文相关信息,仅保存哪条记录被修改。记录单元为每一行的改动, 基本是可以全部记下来但是由于很多操作,会导致大量行的改

2021-12-08 12:18:25 338

原创 微信小程序图书阅读项目 (:

获取项目源代码:扫码下方小程序获取或者加作者微信获取1.简介小程序图书阅读项目是使用uni-app编写的小程序图书阅读项目,项目前后端分离,小程序使用uni-app,后台管理使用vue2+elementUI,后端使用SpringBoot+SpringCloudAlibaba编写的实用小项目并且加入了微信小程序支付和腾讯云短信sms,该项目只要拿到源代码修改配置即可以运行发布上线…2.体验截图:3.技术栈小程序技术:uni-app后台管理技术:Vue2 + Elem

2021-12-07 23:33:30 3601

原创 java面试刷题小程序

2021-12-07 16:03:02 283

原创 Mysql中的MVCC(多版本并发控制)

java面试小蜜小程序:概念Multi-Version Concurrency Control :多版本并发控制优势:允许多个版本同时存在,并发执行。不依赖锁机制,性能高。只在RC与RR级别下工作(其他隔离级别没有意义)。只有在InnoDB下支持。实现原理隐藏列InnoDB存储引擎中,它的聚簇索引记录中都包含两个必要的隐藏列(row_id并不是必要的,我们创建的表中有主键或者非NULL的UNIQUE键时都不会包含row_id列):trx_id:每次一个事务对某条聚簇索引记录进行改

2021-12-07 15:50:32 113

原创 简述线程,程序、进程的基本概念

简述线程,程序、进程的基本概念线程:与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线 程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。程序:是含有指令和数据的文件,被存储在磁盘或其他的数据存储设备中,也就是说程序是静态的代码。 进程:是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是

2021-12-07 14:38:33 150

原创 类与接口面试

java面试小蜜小程序,随时随地刷题 (:抽象类和接口的对比抽象类是用来捕捉子类的通用特性的。接口是抽象方法的集合。从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。相同点接口和抽象类都不能实例化都位于继承的顶端,用于被其他实现或继承都包含抽象方法,其子类都必须覆写这些抽象方法不同点备注:Java8中接口中引入默认方法和静态方法,以此来减少抽象类和接口之间 的差异。现在,我们可以为接口提供默认实现的方法了,并且不用强制子类来实现它。 接口和抽象类

2021-12-07 12:28:09 72

原创 JAVA面试手册

JAVA面试手册JAVA概述1.何为编程编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并 终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、 和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一 步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编 程。2.什么是JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了 C++里难以理解的多继承、指针等概念,因此Java语言具有功能

2021-12-05 21:04:42 498

原创 排序与分页

排序与分页/* Navicat Premium Data Transfer Source Server : 1.117.161.22 Source Server Type : MySQL Source Server Version : 50735 Source Host : 1.117.161.22:3306 Source Schema : atguigudb Target Server Type : MySQL Targ

2021-12-02 10:15:49 384

原创 常见java面试题

常见Java面试题0.JDK1.8新特性?1.JDK 和 JRE 有什么区别?2.== 和 equals 的区别是什么?3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?4.final 在 java 中有什么作用?5.java 中的 Math.round(-1.5) 等于多少?6.String 属于基础的数据类型吗?7.java 中操作字符串都有哪些类?它们之间有什么区别?8.String str="i"与 String str=new String(

2021-12-01 15:51:18 112

原创 MySQL基本查询语句

#1. SQL的分类/DDL:数据定义语言。CREATE \ ALTER \ DROP \ RENAME \ TRUNCATEDML:数据操作语言。INSERT \ DELETE \ UPDATE \ SELECT (重中之重)DCL:数据控制语言。COMMIT \ ROLLBACK \ SAVEPOINT \ GRANT \ REVOKE学习技巧:大处着眼、小处着手。//2.1 SQL的规则 ----必须要遵守- SQL 可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进- 每条命令以

2021-11-30 13:30:09 667

原创 Redis的内存淘汰策略有哪些

Redis的内存淘汰策略是指在Redis的用于缓存的内存不足时,怎么处理需要新写入且需要申请额外空间的数据。全局的键空间选择性移除noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。 allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除 近 少使用的key。(这个是最常用的) allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key。设置过期时间的键空间选择性移除 volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间

2021-11-30 13:26:40 773

原创 简述线程,程序、进程的基本概念。以及他们之间关系是什 么

简述线程,程序、进程的基本概念。以及他们之间关系是什么线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。程序是含有指令和数据的文件,被存储在磁盘或其他的数据存储设备中,也就是说程序是静态的代码。进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个

2021-11-29 13:55:04 150

原创 处理并发安全问题

对象的创建在虚拟机中是一个非常频繁的行为,哪怕只是修改一个指针所指向的 位置,在并发情况下也是不安全的,可能出现正在给对象 A 分配内存,指针还 没来得及修改,对象 B 又同时使用了原来的指针来分配内存的情况。解决这个 问题有两种方案:对分配内存空间的动作进行同步处理(采用 CAS + 失败重试来保障更新操作的 原子性);把内存分配的动作按照线程划分在不同的空间之中进行,即每个线程在 Java 堆 中预先分配一小块内存,称为本地线程分配缓冲(Thread Local Allocation Buffer,

2021-11-28 15:30:29 234

原创 MySQL锁,悲观锁、乐观锁、排它锁、共享锁、表级锁、 行级锁;

乐观锁用数据版本(Version)记录机制实现,这是乐观锁最常用的一种实现方式。何谓数据版本?即 为数据增加一个版本标识,一般是通过为数据库表增加一个数字类型的 “version” 字段来实 现。当读取数据时,将version字段的值一同读出,数据每更新一次,对此version值加1。当我 们提交更新的时候,判断数据库表对应记录的当前版本信息与第一次取出来的version值进行比 对,如果数据库表当前版本号与第一次取出来的version值相等,则予以更新,否则认为是过期 数据。悲观锁在进行每次操作时都要通

2021-11-27 12:33:57 847

原创 说一下 JVM 运行时数据区

Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存区域划分为若干个 不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有些区域 随着虚拟机进程的启动而存在,有些区域则是依赖线程的启动和结束而建立和销 毁。Java 虚拟机所管理的内存被划分为如下几个区域:不同虚拟机的运行时数据区可能略微有所不同,但都会遵从 Java 虚拟机规范, Java 虚拟机规范规定的区域分为以下 5 个部分:程序计数器(Program Counter Register):当前线程所执行的字节码的行号

2021-11-26 17:09:02 605

原创 深拷贝和浅拷贝

浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加 的指针指向这个新的内存,使用深拷贝的情况下,释放内存的时候不会因为出现浅拷贝时释放同一个内存的 错误。浅复制:仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来 的对象也会相应的改变。深复制:在计算机中开辟一块新的内存地址用于存放复制的对象。...

2021-11-25 13:42:51 90

原创 MySQL子查询

子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,然后与这个数据结果(可能是某个标量,也可能是某个集合)进行比较。1. 需求分析与问题解决1.1 实际问题[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nWOwr03J-1637647368550)(C:\Users\Administrato

2021-11-23 14:02:40 2096

原创 说一下 JVM 的主要组成部分及其作用?

2021-11-22 13:40:04 113

原创 rabbitmq

1 前言什么是消息中间件简介:1.消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统2.消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。作用:1.可以实现支撑高并发、异步解耦、流量削峰、降低耦合度。① 异步解耦② 流量削峰③ 降低耦合度2 消息中间件的应用场景1.异步发送短信2.异步调用第三方接口3.异步接收

2021-08-04 11:03:11 383

原创 k8s集群搭建

零、资料下载1.下文需要的yaml文件所在的github地址如下https://github.com/luckylucky421/kubernetes1.17.3/tree/master2.下文里提到的初始化k8s集群需要的镜像获取方式:镜像在百度网盘链接:https://pan.baidu.com/s/1k1heJy8lLnDk2JEFyRyJdA提取码:udkj一、准备实验环境1.准备两台centos7虚拟机,用来安装k8s集群操作系统:centos7.6以及更高版本都可以配置:2核

2021-06-16 21:21:45 956

原创 发送请求再也不用postman了,http client使用更方便

1、下载插件2、工具栏打开http client3、使用发送get请求:GET http://localhost:8080/getJsapiTicketAccept: application/json当然也可以带参数GET http://localhost:8080/getJsapiTicket?id=123&name=testAccept: application/json发送post请求POST http://localhost:8080/material/updat

2021-06-06 18:06:24 419

原创 docker学习笔记,史上最全

安装1、在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。https://www.cnblogs.com/caoweixiong/p/12186736.htmlyum -y install gccyum -y install gcc-c++设置仓库yum install -y yum-utils \device-mapper-persistent-data \lvm2使用以下命令来设置

2021-06-06 15:43:47 662

原创 在一个千万级的数据库查寻中,如何提高查询效率?

文章目录一、数据库设计方面二、SQL语句方面三、Java方面(重点内容)四、如何优化数据库,如何提高数据库的性能?MySQL的索引是什么?怎么优化?一、导致SQL执行慢的原因:二、分析原因时,一定要找切入点:三、什么是索引?四、Explain分析1.id2.select_type3.table4.type5.possible_keys6.key7.key_len8.ref9.rows10.extra五、优化案例六、是否需要创建索引?数据库优化的几个阶段第一阶段 优化sql和索引第二阶段 搭建缓存第三阶段 读

2021-05-31 12:46:08 2546

原创 关于 mysql 8 后连接不上数据库

将本地 MySQL 数据库升级版本后(升级到 8.0.11) ,发现原来的代码连接不上数据库了。检查了很多遍配置都没有发现问题。想到 MySQL 8 后发生了很多改变,所以才想可能是因为 mysql8.0 java 驱动的问题,搜索发现 8.0.11 版本的 mysql 的驱动连接方式不一样,之前我们这边用的是 com.mysql.jdbc.Driver ,而 8.0.11 要用 com.mysql.cj.jdbc.Driver ,此外 mysql8.0 是不需要建立 ssl 连接的,所以需要关闭掉,最后需

2021-05-31 12:24:03 514

原创 网关Gateway(3.0.1)入门:配置、过滤器、分布式限流

Spring Cloud Gateway(3.0.1)This project provides an API Gateway built on top of the Spring Ecosystem, including: Spring 5, Spring Boot 2 and Project Reactor. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cro

2021-05-30 08:24:51 953

原创 idea必备快捷键技能(看源码)

idea必备快捷键技能(看源码)查看当前类层次结构: ctrl + h 可以查看类被继承和实现情况查看类结构:alt + 7 查看类定义的方法和属性快速检索文件: ctrl+n或者双击shift 快速查找文件关键字检索:1.当前文件检索ctrl+f 2.全局检索.ctrl+shift+f(容易被其他软件暂用)查看类或者方法的实现: ctrl+alt + 鼠标左键 直接跳到接口的实现类或者接口方法的实现方法上查看方法被使用情况 : alt + f7 查看方法在那些地方有被使用

2021-05-28 17:48:55 228

原创 idea单元测试报 commend line is too long解决办法

idea单元测试报 commend line is too long解决办法:在idea文件下【workspace.xml】文件中加入 <component name="PropertiesComponent"> <property name="dynamic.classpath" value="true"/></component>

2021-05-28 17:45:16 391 2

原创 springboot-idea-热部署-spring-boot-devtools

springboot-idea-热部署1.配置idea设置1.1.设置1按照上图顺序找到设置,勾选:Build project automatically1.2.设置2按 ctrl+shift+alt+/ 快捷键弹出的界面中点击 Registry进去,找到compiler.automake.allow.when.app.running勾选它,然后直接点击close关闭,它会自动保持。2.pom.xml中添加依赖<dependency> <groupId>o

2021-05-03 23:04:52 98

原创 搭建eureka集群

节点1的application.ymlserver: port: 8761spring: application: name: eureka-register-center-test1eureka: instance: hostname: 127.0.0.1 client: fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务 register-with-eureka: fals

2021-04-27 18:08:45 90

原创 教你一步一步搭建搭建eureka注册中心服务

搭建eureka服务第一步:创建maven项目 pom.xml第二部:配置application.yml第三部:主启动类加@EnableEurekaServer注解第一步:创建maven项目 pom.xml<?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

2021-04-27 17:41:55 204

空空如也

空空如也

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

TA关注的人

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