自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小小学渣的博客

看似轻松的背后,实则不留余力的拼搏

  • 博客(82)
  • 资源 (1)
  • 收藏
  • 关注

原创 explain字段以及MySQL优化

如何查看explain语句的执行结果执行以下语句:explain 你的SQL语句分析explain的执行结果0. id具体内容参考此链接:Explain字段解释——id1. select_type含义:指明查询的类型,主要用于区别普通查询、联合查询、子查询等复杂查询。如下:2. table含义:这一行的数据是关于那张表。3. type显示查询使用了哪种访问类型。结果值从最好到最坏依次是:system>const>eq_ref>ref>range>in

2021-10-19 22:17:35 133

转载 HTTPS的工作原理

在正式开始讲解https之前我们还得先搞清楚两个概念:什么是对称加密,以及什么是非对称加密?对称加密的介绍对称加密比较简单,就是客户端和服务器共用同一个密钥,该密钥可以用于加密一段内容,同时也可以用于解密这段内容。对称加密的优点加解密效率高,但是在安全性方面可能存在一些问题,因为密钥存放在客户端有被窃取的风险。对称加密的代表算法有:AES、DES等。非对称加密的介绍对称加密则要复杂一点,它将密钥分成了两种:公钥和私钥。公钥通常存放在客户端,私钥通常存放在服务器。使用公钥加密的数据只有用私钥

2021-10-08 23:19:54 1873

原创 狂神说Java设计模式

1. 什么是设计模式?设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案,是一套被反复使用、多数人知晓、及经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保障代码的可靠性,可维护性。2. 面向对象设计(OOP)七大原则开闭原则:对扩展开放、对修改关闭里式替换原则:继承需要修改父类的性质依赖倒置原则:要面向接口编程、不要面向实现编程针对接口编程的意思就是说,应当使用Java接口和抽象Java类进行变量的类型声明、参量的类型声明、方法的返回

2021-10-06 00:33:46 411

原创 Redis面试题

1. 谈谈对Redis的认识Redis是一个高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向。优点:读写性能优异;支持数据持久化;支持事务,操作都是原子性的;数据结构丰富;支持主从复制,可以进行读写分离缺点:数据库容量受到物理内存的限制,不能用作海

2021-10-03 21:50:17 242

原创 JUC面试

1. 什么是线程安全当多个线程访问某个实例对象的方法时,不管你通过怎样的调用方式或者说这些线程如何交替的执行,得到的结果始终和单线程下所获得的结果是一样的,那么我们就可以说这个对象是线程安全的。2. 多线程的核心概念原子性:一些业务操作要么同时执行成功要么同时失败可见性:当某个线程修改某个共享资源时,其他线程能够立刻看到有序性:程序执行的顺序按照代码的先后顺序执行。3. 如何实现线程安全1、第一种 : 互斥同步(synchronized和lock锁)JUC学习笔记-01-Synchron

2021-09-28 00:40:15 137

原创 JVM面试题

1. JVM内存结构Java堆:存放对象实例方法区:存储已被虚拟机加载的类信息、常量、静态变量程序计数器:当前线程所执行的字节码的行号指示器JVM栈:虚拟机栈描述的是Java方法的执行的内存模型,每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、方法出口等信息。本地方法栈:调用本地的native方法。2. Java堆的结构是什么样子的?什么是堆中的永久代JVM的堆是运行时数据区,所有类的实例和数组都是在堆上分配内存。它在JVM启动的

2021-09-25 12:09:01 878 3

原创 网络协议面试题

1. 什么是TCP/IP和UDP协议TCP/IP协议即传输控制/网络协议,是面向连接的协议,发送数据之前需要建立连接,TCP提供可靠传输服务。UCP协议即用户数据报协议,属于TCP/IP协议族中的一种。是无连接的协议,发送数据之前无需建立连接,不可靠传输。2. TCP与UDP的区别TCP是面向连接的,而UDP是面向无连接的TCP只支持点对点通信,UDP支持1-1、1-n、n-1、n-n。TCP是以字节为单位发送数据的,而UDP是整个报文一次发完。3. TCP与UDP的应用场景对某些实

2021-09-23 23:59:22 1350

原创 MySQL理论知识面试题

MySQL中的varchar和char有什么区别?char是一个定长字段,比如char(10),无论实际存储了多少内容,该字段都占用10个字符。varchar是变长字段,比如varchar(10)表示申请了最大长度为10的空间,但占用的空间为实际字符长度+1.varchar(10)和int(10)代表什么含义?varchar是变长字段,上面已解释,而int(10)只是代表了展示的长度,不足10位用0填充,也就是说int(1)和int(10)所能存储的数字大小以及占用的空间都是相同的,只是在展..

2021-09-19 09:32:51 931

原创 MySQL数据库分区技术

MySQL数据库分区技术

2023-11-08 11:38:04 126

原创 MySQL数据库的各种锁介绍以及它们之间的关系

全网最细,让你对MySQL各种锁的作用和关系一目了然

2023-11-08 11:28:29 295

原创 MySQL数据库 Java实体类 java.util.Date属性 时间保存

Java 通过java.util.Date属性保存时间入库mysql

2023-01-16 09:23:27 542 1

原创 Kafka如何发送自定义消息对象

Kafka如何实现发送自定义消息 对象

2023-01-12 09:00:04 1151

原创 谷粒商城整合阿里云OSS(对象存储服务器)

创建OSS账号1、点击对象存储OSS2、创建bucket(我这里已开通OSS,一般一个项目都会创建一个bucket)3、创建bucket的详细说明4、创建子用户(获取密钥访问OSS服务器)我们创建的云账号AccesKey有所有API的访问权限,建议遵循阿里云最佳安全实践,创建并使用RAM子账户进行API访问5、给该子账户添加权限实操整合1、引入oss-starter依赖<!--整合OSS对象存储服务器--><dependency> <

2022-05-11 01:52:38 1157 2

原创 MybatisPlus生成器ServiceImpl类详解

ServiceImpl类是我们进行SQL操作中非常重要的一个类,通过MybatisPlus生成的各个实体类的XXXImpl都会继承ServiceImpl类那里继承全部的方法,那么ServiceImpl类中有哪些方法呢?如下介绍:/** * IService 实现类( 泛型:M 是 mapper 对象,T 是实体 ) * * @author hubin * @since 2018-06-23 */@SuppressWarnings("unchecked")public class Servic

2022-05-07 11:02:45 27268

原创 谷粒商城解决跨域问题

1、什么是跨域?点击此链接:什么情况下需要进行跨域请求?2、解决跨域问题可根据需要配置跨域配置。@Configurationpublic class GulimallCorsConfiguration { @Bean public CorsWebFilter corsWebFilter(){ // 基于URL的跨域配置源对象 UrlBasedCorsConfigurationSource source = new UrlBasedCorsConf

2022-05-06 11:44:02 1110

原创 新建vue-cli项目整合ElementUI并实现简单路由

如何搭建一个vue项目(完整步骤)1、利用vue-cli创建项目Vue build: 打包方式,回车即可;Runtime + Compiler: recommended for most usersInstall vue-router:是否要安装 vue-router,项目中肯定要使用到 所以Y 回车;Use ESLint to lint your code :是否需要 js 语法检测 目前我们不需要 所以 n 回车;Set up unit tests :是否安装 单元测试工具 目前我们不需

2022-05-01 22:48:05 299

原创 VSCode必备安装插件

Vscode 安装开发必备插件Vetur —— 语法高亮、 智能感知、 Emmet 等包含格式化功能, Alt+Shift+F ( 格式化全文) , Ctrl+K Ctrl+F( 格式化选中代码, 两个 Ctrl需要同时按着)EsLint —— 语法纠错Auto Close Tag —— 自动闭合 HTML/XML 标签Auto Rename Tag —— 自动完成另一侧标签的同步修改JavaScript(ES6) code snippets — — ES6 语 法 智 能 提 示 以 及 快

2022-04-29 10:46:25 5246

原创 Netty中WorkerGroup分配客户端通道机制

在Netty中BossGroup负责客户端的连接请求事件,当客户端连接事件处理完毕后,便将该客户端对应的通道注册到WorkerGroup中,在WorkerGroup中有多个NIOEventLoop事件循环,该NIOEventLoop本身就是一个线程,WorkerGroup会按照命名如同nioEventLoopGroup-3-1的方式分配一个NIOEventLoop给该客户端,而注册到WorkerGroup中的通道也就添加到该NIOEventLoop中,后面就负责与该客户端的通信。这个是我个人所学所感,哪里

2022-03-21 16:45:26 580

原创 网络套接字发送数据-->理解零拷贝

1、传统的IO模型:4次拷贝和3次状态切换案例说明:通过套接字发送一份文件,用户没有其他操作4次拷贝分别是:DMA拷贝(将文件从硬盘读取到内核空间)–>CPU拷贝(将内核空间中的数据拷贝到用户空间中)–>CPU拷贝(将用户空间中的数据拷贝到socket buffer中)–>DMA拷贝(socket缓冲区中的数据拷贝到TCP/IP协议栈中进行数据的封装)3次切换分别是:应用程序需要发送数据那么就需要从1用户态切换到内核态,内核态便将硬盘中的数据加载到内核空间中,然后再从2内核态切换

2022-03-20 17:33:59 924

原创 Netty 群聊系统全面解析

案例说明:群聊系统1、服务端代码package com.atguigu.nio.groupchat;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.*;import java.util.Iterator;/** * 整个监听的核心就是:在每个通道上都会有一种事件检查机制,当通道上面有事件(连接、读写)发生时,

2022-03-20 11:59:49 427

原创 彻底搞懂同步,异步,阻塞,非阻塞

标题下面是我从几篇好评的文章中截取出来一些容易理解的部分1、同步:是应用程序要直接参与 IO 读写的操作对于一个socket上的输入操作,第一步就是通常涉及等待数据从网络中到达,当所等待的分组到达的时候,它就被复制到内核中的某个缓冲区中,这个时候便是我们常说的数据已经准备好了。第二步就是把数据从内核的缓冲区拷贝到应用进程的缓冲区中。这一步往往是我们进程阻塞的原因,因为用户进行需要等待去获取内核中的数据。所以socket的一次输入操作就涉及到两次的IO操作:操作系统IO和应用程序IO。所谓的同步在这里

2022-03-18 11:56:56 1304

原创 谷粒商城-商品服务API-查询-递归树形结构数据获取

1、新建服务接口:在CategoryService中新建接口方法listWithTreepublic interface CategoryService extends IService<CategoryEntity> { PageUtils queryPage(Map<String, Object> params); List<CategoryEntity> listWithTree();}2、 实现服务接口:com/wang/gulima.

2021-11-20 11:47:00 672

原创 Vue官方文档代码大全

01、vue实例1、数据与方法<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js" type="text/javascript" charset="utf-8">&

2021-11-16 22:20:20 2342

原创 谷粒商城-Gateway的使用

1、 简介网关作为流量的入口, 常用功能包括路由转发、权限校验、限流控制等。而 springcloud gateway作为 SpringCloud 官方推出的第二代网关框架, 取代了 Zuul 网关。网关提供 API 全托管服务, 丰富的 API 管理功能, 辅助企业管理大规模的 API, 以降低管理成本和安全风险, 包括协议适配、 协议转发、 安全策略、 防刷、 流量、 监控日志等功能。Spring Cloud Gateway 旨在提供一种简单而有效的方式来对 API 进行路由, 并为他们提供切

2021-11-16 17:06:20 1338 3

原创 谷粒商城-nacos的使用

1、 SpringCloud Alibaba-Nacos[作为注册中心]Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、 配置管理和服务管理平台。 他是使用 java 编写。 需要依赖 java 环境Nacos 文档地址: https://nacos.io/zh-cn/docs/quick-start.html1、 下载 nacos-server:https://github.com/alibaba/nacos/releases2 、 启动 nacos-server

2021-11-15 22:15:42 923

原创 springboot与springcloud的版本关系导致出现Plugins文件夹spring-boot-maven-plugin插件报红问题的解决方法

如果我们集成springboot与springcloud项目的时候出现Plugins文件夹spring-boot-maven-plugin插件报红问题,那么很可能是因为springboot与springcloud的版本对应关系出问题。一开始我的项目依赖换件是springboot2.5.6版本,springcloud版本为2020.0.4,然后就出现以上的问题。解决方法是将springboot的版本改为2.5.1,springcloud的版本保持为2020.0.4,然后就可以解决!...

2021-11-12 11:53:19 940

转载 Java8新特性-Optional

一、简介Optional类是Java8为了解决null值判断问题,借鉴google guava类库的Optional类而引入的一个同名Optional类,使用Optional类可以避免显式的null值判断(null的防御性检查),避免null导致的NPE(NullPointerException)。我们来看一段代码: public static String getGender(Student student) { if(null == student)

2021-10-23 23:41:00 237

原创 彻底搞懂深拷贝和浅拷贝

深拷贝和浅拷贝只对引用数据类型而言的!,基本数据类型不存在深浅拷贝浅拷贝如果被拷贝对象的成员变量为基本数据类型,那么浅拷贝将会进行值传递,赋值给新对象的成员变量,两者互不关联。如果被拷贝对象的成员变量是引用数据类型,那么浅拷贝只会将该变量的地址赋值给新对象的成员变量,它们指向同一空间深拷贝如果被拷贝对象的成员变量为引用数据类型时,深拷贝将会为新对象的成员变量开辟新的内存空间,新旧对象的成员变量指向不同的内存空间上代码测试浅拷贝:成员变量为基本数据类型Father类需要实现Clon

2021-10-21 11:11:02 1185

转载 SQL语句编写经典50题

参考链接:面试 SQL整理 常见的SQL面试题:经典50题-- 模糊查询:查询学生中名字带“猴”的名字SELECT * FROM student WHERE 姓名 LIKE '%猴%'-- 汇总统计分析========================================-- 汇总统计分析:查询课程编号为“0002”的总成绩SELECT SUM(成绩) FROM score WHERE 课程号='0002'-- 汇总统计分析:查询选了课程的学生人数SELECT COUNT(DIS

2021-10-17 23:06:29 600

原创 Spring相关面试题

1. Mybatis插件的运行原理2. Mybatis的优缺点3. spring、springmvc和springboot的区别4. springboot的自动配置原理5. spring的单例bean是线程安全吗?如何保障安全?

2021-10-05 10:50:53 45

原创 java程序员面试笔试宝典

第一章、面试官箴言基本功扎实;强烈的求知欲,对未知领域比较感兴趣,能够接受新事物,对某个领域有深入研究刚入职时,最好能够放低姿态,当将军的人,都是从小兵做起的每一场面试,看似一场简单的聊天,但是在沟通的过程中,从求职者的态度、穿着、眼神、沟通,或多或少能够了解求职者的性格,处事态度,表达能力,沟通能力,团队合作能力对于技术的积累,要“求精不求全”,但知识的覆盖面广就越好,能够对整个行业有一定得到把握认识...

2021-09-25 21:41:27 363

原创 Spring面试题

1. 说说你对Spring的理解Spring是一个开源框架,主要是为简化企业级应用开发而生。可以实现EJB可以实现的功能,Spring是一个IOC和AOP容器框架。♧ 控制反转(IOC):Spring容器使用了工厂模式为我们创建了所需要的对象,我们使用时不需要自己去创建,直接调用Spring为我们提供的对象即可,这就是控制反转的思想。♧ 依赖注入(DI):Spring使用Java Bean对象的Set方法或者带参数的构造方法为我们在创建所需对象时将其属性自动设置所需要的值的过程就是依赖注入的基

2021-09-25 21:40:50 64

原创 实战Java程序设计易忘知识点

一、数据类型和运算符1.1 成员变量(实例变量)的默认初始值数据类型初始值int0char‘\u0000’double0.0booleanfalse1.2 基本数据类型数值型:byte(1)、short(2)、int(4)、long(8)、float(4)、double(8)字符型:char(2)布尔型:boolean(1)...

2021-09-19 09:15:33 427

转载 MySQL中varchar最大长度是多少?

MySQL中varchar最大长度是多少?

2021-09-16 18:26:59 124

原创 git配置以及使用教程

1、安装之后的基本配置我们知道,项目可以在GitHub、Coding、Gitee上拉取提交,当我们从不同的网站上拉取项目时,需要不同的配置,下面的方法是针对GitHub的设置用户名git config -- global user.name '注册的用户名';设置用户邮箱git config -- global user.email '注册的邮箱';注意:这两个配置会在github主页上显示谁提交了该文件。查看配置是否成功git config --list2、

2021-09-13 22:31:23 1929

原创 MySQL15-只查一行数据却执行很慢

1、先编写表结构和数据mysql> CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB;delimiter ;;create procedure idata()begin declare i int; set i=1; while(i<=100000)do insert into t values(i,

2021-08-29 21:49:26 396

原创 MySQL14-为什么SQL语句逻辑相同,性能却差异巨大?

案例一:条件字段函数操作不要对字段进行函数计算操作。比如下面的就不行select * from tradelog where id + 1 = 10000;select count(*) from tradelog where month(t_modified)=7;为什么不能对条件字段做计算?–>无法用到B+树的快速定位能力因为如果对字段做了函数计算, 就用不上索引了, 这是MySQL的规定。而我们上面的id和t_modified都有索引,但是显然我们都对它们进行了操作,这样就无法用到B

2021-08-29 21:02:03 237

原创 MySQL13-order by是怎么工作的

假设部分表定义:CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), KEY `city` (`city`)) ENGINE=InnoDB;假设按照下面的sql查询并排序。

2021-08-25 17:21:27 74

原创 MySQL12-count(x)这么慢,我该怎么办

在不同的MySQL引擎中, count(*)有不同的实现方式。MyISAM引擎把一个表的总行数存在了磁盘上, 因此执行count()的时候会直接返回这个数,*效率很高;如果加了where 条件的话, MyISAM表也是不能返回得这么快的。而InnoDB引擎就麻烦了, 它执行count(*)的时候, 需要把数据一行一行地从引擎里面读出来, 然后累积计数。为什么InnoDB不跟MyISAM一样, 也把数字存起来呢?这是因为即使是在同一个时刻的多个查询, 由于多版本并发控制(MVCC) 的原因, In

2021-08-25 09:22:21 126

原创 MySQL11- 为什么表数据删掉一半,表文件大小不变?

为何删除数据文件大小不变解答一个InnoDB表包含两部分, 即: 表结构定义和数据。 在MySQL 8.0版本以前, 表结构是存在以.frm为后缀的文件里。 而MySQL 8.0版本, 则已经允许把表结构定义放在系统数据表中了。接下来, 先说明为什么简单地删除表数据达不到表空间回收的效果, 然后再和你介绍正确回收空间的方法。表数据既可以存在共享表空间里, 也可以是单独的文件。 这个行为是由参数innodb_file_per_table控制的:这个参数设置为OFF表示的是, 表的数据放在系统共享表空

2021-08-24 23:29:00 258

MYSQL文件.zip

mysql经典编写50题

2021-10-17

空空如也

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

TA关注的人

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