自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ParseUtils(SQL解析)

1、ParseUtilspackage com.example.util;import com.alibaba.druid.sql.SQLUtils;import com.alibaba.druid.sql.ast.SQLStatement;import com.alibaba.druid.sql.visitor.SchemaStatVisitor;import com.alibaba.druid.stat.TableStat;import lombok.extern.slf4j.Slf4j;

2020-08-04 18:47:06 1700

原创 TreeUtil(树形结构转换)

1、Entity(实体类)@Data@AllArgsConstructor@NoArgsConstructorpublic class RegionTree { //id private String id; //父节点id private String parentId; //子节点 private List<RegionTree> children;}2、TreeUtilsimport org.apache.commons

2020-08-04 18:46:30 1464

原创 ExcelImportUtil(大批量数据导入)

1、依赖<poi.version>4.1.0</poi.version><commons.io>2.6</commons.io><hutool.version>4.5.16</hutool.version><!-- 日志打印 --><dependency> <groupId>org.projectlombok</groupId> <artifactId&g

2020-08-04 18:46:11 5417 3

原创 Explain

1、定义Explain 关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈;在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息。2、变种explain extended: explain 的基础上额外提供一些查询优化的信息。紧随其后通过 show warnings 命令可以得到优化后的查询语句,从而看出优化器优化了什么。额外还有 filtered 列,是一个半分比的值,rows * filtered/100

2020-08-04 18:45:55 190

原创 B-Tree / B+Tree / Hash

1、B-Tree相比较红黑树来说,B-Tree很大程度上提升了查询效率(树的高度为3的情况下,Mysql单表可以存放千万级数据,理论上来说,如果做等值查询,最多只需要3次磁盘的IO就会就会得到数据),上图是B-Tree的数据结构,可以看到每一个key对应的一个data,如果表内数据比较庞大(或是字段较多的情况),这样就造成了树十分庞大,单次IO加载索引文件的时候会非常的慢,于此同时各个节点之间也没有关系(如指针等),对此,引入了B+Tee2、B+Tree叶子节点不存储指针;顺序访问指针,提

2020-08-04 18:45:39 97

原创 Sping Cloud Alibaba - 6、Gateway

1、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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o

2020-08-04 18:45:18 104

原创 Sping Cloud Alibaba - 5、Stream & RabbitMQ

1、RabbitMQ 环境安装链接(linux):https://www.linuxprobe.com/install-rabbitmq-on-centos-7.html链接(win):https://www.cnblogs.com/JustinLau/p/11738511.html2、Producer 生产者main 服务启动类package com.wyh;import org.springframework.beans.factory.annotation.Autowired;im

2020-08-04 18:44:59 126

原创 Redis - 日期流水号

1、配置信息<!--redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency> redis: # redis 服务器地址 host: 127.0.0.1 # 端口

2020-08-04 18:44:38 249

原创 Sping Cloud Alibaba - 4、Feign & Ribbon

1、服务提供者service-01工程修改(提供接口,自己写一个controller测试一下)package com.wyh.controller;import com.wyh.service.TestService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springf

2020-08-03 10:14:39 121

原创 Sping Cloud Alibaba - 3、nacos - config

1、解决问题可以直接使用nacos来生成对应的配置文件,进行一些自定义的配置2、创建项目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" xsi:schemaLocation="http:

2020-08-03 10:13:01 113

原创 Sping Cloud Alibaba - 2、nacos - mybatis plus

1、下载并安装地址:https://github.com/alibaba/nacos/releases/tag/1.3.1账号 / 密码:nacos/nacos访问地址:http://192.168.230.1:8848/nacos/index.html2、服务注册创建服务引入jar <!-- SpringCloud alibaba nacos --> <dependency> <g

2020-08-03 10:10:49 201

原创 Sping Cloud Alibaba - 1、Father Project

1、组件Spring Cloud Gateway:网关Spring Cloud Ribbon:负载均衡工具Sentinel:流量控制,降级熔断。类似于HystrixNacos:服务注册中心,跟Eureka功能类似,也可以做服务配置中心Spring cloud stream & RabbitMQ:构建消息驱动的微服务应用程序框架Feign:模板化的HTTP客户端,请求远程服务就像调用本地方法2、项目创建版本对应创建maven项目(并删除src、iml、.idea文件,

2020-08-03 10:09:31 143

原创 Sping Cloud Alibaba / netflix

1、简介Spring Cloud 本身其实只是一套微服务规范,并不是一个拿来即可用的框架,Spring Cloud Netflix 和Spring Cloud alibaba是为开发者提供了这套规范的实现方式。由于Spring Cloud Netflix 2018年12月12日进入维护模式(Maintenance Mode)2、如何选择随着spring cloud netflix2.0开源的流产,我们把更多的希望寄托于spring cloud alibaba,随之,在国内风靡一时,非常的火爆。这里

2020-08-03 10:08:06 356 1

原创 JVM调优

1、相关命令jps/*内存信息输入到 log.txt 文件中*num:序号 instances:实例数量 bytes:占用空间大小 *class name:类名称,[C is a char[],[S is a short[],*[I is a int[],[B is a byte[],[[I is a int[][]*/jmap -histo 进程id > ./log.txt//查看堆的详细信息,各个区域的使用情况jmap -heap 进程id//查找死锁jstack 进程i

2020-08-03 10:06:45 120

原创 GC算法 - 垃圾收集器

1、内存的回收引用计数法:给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加1;当引用失效,计数器就减1;任何时候计数器为0的对象就是不可能再被使用的。(很难解决循环引用的问题)可达性分析算法:将“GC Roots” 对象作为起点,从这些节点开始向下搜索引用的对象,找到的对象都标记为非垃圾对象,其余未标记的对象都是垃圾对象(根节点:线程栈的本地变量、静态变量、本地方法栈的变量等等)标记-清除法:算法分为“标记”和“清除”阶段:标记存活的对象, 统一回收所有未被标记的对象;也可

2020-08-03 10:04:11 203

原创 对象创建流程 - 内存分配机制

1、对象创建流程加载检查(类):检查指令(new、clone、对象序列化等)的参数是否能常量池找到类的符号引用,并检测这个类是否被加载过(类加载机制博主前面文章写过)内存分配:JVM为对象分配内存。对象所需的内存空间大小在类加载完后可以完全确定,其本质是在堆中开辟一块确定的内存空间划分内存的方法:1.“指针碰撞”:如果Java堆中内存是绝对规的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间那边挪动一段与对象

2020-08-03 10:01:43 253

原创 JVM-内存模型

1、内存模型**程序计数器:指向当前线程所执行的字节码的行号指示器 (JVM的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器只能执行一条线程中的指令,因此,为了线程切换之后能恢复到正常的执行位置,每条线程都需要一个独立的程序计数器,互不影响,独立存储)Java虚拟机栈:线程私有的,生命周期随着线程的生而生,随着线程的死亡而死亡。存储当前线程运行方法时所需要的额数据、指令、返回地址。每个方法执行时候,都会创建一个栈帧本地方法栈:为虚拟机使用到的

2020-08-03 09:59:20 119

原创 深度解析类加载机制

1、类加载宏观图:2、ClassLoader.loadClass() 关键流程:加载:在磁盘上查找并通过io读入字节码文件;将字节流所代表的静态存储结构转化为方法区的运行时数据结构;在内存中生成一个代表这个类的java.lang.Class对象,作为方法去这个类的各种数据的访问入口验证:1、文件格式验证:验证字节流是否符合Class文件格式的规(如:.class文件开头为CAFE BABE),并且能够被当前虚拟机处理。2、元数据验证:内容是否符合JVM规定。3、字节码验证:验证字节码文件方法中的

2020-08-03 09:55:54 175

空空如也

空空如也

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

TA关注的人

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