- 博客(50)
- 收藏
- 关注
原创 explain 每个列的含义
官网传送门:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html。
2023-02-15 17:29:24
498
原创 mysql 函数 变量 存储过程
mysql 变量说明:变量由系统定义,不是用户定义,属于服务器层面注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别使用步骤:1、查看所有系统变量2、查看满足条件的部分系统变量3、查看指定的系统变量的值4、为某个系统变量赋值方式一:方式二:全局变量会话变量用户变量说明:变量由用户自定义,而不是系统提供的使用步骤:1、声明2、赋值3、使用(查看、比较、运算等)作用域:针对于当前会话(连接)有效,作用域同于会话变量局部变量
2022-06-23 19:03:43
567
1
原创 java util 包下集合的面试题map+set+list+queue
java容器分为controller和map两大类其中又又很多子类如下示例ControllerList接口ArraylistLinkedListVectorStackQueue接口ArrayBlockingQueue :一个由数组支持的有界队列。LinkedBlockingQueue :一个由链接节点支持的可选有界队列。PriorityBlockingQueue :一个由优先级堆支持的无界优先级队列。DelayQueue :一个由优先级堆支持的、基于时间的调度队列。Synchrono
2022-06-19 19:12:46
310
原创 Reids面试题集合 数据结构+穿透雪崩+持久化+内存淘汰策略+数据库双写+哨兵
简单的来说redis 就是一个数据库不同的是redsi的数据是存在内存中的,所以读写速度非常快因此,redis被广泛运用到缓存,另外redis也用来做分布式锁,redis提供了多种数据类型来支持不同的业务场景。除此之外redis支持事务持久化,lua脚本,lru事件集群SortedSet常用命令:zadd,zrange,zrem,zcard等和set相比 sortedSet 增加了一个权重参数score是的集合能有序的排列例子:直播系统中事实按照礼物排列顺序String:表示一个可变的字节数据我们
2022-06-19 13:10:03
252
原创 es 常用DSL查询语序 以及springDataES对应和使用
基本理解索引 = 数据库类型 = 表文档 = 一条数据字段 = 字段映射 = 设计表的组成(这里不像是关系型数据库不能多加字段可以多加只是一个软规定)ik 地址直接访问用就ok:http://182.61.52.136:5601/进去点击DevTools 一个扳手就直接能用了练习es了 自己练习完把自己的数据清理了谢谢elasticsearch-head地址:http://182.61.52.136:9100/DSL语句查询类(select)查询所有索引GET
2022-05-12 22:24:51
716
原创 谈谈你对数据库优化的见解
数据库服务内核优化my.cnf,搭配压力测试进行调试sql语句优化使用缓存优化查询 (进行多次查询的相同的查询,结果就会放入缓存中 后续同样的查询就会从数据库缓存中拿到)使用函数不确定值会刷新缓存explain 检测sql查询limit 1 明确只有一个数据的时候永久链接(在一些极端环境下 apache 会发出 http请求创建子进程去请求数据库)选择正确的数据库索引 myISAM 和 innoDB 对于插入操作比较友好进行大量删除 和插入操作的时候 进行拆分操作 (大量数据就会表被锁.
2022-02-23 20:54:20
483
原创 synchronized(锁的升级 以及升级锁的场景 ,原理)
思考锁是如何存储的可以思考一下,要实现多线程的互斥特性,那这把锁需要哪些因素?锁需要有一个东西来表示,比如获得锁是什么状态、无锁状态是什么状态这个状态需要对多个线程共享那么我们来分析,synchronized 锁是如何存储的呢?观察synchronized 的整个语法发现,synchronized(lock)是基于lock 这个对象的生命周期来控制锁粒度的,那是不是锁的存储和这个 lock 对象有关系呢?于是我们以对象在 jvm 内存中是如何存储作为切入点,去看看对象里面有什么特性能够实现锁对象
2021-12-22 14:51:32
551
原创 模板模式(spring JdbcTemplate 实际案例)
设计模式原则开闭原则 对扩展开放,对修改关闭。依赖倒置原则 通过抽象使各个类或者模块不相互影响,实现松耦合。单一职责原则一个类、接口、方法只做一件事。 接口隔离原则 尽量保证接口的纯洁性,客户端不应该依赖不需要的接口。迪米特法则又叫最少知道原则,一个类对其所依赖的类知道得越少越好。 里氏替换原则 子类可以扩展父类的功能但不能改变父类原有的功能。合成复用原则尽量使用对象组合、聚合,而不使用继承关系达到代码复用的目的。模板模式我们平时办理入职流程填写入职登记表–>打印简历–>复印学
2021-12-15 08:59:56
551
原创 原型模式(深克隆和浅克隆)
原型模式主要适用于以下场景:1、类初始化消耗资源较多。2、new 产生的一个对象需要非常繁琐的过程(数据准备、访问权限等)3、构造函数比较复杂。4、循环体中生产大量对象时。 在 Spring 中,原型模式应用得非常广泛。在我们经常用 的 JSON.parseObject()也是一种原型模式。浅克隆一个标准的原型模式代码,应该是这样设计的。先创建原型 Prototype 接口:/** * @Author jyl * @Date 2021/12/13 10:49 * @Version 1.0
2021-12-13 11:18:24
248
原创 单例模式的9种实现以及反射破坏和序列化
懒汉式静态属性/** * @Author jyl * @Date 2021/12/10 8:41 * @Version 1.0 *///饿汉式单例// 它是在类加载的时候就立即初始化,并且创建单例对象//优点:没有加任何的锁、执行效率比较高,//在用户体验上来说,比懒汉式更好//缺点:类加载的时候就初始化,不管你用还是不用,我都占着空间//浪费了内存,有可能占着茅坑不拉屎//绝对线程安全,在线程还没出现以前就是实例化了,不可能存在访问安全问题public class Hu
2021-12-13 10:36:51
124
原创 工厂模式演进以及部分使用场景(简单工厂,工厂方法,抽象工厂)
设计模式原则开闭原则 对扩展开放,对修改关闭。依赖倒置原则 通过抽象使各个类或者模块不相互影响,实现松耦合。单一职责原则一个类、接口、方法只做一件事。接口隔离原则 尽量保证接口的纯洁性,客户端不应该依赖不需要的接口。迪米特法则又叫最少知道原则,一个类对其所依赖的类知道得越少越好。里氏替换原则 子类可以扩展父类的功能但不能改变父类原有的功能。合成复用原则尽量使用对象组合、聚合,而不使用继承关系达到代码复用的目的。简单工厂模式这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式
2021-12-13 09:35:23
1584
原创 为什么索引会加快查询速度?索引原理和使用原则
索引是什么?索引图解定义:数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询、 更新数据库表中数据。首先数据是以文件的形式存放在磁盘上面的,每一行数据都有它的磁盘地址。如果 没有索引的话,要从 500 万行数据里面检索一条数据,只能依次遍历这张表的全部数据, 直到找到这条数据。 但是有了索引之后,只需要在索引里面去检索这条数据就行了,因为它是一种特殊 的专门用来快速检索的数据结构,我们找到数据存放的磁盘地址以后,就可以拿到数据 了。就像我们从一本 500 页的书里面去找特定
2021-12-09 10:08:06
11129
5
原创 mysql事务和锁
什么是数据库的事务?事务的典型场景在项目里面,什么地方会开启事务,或者配置了事务?无论是在方法上加注解,还 是配置切面<tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" rollback-for="Throwable" /> <tx:method name="add*" rollback-for="
2021-12-09 10:04:34
255
原创 一条sql是如何执行的
一条sql执行流程图通信协议MySQL 是支持多种通信协议的,可以使用同步/异步的方式,支持长连接/短连接。 这里我们拆分来看。第一个是通信类型。通信类型:同步或者异步同步通信的特点:1、同步通信依赖于被调用方,受限于被调用方的性能。也就是说,应用操作数据库, 线程会阻塞,等待数据库的返回。2、一般只能做到一对一,很难做到一对多的通信。异步跟同步相反:1、异步可以避免应用阻塞等待,但是不能节省 SQL 执行的时间。2、如果异步存在并发,每一个 SQL 的执行都要单独建立一个连接,避免数据混
2021-12-08 09:50:34
790
原创 jvm 调优 实战案例分析 如:性能硬件上的程序部署策略等
jvm 图GC优化内存被使用了之后,难免会有不够用或者达到设定值的时候,就需要对内存空间进行垃圾回收。垃圾收集发生的时机GC是由JVM自动完成的,根据JVM系统环境而定,所以时机是不确定的。 当然,我们可以手动进行垃圾回收,比如调用System.gc()方法通知JVM进行一次垃圾回收,但是具体什么时刻运行也无法控制。也就是说System.gc()只是通知要回收,什么时候回收由JVM决定。 但是不建议手动调用该方法,因为消耗的资源比较大。一般以下几种情况会发生垃圾回收当Eden区或者S区不够用
2021-12-06 16:25:18
859
原创 JVM 常用参数命令 工具,以及在线日志
JVM参数标准参数-version-help-server-cp-X参数非标准参数,也就是在JDK各个版本中可能会变动-Xint 解释执行-Xcomp 第一次使用就编译成本地代码-Xmixed 混合模式,JVM自己来决定-XX参数使用得最多的参数类型非标准化参数,相对不稳定,主要用于JVM调优和Debuga.Boolean类型格式:-XX:[±]+或-表示启用或者禁用name属性比如:-XX:+UseConcMarkSweepGC 表示启用CMS类型
2021-12-01 22:54:15
537
原创 垃圾回收机制(Garbage Collect) 垃圾收集器的分类,应用场景 吞吐量
如何确定一个对象是垃圾?要想进行垃圾回收,得先知道什么样的对象是垃圾。1引用计数法对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其 引用,它就是垃圾。弊端:如果AB相互持有引用,导致永远不能被回收。2可达性分析通过GC Root的对象,开始向下寻找,看某个对象是否可达能作为GC Root:类加载器、Thread、虚拟机栈的本地变量表、static成员、常量引用、本地方法栈的变量等。垃圾收集算法已经能够确定一个对象为垃圾之后,接下来要考虑的
2021-11-30 22:08:31
720
原创 什么是栈?什么是堆? 虚拟机中的对象的一生是如何在堆栈中度过
1.结合字节码指令理解Java虚拟机栈和栈帧官网 :https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.6栈帧:每个栈帧对应一个被调用的方法,可以理解为一个方法的运行空间。每个栈帧中包括局部变量表(Local Variables)、操作数栈(Operand Stack)、指向运行时常量池的引用(A reference tothe run-time constant pool)、方法返回地址(Return Addr
2021-11-30 21:03:31
674
原创 多线程,什么是线程?进程?并行和并发?多线程注意事项
进程是程序运行资源分配的最小单位进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、 磁盘 IO 等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程 之间是相互独立的。进程是具有一定独立功能的程序关于某个数据集合上的一次 运行活动,进程是系统进行资源分配和调度的一个独立单位。 进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一 个进程。显然,程序是死的、静态的,进程是活的、动态的。进程可以分为系统进 程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统
2021-11-28 15:06:40
455
原创 消息协议 AMQP 及MQTT ,STOMP,JMS的概念和基本理解
前言简单理解就是需要大家都遵守的 套规 。在计算机领域中,只要涉及不同的计算机之间要共同完成一事情的时候,就肯定会有协议的存在,就像我们说话用某种语言一样,不 同的计算机之间必须使用相同的语 才能进行通信消息协议则是指用于实现消息队列功能时所涉及的协议。按照是否向行业开放消息规范文档,可以将消息协议分为开放协议和私有协议。常见的开放协议有 AMQP, MQTT STOMP,XMPP 等。有些特殊框架(如 Red Kafka ZeroMQ )根据自身需要未严格遵循 MQ 规范,而是基于 TCP
2021-11-26 09:48:54
8587
原创 rabbitMQ快速开始整合springboot模板
发送端依赖 <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.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</mode
2021-11-22 10:31:07
129
原创 面向对象什么是依赖关联聚合和组合实现继承?
图片继承鸟是动物 动物就是鸟的父亲实现鸟会飞 大雁继承了 实现了鸟会飞的接口就是实现关联可以看到当a对象有一个属性是b对象的时候 那么就可以说 a对象关联b对象聚合可以看到燕群是 a 大雁是b 可以看到 a包含b 但是问题来了 这不就是关联吗? 这个是 a包含b但是b知识 a包含的一部分 就是聚合 就想大雁聚集为燕群一样 不是 一个燕群只有一只大雁而是一群大雁组合为燕群也就是 燕群关联的是 一群大雁 那么这个就叫做聚合聚合表示的是一种弱拥有关系体现的是 a包含b,但是b
2021-11-18 15:24:03
296
原创 .gitignore 配置文件
.gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利,以下是个人对于配置 .gitignore 的一些心得。1、配置语法:以斜杠“/”开头表示目录;以星号“*”通配多个字符;以问号“?”通配单个字符以方括号“[]”包含单个字符的匹配列表;以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;2、示例:(
2021-11-18 10:23:08
235
原创 spring源码 AnnotationConfigApplicationContext里面的 AnnotatedBeanDefinitionReader
构造器构造1其中AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry) 方法调用了 getOrCreateEnvironment(registry) 来调用自己的另一个构造方法解释AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry) 里面的 == getOrCreateEnvironment(BeanDefinitionRegistry regist
2021-10-22 14:32:59
146
原创 FactoryBean和BeanFactory的区别 spring为何要这么设计FactoryBean的理解(源码地址)
FactoryBean 和BeanFactoryFactoryBean 是bean 和其他bean区别不大 而BeanFactory 是一个工厂是用来产生bean的BeanFactory最基本的例子就是spring里面的 AnnotationConfigApplicationContext和 ClassPathXmlApplicationContextFactoryBean 的例子如下FactoryBean 的介绍首先说他是一个接口有三个方法从文档上可以看出T getObject()
2021-09-28 15:38:09
208
原创 理解springAOP的使用和他的含义
Aop是什么?与OOP对比,面向切面,传统的OOP开发中的代码逻辑是自上而下的,而这些过程会产生一些横切性问题,这些横切性的问题和我们的主业务逻辑关系不大,这些横切性问题不会影响到主逻辑实现的,但是会散落到代码的各个部分,难以维护。AOP是处理一些横切性问题,AOP的编程思想就是把这些问题和主业务逻辑分开,达到与主业务逻辑解耦的目的。使代码的重用性和开发效率更高。aop的应用场景日志记录权限验证效率检查事务管理exceptionspringAop的底层技术JDK动态代理CG
2021-09-15 23:12:34
142
原创 jsp语法,EL表达式 自定义EL表达式 ,JSTL 自定义标签库自定义标签库模板
1 jsp 页面元素可以是HTML和CSS静态文本 例如: <h1>我是富贵<h1> 注释 <!-- 注释--> <%-- 注释内容-- %> 例如 <!--我被注释了--> 指令 以 <%@ 指令内容 %> 例如
2021-09-08 23:39:35
450
原创 c3p0,DBCP连接池 和DBUtils工具类 使用介绍
c3p0的使用== c3p0使用xml配置问文件配置文件,配置文件一定到放置到src下,命名为:c3p0-config.xml ==<c3p0-config><!-- This app is massive! --> <named-config name="mvcapp"> <property name="driverClass">com.mysql.cj.jdbc.Driver</property> <proper
2021-09-08 23:18:36
212
原创 js 笔记
js代码需要写到script标签一旦引入外部标签那么内部标签就无法使用了数据类型1 原始数据类型(基本数据类型)number:整数,小数、nanString 字符串bollean 布尔类型null 一个对象为空的占位符undefined:未定义如果一个变量没又给出始话值则会数据的转换 可以通过 toString()转换为字符串可以通过类型名字加括号来改变类型例如 String(a),Number(a)来强制转换为数字parsInt()将字符串转换为数字逐一字符判断字符是否是数字不能
2021-09-08 23:12:59
224
原创 mevan 的常用命令和参数解释
简介Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。 Maven
2021-09-08 23:01:52
329
原创 理解spring IOC 的使用和他的含义
springIOC官方文档导航条springbean注入官方文档官方文档springbean构造方法注入官方文档springbeanSet注入官方文档自动注入的优点官方文档自动注入的缺点官方文档spring懒加载官方文档springbean的作用域官方文档关于spring单例bean依赖非单例bean引发问题的解决方法官方文档spring的回调方法官方文档用了这么久spring 到底什么是IOC?**控制反转(Inversion of Control,缩写为IoC),是面向对象编程中
2021-09-08 22:43:49
125
原创 @PostConstruct 注解
@PostConstruct spirng容器执行的是时候会执行标注该注解的方法 @PostConstruct public void init() { }
2021-08-25 15:38:47
86
原创 2021-08-25 09:59:15.933 INFO 18776 --- [nio-8089-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] :
引入第三方jar包时候会出现这个错误 这个错误是防火墙拦截了关闭window防火墙就可以了
2021-08-25 10:01:39
1237
2
原创 用最笨的方法填鸭式实现spirngboot+SpringSecurity
表关系这里很简单 看起来乱白话说就是一个用户 可以有很多角色 一个用户表 对应多个角色表一个角色 可以有很多权限 一个角色表对应多个权限表中间两个表为连接表 因为我们并没有外键直接指向对应表所以我们就需要join 连接查询 类似通过角色表id查出连接表对应的字段再从连接表对应的字段拿出角色id 匹配对应角色 巴拉巴拉的 你懂得进入正题依赖<dependencies> <!-- https://mvnrepository.com/artifact/org.th
2021-08-24 15:44:42
190
原创 idea自己喜欢的插件
idea自己喜欢的插件Rainbow Bracketsctrl +鼠标右键 最近的代码块高亮ctr+鼠标左键最近的代码块低亮Rainbow Brackets括号会变成彩虹颜色ctrl+鼠标左键 选中括号同颜色就会显示Java Stream Debugger流操作可视化Codotaiea自动提示升级版Auto filling Java call arguments使用 alt+回车 自动填写方法所需参数名字Grep Console控制台爆颜色...
2021-08-22 13:55:40
1248
原创 Elasticsearch 搜索引擎 安装简介 和springboot 例子
下载地址https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-8-4检索我们的应用经常添加检索功能,开源的ElasticSearch是目前全文搜索引擎的首选它可以快速的储存,收缩和分析海量的数据。springboot通过整合Spring Data ElasticSearch为我们提供了非常便捷的检索功能和支持Elasticsearch是一个分布式的搜索服务 ,提供了Restful Api,底层基于Lucene,采用了shar
2021-08-22 11:11:13
123
原创 springboot整合Redis 和Redis简单安装使用
安装Redishttps://redis.io/ 官网下载解压到指定目录就行启动redis redis-server.exe redis.windows.conf菜鸟教程网址 https://www.runoob.com/redis/redis-install.html整合Redis1.x版本修改配置和2.x版本十分不一样 1.就不记载了2.x版本修改redis的配置类 比如序列化自定义http://shangshiwendao.com/article/88配置文件spr
2021-08-22 11:00:45
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人