06 2024 档案
摘要:MySQL优化 1、尽量避免使用子查询 例: SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name = 'chackca'); 其子查询在Mysql5.5版本里,内部执行计划是这样:先查外表再匹配内表,而不是先查内表t2,当外表的数据很大时,
阅读全文
摘要:传统的分页,是基于offset进行分页,如果页码数很大的情况下,每次都需要遍历之前的offset+N条数据, 在分页多的时候容易出现MySQL性能瓶颈,所以我们可以基于取前一页的最大行数的id(将上次遍历到的最末尾的数据ID传给数据库,然后直接定位到该ID处,再往后面遍历数据) 然后根据这个最大的i
阅读全文
摘要:Voliate关键字 禁止线程缓存变量结果。 可见性问题主要指一个线程修改了共享变量值,而另一个线程却看不到。 引起可见性问题的主要原因是每个线程拥有自己的一个高速缓存区——线程工作内存 1.Voliate保证可见性 不使用volatile关键字 public class Test { privat
阅读全文
摘要:NIO基础(非阻塞式IO ) 1.三大组件 1.1.Channel & Buffer Channel有一点类似于 stream,它就是读写数据的双向通道(Java IO流中的OutputStream和InputStream都是单向通道),可以从 channel将数据读入 buffer,也可以将buf
阅读全文
摘要:计算机网络 1.IP地址 a.定义 IP地址的格式:IP地址=网络地址+主机地址 如果IP进行了子网划分:则 IP地址=网络地址+子网地址+主机地址(在IPv4网络中,子网地址是网络地址的一部分)网络地址是互联网上的节点在网络中具有的逻辑地址。MAC地址,处于数据链路层,IP地址处于网络层,端口号处
阅读全文
摘要:数据结构 1.树 定义: 树(Tree)是n个(n>=0)个结点的有限集。 n=0时称为空树。 在任意一颗非空树中: (1) 有且仅有一个特定的称为根(root)的的节点 (2) 当n>1时,除根节点外,其余节点可分为m(m>0)个互不相交的有限集(T1,T2,,,,Tm),其中每个集合本身又是一颗
阅读全文
摘要:堆和栈 JAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是: 1:寄存器 2:本地方法区 3:方法区 4:栈 5:堆 1.栈(stack) 基本数据类型、局部变量,对象引用,函数调用的现场都是存放在栈内存中的,用完就消失 2.堆(heap) new创建的实例化对象及数组,是存放在堆内存
阅读全文
摘要:Spring面试题 1.SpringBoot启动流程
阅读全文
摘要:Vuex学习 1.vuex环境搭建 1.1.安装vuex依赖包 npm install vuex --save 1.2.导入vuex包 import Vuex from 'vuex' Vue.use(Vuex) 1.3.创建store对象 const store = new Vuex.Store({
阅读全文
摘要:Vue 1.创建vue脚手架 1.安装vue-cli npm install -g vue-cli 2.卸载脚手架 npm uninstall -g @vue/cli // 卸载3.xx版本脚手架 npm uninstall -g vue-cli // 卸载2.xx版本脚手架 3.vue Cli官方
阅读全文
摘要:Promise 1.为什么要使用Promise “回调地狱”这个词,不知道大家听过没有,就是异步调用获取到结果后,为下一个异步函数提供参数,所以就会一层一层的出现回调里面嵌入回调,导致层次很深,代码维护起来特别的复杂,看一下下面的小案例大家就知道什么意思了。 下面的举例就以uniapp里面的网络请求
阅读全文
摘要:Element-ui 1.安装element-ui 1.1.通过vue脚手架创建项目 vue init webpack 项目名 1.2.在vue脚手架项目中安装element-ui 1.npm i element-ui -S 2.在index.js中写入以下内容 import ElementUI f
阅读全文
摘要:【Mysql索引优化解决方案】 1. 索引介绍 1.1 什么是MySQL的索引 MySQL官方对于索引的定义:索引是帮助MySQL高效获取数据的数据结构。 MySQL在存储数据之外,数据库系统中还维护着满足特定查找算法的数据结构,这些数据结构以某种引用(指向)表中的数据,这样我们就可以通过数据结构上
阅读全文
摘要:MySQL窗口函数 一.什么是窗口函数 基本含义 窗口限定一个范围,它可以理解为满足某些条件的记录集合,窗口函数也是在窗口范围内执行的函数 基本语法 窗口函数有over关键字,指定函数执行的范围,可分为三部分,分组子句(partition by), 排序子句(order by),窗口子句(rows)
阅读全文
摘要:MySQL 1.连接查询 1.1.笛卡尔积现象 select ename, deptno from emp ename deptno SMITH 20 ALLEN 30 CLARK 10 select * from dept deptno dname 10 ACCOUNT 20 RESEARCH 3
阅读全文
摘要:1.ElasticSearch 1.概念 ElasticSearch是面向文档型数据库,一条数据在这里就是一个文档。为了方便理解,我们将ElasticSearch里存储文档数据和关系型数据库MySQL存储数据的概念进行了一个类比 ES里的Index可以看做一个库,而Type相当于表,Docume
阅读全文
摘要:Linux 学习笔记 1.1基本介绍 linux的文件系统是采用级层式的树状目录结构,在此结构上的最上层是根目录"/",然后在此目录下在创建其他的目录。"~"是家目录 1.2.具体的目录结构 /bin 【常用】(/usr/bin、/uer/local/bin) 是Binary的缩写,这个目录存放着最
阅读全文
摘要:Docker 0.虚拟机和容器 0.1.虚拟机 通过将应用程序部署在不同的虚拟机中从而实现隔离 0.2.容器 与虚拟机通过操作系统实现隔离不同,容器技术只隔离应用程序的运行时环境但容器之间可以共享同一个操作系统,这里的运行时环境指的是程序运行依赖的各种库以及配置 0.3.什么是docker dock
阅读全文
摘要:一.Redis入门 1.认识NoSQL es中的索引,类型,文档分别对应mysql中的库,表,数据 1.1 什么是NoSQL NoSQL最常见的解释是"non-relational", 很多人也说它是"Not Only SQL" NoSQL仅仅是一个概念,泛指非关系型的数据库 区别于关系数据库,它们
阅读全文
摘要:Rabbit-mq 0.不同mq对比 ActiveMQ Kafka RocketMQ RabbitMQ 1.Docker装RabbitMq 1.拉取镜像 docker pull rabbitmq 2.创建并启动rabbitmq容器 docker run -id --hostname rabbitmq
阅读全文
摘要:OAuth2 1.名词定义 (1)Third-party application:第三方应用程序,本文中又称"客户端"(client),即上一节例子中的"云冲印" (2)HTTP service:HTTP服务提供商,本文中简称"服务提供商",即上一节例子中的Google (3)Resource Ow
阅读全文
摘要:Nginx 1.什么是nginx Nginx是一个高性能HTTP和反向代理服务器,特点是占用内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好 Nginx转为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并
阅读全文
摘要:Kafka 1.topic(主题) 一个Kafka里头有能有很多的Topic,这些Topic的作用是用来区分数据。如营销部的数据就存入Topic-“yxb”里;技术部的数据就存入Topic-“jsb”里以此类推。把不同的数据分别装进不同的Topic,获取的时候也十分便利,能够针对性的获取自己想要的数
阅读全文
摘要:Gitee基础 1.基本步骤 a.初始化 git init:初始化git 如果此时gitee中已有仓库,则在git init之后需要绑定仓库 git remote add origin 仓库地址 git add .:将所有文件添加至暂存区 git add [file...]:将指定文件添加至暂存区
阅读全文
摘要:深入理解Java之synchronized 1.问题发散 我们知道syhchronized(后面用sync替代)是用来控制线程同步的,其可以用在代码块上也可以用在方法上。但是sync很”难”用,且看下段代码,首先说明一下这段代码的作用,用sync来锁住一个方法,让不同线程能够顺序执行这段方法 cas
阅读全文
摘要:深拷贝和浅拷贝 1.类型 拷贝一般分为二大类 引用拷贝 和 对象拷贝,我们通常讲的深拷贝和浅拷贝都属于对象拷贝。 2.引用拷贝 定义:顾名思义,即是对引用地址的拷贝,说明引用地址一样,指向堆中的对象是同一个对象。 如果对一个对象进行改变,其他对象也会跟着改变。 Teacher teacher = n
阅读全文
摘要:ThreadLocal 1.什么是ThreadLocal ThreadLocal(线程本地),用通俗易懂的话来说,就是每个线程中都会存一份变量副本,这个变量相对于当前线程来说是全局的 ThreadLocal<Integer> tl = new ThreadLocal<>(); Thread t1 =
阅读全文
摘要:1.Stream 2.Optional 2.1 概述 概述:我们在编写代码的时候出现最多的就是空指针异常,所以在很多时候我们需要做各种非空的判断 例如: Author author = getAuthors(); if(author != null){ System.out.println(auth
阅读全文
摘要:Spring事务 1.事务的传播行为 1.1.Propagation.REQUIRED 定义:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。这是默认值(default) @Transactional(rollbackFor = Exception.class, propaga
阅读全文
摘要:1.SpringSecurity执行流程 2.RBAC模型 用户表(user),权限表(menu),角色表(role),角色权限关联表(role_menu) 关系均为多对多 3.自定义失败处理 4.跨域 4.1.springboot跨域配置 @Configuration public class C
阅读全文
摘要:Spring-01 1.Spring简介 Spring是一个开源框架,它由[Rod Johnson](https://baike.baidu.com/item/Rod Johnson)创建。它是为了解决企业应用开发的复杂性而创建的。 目前是JavaEE开发的灵魂框架。他可以简化JavaEE开
阅读全文
摘要:深入理解微服务Maven父子项目构造以及项目打包部署 一、问题背景 随着微服务项目的越来越流行,更多的公司开始使用微服务来搭建自己的业务系统。微服务很好地解耦了业务,每一个服务只提供特定的功能,真正的做到了各司其职,互不干扰,同时微服务间可以互相通信,可以更好的互相协调并完成一条完整的业务逻辑。
阅读全文
摘要:Java异常 1.异常类型 a.受检异常 受检异常(Checked Exceptions): 受检异常是那些在编译期间Java编译器要求必须处理(要么用try-catch捕获,要么在方法签名中用throws子句声明)的异常 它们继承自java.lang.Exception类,但不包括java.lan
阅读全文
摘要:Java设计模式 1.类图的表示法 1.1.关联关系 单向关联 双向关联 自关联 1.2.聚合关系 1.3.组合关系 1.4.依赖关系 1.5.继承关系 1.6.实现关系 2.软件设计原则 2.1.开闭原则 定义:对扩展开放,对修改关闭。在程序需要扩展的时候,不能去修改原有的代码,实现一个热插拔的效
阅读全文
摘要:Java全局异常处理和拦截器 1.全局异常处理 @ControllerAdvice 用于标识一个类,表示它是一个全局性的控制器异常处理器 @RestControllerAdvice 是 Spring Framework 提供的一个注解,用于全局性地处理控制器(Controller)抛出的异常。它结合
阅读全文
摘要:Java强引用、软引用、弱引用和虚引用 Java执行GC判断对象是否存活有两种方式其中一种是引用计数 引用计数:Java堆中每一个对象都有一个引用计数属性,引用每新增1次计数加1,引用每释放1次计数减1 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说
阅读全文
摘要:Java垃圾回收机制 标记-清除 算法 标记-整理 算法
阅读全文
摘要:Java基础知识巩固 1.修饰符 java中有四种访问修饰符,分别是 public default private protected (1)public:被 public 修饰的类、方法和变量可以被任何其他类访问 (2)private:被 private 修饰的类、方法和变量只能在声明它们的类内部
阅读全文
摘要:Java回调函数 1.前言 先让我们通过一个生活中的场景来还原一下回调的场景:你遇到了一个技术难题(比如,1+1等于几?,于是你去咨询大牛,大牛说现在正在忙,待会儿告诉你结果 此时,你可能会去刷朋友圈了,等大牛忙完之后,告诉你答案是2 那么,这个过程中询问问题(调用对方接口),然后问题解决之后再告诉
阅读全文
摘要:SpringCloud 1.服务注册中心 1.1.服务注册中心 定义:服务注册中心就是在整个微服务架构中单独抽取一个服务,这个服务不完成项目中任何业务功能,仅仅用来在微服务中记录微服务以及对整个系统微服务进行健康状态检查,以及服务元数据信息存储 1.2.服务注册中心组件开发 常用注册中心组件:eur
阅读全文
摘要:SpringBoot项目部署Docker 1.准备工作 1.IDEA创建的没有错误的springboot项目 2.安装好docker环境的linux服务器 centos7 3.MobaXterm工具 2.打包SpringBoot项目 打开idea工具,点击底部Terminal,在命令行中输入命令:m
阅读全文
摘要:一.SpringBoot 事件驱动(本地模式) 1.什么是事件驱动 Spring的事件(Application Event)为Bean与Bean之间的消息通信提供了支持 事件机制中有三种角色:发布事件者、事件、事件监听者 发布事件者:发布事件的对象 事件:事件的具体内容 事件监听者:等待处理时间的对
阅读全文
摘要:Lambda表达式 java普通函数的组成部分由:返回值,方法名,参数列表,方法体 int add(int a, int b){ return a + b; } Lambda表达式的函数,只有参数列表和方法体 ( 参数列表 )-> { 方法体 } ():用来描述参数列表 { } :用来描述方法体 -
阅读全文
摘要:JWT 单点登陆之有状态登陆与无状态登陆的区别 单点登录与 JWT JWT 全称: Json Web Token 。 作用: JWT 的作用是 用户授权(Authorization) ,而不是用户的身份认证(Authentication) 。 用户认证 指的是使用用户名、密码来验证当前用户的身份,即
阅读全文
摘要:JVM 1.本地方法栈 a.本地方法栈用于管理Java方法在执行过程中涉及的本地(Native)方法存(C++代码) b.它与Java虚拟机栈类似,但其不同之处在于本地方法栈是为本地方法服务的,而Java虚拟机栈则是为Java方法服务的 c.本地方法栈中包含本地方法的参数、局部变量以及方法调用和返回
阅读全文
摘要:java异步编程 1.创建线程池 public final class ConcurrentUtils { private static final ExecutorService POOL; private static final ListeningExecutorService poolSer
阅读全文
摘要:IO流学习 引入 ASCII 码中,1个英文字母(不分大小写)为1个字节,一个中文汉字为2个字节。 UTF-8 编码中,1个英文字为1个字节,一个中文为3个字节。 Unicode 编码中,1个英文为1个字节,一个中文为2个字节。 1.IO流的概念 IO是指Input/Output,即输入和输出。以内
阅读全文
摘要:1. AOP 1.1 概念 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程。他是一种可以在不修改原来的核心代码的情况下给程序动态统一进行增强的一种技术。 SpringAOP: 批量对Spring容器中bean的方法做增强,并且这种增强不会与原来方法中的代码耦
阅读全文