自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试官:如何优化索引

大家好,我是🐟老师,今天我们一起来讨论一下如何优化索引。文章阅读时长约15分钟。在讨论优化索引前,我们应该先了解一下数据库中索引的类型,怎么样选择索引,索引的成本代价有那些,如何权衡性能和成本,索引内部存在的一些优化操作,到最后索引的最佳优化实践等。关于索引分类的问题,一直让我们很头疼,因为索引根据不同的维度,有很多种不同繁杂的说法。如果我们不懂这些繁杂的说法,那么在面试的时候不知道面试官在说什么,有可能会一脸懵逼。从数据结构角度:从物理存储角度:聚集索引/聚簇索引:数据文件和索引文件存储在一个文件

2023-03-20 11:30:33 496

原创 别告诉我,你还不懂索引

索引,B+树,mysql

2023-03-02 10:14:51 214

原创 rocketMQ

rocketMQ

2023-01-29 16:19:28 626

原创 rabbitmq

rabbitmq

2023-01-29 16:18:08 763

原创 elasticsearch

elasticsearch

2023-01-29 16:16:48 434

原创 mongoDB

mongodb笔记

2023-01-29 16:14:35 1265

原创 Redis

redis相关内容总结

2023-01-29 16:02:13 614

原创 SELECT list is not in GROUP BY clause and contains nonaggregated column&&Job for mysqld.service fail

解决使用group by出现的问题

2022-12-02 14:12:22 1809

原创 17.1-17.4 TCP/IP_传输协议控制

1.TCP的服务数据:应用层 -》 运输层 -》 网络层 -》链路层尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。 TCP提供一种面向连接的、可靠的字节流服务。面向连接???面向连接意味着两个使用 TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个 TCP连接。TCP通过什么方式来保证数据的可靠性???1.数据切分 --> 数据发送阶段应用数据被分割成TCP认为最适合发送的数据块。这和 U...

2021-09-06 16:41:09 179

原创 1.5 1.6 TCP/IP_域名系统与封装

如何访问别人的主机??一般通过对应的IP地址+端口号,访问主机内的对应应用程序。 IP地址映射为主机地址,端口号则映射为主机内的某个应用程序。举个栗子:当我们处于同一个局域网内的两台主机172.18.5.108,172.18.5.126,在172.18.5.108有个mysql服务端口号3306,那么我们可以在172.18.5.126通过浏览器输入172.18.5.108:3306访问mysql服务!!!通过这个我们可以访问到同一个局域网内的设备,...

2021-09-04 11:43:22 135

原创 1.4 TCP/IP_互联网的地址

关于IP地址???互联网上的每个接口必须有一个唯一的 Internet地址(也称作IP地址)在计算机中用二进制,32位二进制,也就是四个十进制,在我们编写IP的时候,每个整数标识一个字节,我们称为点分十进制表示法。在互联网的ip地址中有五类互联网的地址格式,区分各类地址最简单的方法就是查看它第一个十进制整数。(前缀地址(各类地址固定) + 网络号 +主机号)那么多个接口需要多个IP地址,而IP地址又是唯一的,那么要如何分配呢???因此有一个管理机构为接入互联网...

2021-09-04 11:39:28 142

原创 1.2 TCP/IP_TCP/IP的分层

关于TCP/IP协议的分层???TCP/IP分为四层结构,而每个结构包含了多种协议-TCP,UDP是运输层协议,他们使用的都是网络层协议都是IP协议-UDP主要作为应用程序发送和接收数据报。一个数据报指的是从发送方传输到接收方的一个信息单元。然而一个信息单元没有固定的大小,是双方约定的指发送方指定的一定字节的信息。-TCP可靠,UDP不可靠,它不能保证每组的数据通过端系统和每个中间路由器中的IP层在互联网中进行传输。 在网络层包含了三个协议:ICMP,IP,IGMP...

2021-09-03 17:33:33 99

原创 1.2 TCP/IP_分层

关于TCP/IP的分层,以及各层的作用???TCP/IP是一个协议族,也就是一组不同层次上的多个协议的组成 被划分为四层:应用层,运输层,网络层,链路层。链路层:用于处理当前应用设备对应其他第三方设备的物理接口,进行数据的链路传输网络层:主要用用于处理分组在网络中的活动(例如分组的选路......),类似网络的路由选择运输层:对讲应用程序上报的数据进行分发给网络层应用层:处理特定的应用程序细节(指的是某种应用...

2021-09-03 17:22:32 128

原创 1.1 TCP/IP_引言

为什么需要TCP/IP ?因为不同的操作系统,不像一台电脑中的程序可以直接进行数据的传输。 他们需要通过网络进行通信。通过网络中某种约定好的数据传输格式(其实也就是通信协议)。 而TCP/IP则这个协议族进行了封装则允许它们进行通信!!!什么是TCP/IP,以及由来?首先TCP/IP是一个协议族(也就是多个协议组成),原本是一个分组交换的网络研究项目。后来发展迅速,成为一个开发的系统(协议族可以不用花钱或者花很少钱就可以得到)。当这个使用广泛后,也被称为“全球互联网”或“因...

2021-09-03 17:17:40 111

原创 关于子网掩码

10.10.10.1/24 和 10.10.10.1/25 ???10.10.10.1/24 为子网掩码为24位的ip地址 10.10.10.1/25为子网掩码为25位的ip地址1. 那么什么是子网掩码呢?掩码:顾明之意就是将部分"码"进行掩盖,1表示掩盖 0:露出2. IPV4的ip地址有四个十进制,4*8=32个二进制,而在计算机进行计算的时候会转成二进制。10.10.10.1 的ip地址为:10101010.10101010.10101010.00000001子网掩码为..

2021-07-29 15:48:11 5465

原创 关于如何解决拨号上网开启电脑wifi?

当我们拉网线的时候,会分配一个账号密码。我们只需要打开对应的面板,打开拨号,输入账号密码给宽带连接即可可是当我们点击热点的时候,却无法启动那该如何解决呢?1.首先用自己的手机开一个热点,给电脑连接,然后使用电脑开启热点此时,我们会发现多了一个本地连接102.设置宽带连接为共享,选择自己电脑的wifi(本地连接10),可以供外界使用3.最后在重新拨号,启动宽带连接就可以了!!!4.享受wifi带来的喜悦...

2021-06-24 23:29:25 4312 2

原创 Restful

RestfulAPI编程式接口:导入对应的jar包,使用对应的类接口,例如HuTool网络式接口:服务器上的接口传统开发模式和前后端分离模式传统开发模式:前后端分离模式:Restful风格restful的增删改查/** * @RestController: @Controller 和 @ResponseBody结合体 * */@RestController@RequestMapping("/employees")public class EmployeeControlle

2021-04-29 17:14:24 199

原创 Git学习

Git为什么使用Git以及Git是什么?在团队开发中,会遇到很多问题。备份代码还原协同修改多版本项目文件管理追溯问题代码的编写人和编写的时间权限控制git是一个分布式版本控制系统,它解决了以上问题。集中式版本控制系统VS分布式版本控制系统集中式版本控制版本库中央服务器,各个程序开发员从中央服务器中拿取资源,然后进行编写,后上传到服务器,需要联网不利于各个程序员之间进行版本的交互,交流分布式版本管理系统在这个版本管理系统中,不需要中央服务器,每个人的电脑都是版本库,这样就不

2021-04-29 17:13:02 138

原创 SpringBoot自动装配原理解析

SpringBoot原理解析相比于ssm的配置,需要配置繁重的xml文件,非常麻烦。相对比于ssm而言SpringBoot的开箱即用,非常的方便。SpringBoot如何做到开箱即用的呢?从pom文件开始我们发现每个SpringBoot项目都有一个父依赖,按住ctrl+鼠标点击进去看看<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo

2021-04-29 17:07:39 145

原创 SpringBoot学习

SpringBootDay011.1 什么是springBoot?springBoot是一个能够让我们快速搭建庞大的spring项目,尽可能减少xml的配置,做到开箱即用,让我们关注业务而不是配置1.2 javaConfig配置Ioc普通的配置(使用@Bean)定义两个Bean@Setter@Getter public SomeBean() { System.out.println("SomeBean被创建"); } public void init() { Syste

2021-04-29 17:06:19 112

原创 面试知识点

java线程模型关于线程的理解关于多线程并发:并发不一定依赖多线程(如php中很常见的多进程并发),但是在java中谈并发大多数和线程拖不了关系线程和进程:线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的分配资源和执行调度分开,各个线程既可以共享资源(内存地址,文件io等),又可以独立调度(线程是cpu调度的基本单位)线程与操作系统:主流的操作系统都提供了线程实现,Java语言则提供了在不同硬件和操作系统平台下对线程操作的统一处理,每个已经执行start()且还未结束

2021-04-29 17:02:19 151

原创 设计模式学习终章

GOF工厂模式简单工厂一个抽象产品类派生出多个具体的产品类,但是一个工厂就生产了全部的产品简单工厂在创建对象的时候不需要具体的逻辑,只要用户的一个标识就可以获取对应的产品。例子:图形,圆形,矩形,工厂优点:每次增加一个产品类只需要增加一个实现类即可(实现产品接口缺点:如果添加一个产品类,那么我们就需要在工厂类中添加对应的代码(违反开闭原则)工厂方法有一个抽象工厂派生出多个具体的工厂,每个工厂生产一件具体的产品每个具体的产品类都有一个具体的工厂类生产优点:易于扩展,如果需要

2021-04-29 16:53:25 130

原创 数据库索引(详细)

索引对于索引的理解二叉树的索引结构:key存放索引字段, value放索引字段所在行的磁盘地址的文件指针当执行sql语句时,会去找当前的字段是否建立了索引文件,如果拿取字段的值根据搜索方法(遍历)去索引结构找到对应的key,如果相等,则根据value磁盘地址的文件指针去找到对应的数据文件。而不需要进行全表扫描查询这样效率很低使用二叉树(缺点:单边增长)根据主键索引字段插入,使用二叉树会变成线性链表,跟表的轮询一样没区别,某些特定场景(单边增长,)效率太低使用红黑树(数据多,元素在叶子

2021-04-29 16:50:42 1427

原创 jvm调优

JVM调优1.关于程序的运行字节码文件可以一份运行,到处执行,不过得在不同的操作系统上安装不同版本的jdk即可程序的运行:先通过java文件经过javac的指令编译成class文件class文件加载在JVM里面,会先进行类装载子系统,然后将相关信息存储到JVM运行时数据区当执行程序的时候,会进行执行引擎去执行相关操作2.关于虚拟机栈理解(详细)虚拟机栈由一个个的栈帧组成,每个栈帧由局部变量表,操作数栈,动态链接,出口方法信息组成。栈:数据结构,先进后出,FILO,方法执行完,就出栈

2021-04-29 16:43:46 59

原创 线程池原理理解

线程池原理参考b站图灵诸葛老师1.关于run和start方法我们通过打断点,可以发现run是方法级别的调用,start是线程级别的调用(调用时会多开一个线程进行执行run方法)2.线程池原理解析2.1 对比线程和线程池的创建执行我们对比普通线程创建的方法,和使用线程池创建的方法,我们发现后者比前者快了很多!!!分库分表,分布式事务都会用到线程池普通线程创建执行:线程池的创建执行:2.2 比较三种核心线程池的创建速度newCached > newFix >

2021-04-29 16:31:56 208

原创 redis分布式锁原理以及方案

Redis分布式锁关于分布式锁关于分布式锁,一般有三种选择,1、redis2、zk3、DB锁(悲观锁、乐观锁)​ 乐观锁加版本号,悲观锁加for update超卖问题演变1.使用同步代码块,使用多个服务器集群,就不行了使用nginx做负载均衡2.使用redis的setnx)]问题:进行执行代码块的时候,会导致出现异常,然后无法删除key,导致之后的线程一致无法进行抢购解决办法;使用finally,防止死锁出现宕机解决办法:给key设置过期时间​

2021-04-29 16:12:19 404

原创 框架阶段学习

框架阶段学习内容总结: mysql加强,maven,Mybatis加强,springioc,di,aop,SpringMvc,jQueryday01 MYSQL加强!1.1 数据库的三范式1.1.1 什么是数据库的三范式呢?第一范式(1NF):一个列中只能存储一个值,也就是不能有多个值第二范式(2NF):数据库中的每个实例或者行必须被唯一的区分(也就是要有主键)第三范式(3NF):数据库中的表的外键不能包含其他表的非主键信息由于当我们需要进行修改dept类的某个部门名称时,user类相关联

2021-04-29 15:28:38 432

原创 第二阶段-javaweb

第二阶段-javaweb第二阶段学习内容:单元测试,xml文件操作,数据库,jdbc,反射与内省,mybatis基础,HTML,JavaScript,通信协议与Tomcat服务器,HTTP协议与Servlet,转发_重定向 && 数据共享 _EL _JSTL,WEB_CRUD,Cookie_Session会话跟踪技术,文件的上传和下载 三层结构 (实现登录后的头像和用户名显示,以及上传头像),分页 分页过滤_高级查询 ,用户注销_ 记住账号_验证码 , 过滤器_监听器,点击

2021-04-29 13:14:55 774

原创 简单工厂模式,工厂方法模式----工厂模式

工厂模式作用核心本质详细分类关于简单工厂的学习关于工厂方法的学习作用实现了创建者和使用者的分离核心本质实例化对象不使用new,使用工厂方法代替将选择实现类,创建对象统一管理和控制,从而将调用者跟我们实现的类解耦详细分类简单工厂模式:用来生成同一等级结构中的任意产品(对于增加的新产品,需要覆盖已有代码)工厂方法模式:用来生产同一等级结构中的固定产品(支持增加任意产品)抽象工厂模式:围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂关于简单工厂的学习Car接口

2021-03-20 22:04:09 113 1

原创 关于设计模式

关于设计模式什么设计模式?设计模式本质?为什么要学习设计模式? 学习设计模式有什么好处呢?:有哪些设计模式呢?oop七大原则什么设计模式?设计模式是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码的可复用性,可维护性,可读性,稳健性以及安全性的解决方案。设计模式本质?面向对象设计原则的实际运用,是对类的封装性,继承性和多态性以及类的关联关系和组合关系的充分理解。为什么要学习设计模式? 学习设计模式有什么好处呢?:提高程序员的思维能力,编程

2021-03-17 23:08:39 115

原创 关于微软Window10的one Note打印pdf失败

2021-03-15 09:14:48 2617

原创 ArrayList并发修改异常(forEach遍历,只能删除倒数第二个???)

ArrayList并发修改异常(forEach遍历,只能删除倒数第二个???)

2021-03-13 21:54:29 944 7

原创 day20结业练习 -> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)

java基础总结java基础Ended-------补充一个综合练习(个人所写供参考学习)在开发中使用比较多的还是字节和字符流的读写操作,务必要非常熟练,再体会一下六字箴言(读进来,写出去),到底有何深意。综合练习题:做一个统计代码行数的程序,扫描一个目录能统计出该目录中包括所有子目录中所有Java文件的行数,不统计空行。public class totalJava { public static int Total = 0; //总共多少行 public static in

2020-08-09 12:59:06 249

原创 day18 IO流01 File类 字符编码 IO流操作(四大基流,字节流,字符流)-> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)

java基础总结day18 IO流01 File类 字符编码 IO流操作(四大基流,字节流,字符流)File类​ File课理解为文件和文件夹(目录),用于表示磁盘中某个文件或文件夹的路径。该类包含了文件的创建、删除、重命名、判断是否存在等方法。​ Windows: 默认情况下是不区分大小写的,使用”\”来分割目录路径。但是在Java中一个”\”表示转义,所以在Windows系统中就得使用两个”\\”。操作File常见方法:String getName():获取文件名称

2020-08-09 12:52:56 302 2

原创 day19 IO流02 文件拷贝,缓冲流,对象序列化,打印流 -> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)

java基础总结day19 IO流02 文件拷贝,缓冲流,对象序列化,打印流文件拷贝字节流的文件拷贝操作如下; (字符流也一样)public static void main(String[] args) { File file = new File("src\\io流2\\File\\1.txt"); File file2 = new File("src\\io流2\\File\\3.txt"); FileInputStream fileInputStream

2020-08-09 10:23:53 169

原创 day11 常用类01 工具类,单例模式,包装类,缓存设计,BigDecimal,String,String家族 -> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)

java基础总结day11 常用类01 工具类,单例模式,包装类,缓存设计,BigDecimal,String,String家族1.工具类​ 定义:把很多完成通用功能的方法分类存放到类中,这些类就叫工具类。工具类如何设计,在开发中有两种设计:如果工具方法全部使用public static修饰 (模式一)此时只需要使用工具类名调用工具方法此时必须把工具类的构造器私有化,防止创建工具类的对象来调用静态方法如果工具方法没有使用static修饰此时必须使用工具类的对象去

2020-08-09 09:42:37 173

原创 day17 集合02 集合元素的迭代,并发修改异常,set,map,集合框架工具类 -> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)

java基础总结day17 集合02 集合元素的迭代,并发修改异常,set,map,集合框架工具类集合元素的迭代(三种方式) //作业目的:掌握List迭代的三种方式 1. //for循环 List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.

2020-08-09 09:41:26 263

原创 day16 集合01(ArrayList,LinkedList -> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)

java基础总结day16 集合01(ArrayList,LinkedList)1.使用数组模拟ArrayList底层​ 假设我现在是某个篮球队的教练,需要安排5个球员上场打球。此时需要模拟上场球员的存储,简单一点,我们就只存储上场球员的球衣号码。那么此时我需要以下几个操作:1.初始一个容量为5的容器,用来存储场上的5个球衣号码。2.安排5个球员上场,比如球员号码分别为11、22、33、44、55。3.查询指定索引位置球员的球衣号码是多少,如查询索引位置为2的球衣号码是33。4.替换场上索

2020-08-09 09:34:09 253

原创 day15 :线程 -> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)

java基础总结day15 线程1.关于进程与线程的理解进程:是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程线程:是指进程中的一个执行任务(控制单元),一个进程中可以运行多个线程,多个线程可共享数据。主线程 main(了解)在运行一个简单的Java程序的时候,就已经存在了两个线程,一个是主线程,一个是后台线程——维护的垃圾回收。主线程很特殊,在启动JVM的时候自动启动的。2.线程的创建和启动(两种方式)以及优缺点对比1.继承Thread类cl

2020-08-09 09:29:07 177

原创 day14 异常(try-catch,finally,throws,throw,自定义异常类)-> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)

java基础总结day14 异常(try-catch,finally,throws,throw,自定义异常类)对异常的理解异常的继承体系1.try-catch​ try-catch用来进行异常的捕获与处理​ 看需求可以一个try多个catch,具体问题具体分析​ 最好不要用一个Exception来代替其他异常,不要全部病都一个药来治try{ //可能出现异常的代码}catch(要捕获的异常类型 变量){ //有要捕获的异常的时候执行这里的代码

2020-08-09 09:23:49 134

空空如也

空空如也

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

TA关注的人

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