自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL索引篇

MySQL索引

2023-02-13 01:26:40 246

原创 MySQL事务篇

MySQL事务

2023-02-03 15:55:52 336

原创 【无标题】

Maven里面花里胡哨的东西

2024-03-13 16:49:21 978

原创 鸡肋的Git

鸡肋的Git

2024-03-08 23:31:51 729

原创 频繁Full Gc原因

系统承载高并发请求,或者处理数据量过大,导致Young GC很贫乏,而且每次Young GC过后存活对象太多,内存分配不合理,Survivor区过小,导致对象频繁进入老年代,频繁触发Full GC。系统一次性加载过多数据进内存,搞出来很多大对象,导致频繁有大对象进入老年带,必然频繁触发Full GC。系统发生了内存泄漏,莫名其妙创建大量的对象,始终无法回收,一直占用在老年代里,必然频繁触发Full GC。Metaspace(永久代)因为加载类过多触发Full GC。

2023-05-18 01:41:00 2863

原创 常见的设计模式

常见的设计模式

2023-03-23 03:00:32 287

原创 MySQL三大日志

MySQL三大日志包括:undolog,redo log,binlog,它们分别有以下作用:undolog:是生成的日志。用于事务的,保证了事务的。redo log:是生成的日志。用于数据,保证了事务的。binlog:是生成的日志。用于等。

2023-01-27 00:33:26 5711 4

原创 各种树的总结

B树,B+树,AVL树,红黑树

2023-01-11 01:04:53 284

原创 图解TCP/IP总结

TCP拥塞避免系列

2022-12-31 23:31:10 295

原创 ConcurrentHashMap

为什么要用ConcurrentHashMap?

2022-11-15 01:21:45 172

原创 数据结构与算法------动态规划

动态规划

2022-10-08 22:21:34 207

原创 数据结构与算法------回溯算法

回溯

2022-08-29 13:14:31 420

原创 数据结构与算法------二叉树

二叉树

2022-08-14 00:53:05 194

原创 数据结构与算法------栈和队列

栈和队列

2022-07-27 00:54:03 163

原创 数据结构与算法------字符串

字符串 KMP

2022-07-22 01:12:36 205

原创 数据结构与算法------哈希表

哈希表

2022-07-18 00:39:38 403

原创 数据结构与算法------数组

本文章将分为数据结构和算法两个部分,将会把数据结构与算法整体内容梳理一遍,题目来源leetcode,结合了许多人的不同解法,旨在让学习者通透同时也巩固自己的算法基础。

2022-07-06 00:25:16 378

原创 令人头痛的延时双删

经常看到一个问题redis和mysql数据同步方式有几种,哪种更适用,个人感觉虽然不难,但是有时候绕不明白,所以做了写总结,并且使用图解的方式通俗易懂。redis和mysql数据同步有五种情况:1.更新数据库,更新缓存2.更新缓存,更新数据库3.删除缓存,更新数据库4.更新数据库,删除缓存5.删除缓存,更新数据库,延时删除缓存1.更新数据库,更新缓存图中的场景是有一台mysql和redis数据库初始值都是10,用户1(上面的用户)此时进行了更新操作,把num改..

2022-06-30 03:05:01 1527

原创 Spring Cloud

一.什么是Spring CloudSpring Cloud是微服务架构一站式解决方案,在平时构建项目时需要用到服务发现注册,负载均衡,断路器,数据监控,配置中心,消息总线等操作,而 Spring Cloud 为我们提供了一套简易的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务项目的构建。二.Spring Cloud 的服务发现框架——Eureka总的来说,Eureka 就是一个服务发现框架。何为服务,何又为发现呢?举一个生活中的例子,就比如我们平时租房子找中介的事情。

2022-06-23 22:43:47 1058

原创 Kafka

一.Kafka 是什么?主要应用场景有哪些?Kafka是一种高吞吐量的分布式发布订阅消息系统。主要运用场景:1. 消息队列 :建立实时流数据管道,以可靠地在系统或应用程序之间获取数据。2. 数据处理: 构建实时的流数据处理程序来转换或处理数据流。二.和其他消息队列相比,Kafka的优势在哪里?1. 极致的性能 :基于 Scala 和 Java 语言开发,设计中大量使用了批量处理和异步的思想,最高可以每秒处理千万级别的消息。2. 生态系统兼容性无可匹敌 :Kafka 与周边生态

2022-06-11 23:41:59 252

原创 Java系统设计

一.认证和授权认证:简单来说认证就是对用户信息(用户名和密码)的校验授权:发生在用户认证之后,掌管我们访问系统的权限,比如说某些特定的资源只有特定权限的人能够访问比如admin,授权之后才能增,删,改,查的操作。二.什么是Cookie?Cookie的作用是什么?Cookie是用来跟踪浏览器用户身份的会话方式,也可以说用来跟踪用户的状态,cookie中存放了用户的信息,它可运用在这几个方面:1.平时我们登录账号记住密码之后下次登录可以自动登录,因为第一次登录保存了用户信息。2.Cook

2022-06-10 02:28:00 1156

原创 SpringBoot

一.为什么要有 SpringBoot(SpringBoot的优点)在Spring开发过程中,需要配置很多Spring框架的依赖以及各种各样的XML文件,而使用SpringBoot不用关心过程,它提供默认配置,可以快速搭建,开发和运行Spring应用...

2022-05-28 03:35:14 464

原创 SVM------n倍交叉验证法

一.概述1.N交叉验证有两个用途:模型评估、模型选择。2.N折.交叉只是一种划分数据集的策略。想知道它的优势,可以拿它和传统划分数据集的方式进行比较。它可以避免固定划分数据集的局限性、特殊性,这个优势在小规模数据集上更明显。3.把这种策略用于划分训练集和测试集,就可以进行模型评估;把这种策略用于划分训练集和验证集,就可以进行模型选择。4.不用N折交叉验证就不能进行模型评估和模型选择了吗?当然不是。只要有测试集,就能进行模型评估;只要有验证集,就能进行模型选择。所以N折交叉验证只是在做这两件.

2022-04-23 00:41:44 2854 4

原创 MySQL优化------Explain执行计划

使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序列号,包含一组数字,表示查询中执行sel...

2022-04-22 23:37:50 100

原创 框架的灵魂------反射

反射之所以被称为框架的灵魂,是因为它赋予了我们在运行时分析类以及执行类中方法的能力。通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性。一.反射的应用场景?像 Spring/Spring Boot、MyBatis 等等框架中都大量使用了反射机制。这些框架中也大量使用了动态代理,而动态代理的实现也依赖反射。1.加载数据库驱动//1.DriverManagerDriverManager.registerDriver(new com.mysql.cj.jdbc.D

2022-04-17 20:22:58 1894 1

原创 MyBatis

一.#{}和${}的区别${}是Properties文件中的变量占位符,属于静态文本替换,它可以用于标签属性值和sql内部,比如${driver}会被静态替换为com.mysql.jdbc.Driver#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement 的参数设置方法,按序给sql的?号占位符设置参数值二.Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签<

2022-04-07 01:27:13 454

原创 Spring

一.什么是 Spring 框架?Spring是一种轻量级的Java开发框架,其核心是IOC(控制反转)和AOP(面向切面编程)那么我将逐一分析“轻量级”“框架”“IOC”“AOP”的含义。轻量级:对于Spring其大小和开销而言是轻量的框架:Spring把很多组件如Strus和Hibernate组合起来,使得开发大大简化IOC:管理着javabean对象的配置和生命周期,依赖注解,把创建对象的控制权交由IOC容器管理AOP:把一些与业务逻辑无关的系统服务(日志,事务,认证)进行了封装

2022-03-21 18:39:10 393 1

原创 Redis

一.什么是redisRedis是一种key-value非关系型数据库,它的数据存储在内存中,读写速度非常快,具有丰富的数据结构,通过访问内存的方式使得CPU和数据库压力大大减小。Redis除了做缓存之外,Redis也经常用来做分布式锁。Redis还支持事务 、持久化、Lua脚本、多种集群方案。二.Redis和Memcached的区别和共同点1. Redis支持更丰富的数据类型(支持更复杂的应用场景)。Redis 不仅仅支持简单的 k/v 类型的数据,同时还提供list,set,zset,hash

2022-03-12 19:03:12 542

原创 MySQL

一.MyISAM和InnoDB区别

2022-03-08 03:11:40 114

原创 计算机基础------操作系统

一.什么是操作系统1)管理计算机软件和硬件资源的程序,是计算机的基石2)本质是运行在计算机上的应用程序,运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。3)操作系统屏蔽了硬件的复杂性4)操作系统的内核是操作系统的核心部分,它负责系统的内存管理,硬件设备管理,文件系统的管理以及应用程序的管理。内核是连接应用程序和硬件的桥梁,决定这操作系统的稳定性。二.系统调用根据进程访问资源的特点,我们可以把进程在系统上的运行分为两个级别:1. 用户态(user mo

2022-03-04 01:48:37 851

原创 计算机基础------计算机网络

一.OSI与TCP/IP各层的结构与功能,都有哪些协议?数据传输过程数据封装过程解封装过程二.TCP 三次握手和四次挥手

2022-02-27 19:24:53 5186 2

原创 JVM------探索内部机理

一.JVM内存模型JVM内存模型包括:类加载子系统,运行时数据,执行引擎。JVM主要分析运行时数据,它包括方法区,堆,虚拟机栈,程序计数器,本地方法栈。程序计数器(线程私有):作用:记录下一条jvm指令的执行地址。程序计数器简单来说就是来给我们记录我们程序执行到第几行。特点:它是线程私有的;不会出现内存溢出虚拟机栈(线程私有):每个线程运行时所需要的内存,称为虚拟机栈每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧,对应着当前

2022-02-24 02:56:53 657

原创 多线程总结

什么是线程什么是进程在上一篇已经提到,不在赘述1.请简要描述线程与进程的关系,区别及优缺点?从JVM的角度来理解JVM就是一个进程,而里面的main就是主线程。可以从图中看出,一个进程包含多个线程,线程共享区域有堆和方法区(1.8以后叫元空间),线程私有区域有虚拟机栈,本地方法栈,程序计数器。进程和线程最大的区别就是进程之间相互独立不会影响,可以共享内存资源,而线程之间有自己共享区和私有区域,会相互影响,但是线程的优点就是开销小,线程就是轻量级的进程。...

2022-02-18 03:10:48 1209 1

原创 Java集合

1.谈谈List,Set,Map的区别?List:存储的元素有序,可重复Set:存储的元素无序,不可重复Map:采用key-value键值对来存储元素,key无序,不可重复;value无序,可重复2.ArrayList和LinkedList的区别?ArrayList底层是数组,Linkedlist底层是双向链表1)线程安全的角度:两者都是不同步的,所以线程不安全2)插入和删除的角度:①ArrayList:头插法和删除时间复杂度为O(n),因为把元素放入第一个位置时后面的元素索

2022-02-14 15:57:52 568

原创 Java基础

1.面向对象和面向过程的区别?面向过程:面向过程的性能高于面向对象,因为面向对象类的实例化和调用都需要很大的开销,如果考虑开销方面,面向过程适用与单片机,嵌入式开发等环境。面向对象:面向对象具有易于维护,易于扩展,易于复用的特点,具有封装,继承,多态的特性,能够设计出低耦合且灵活的系统2.Java语言的特点?1)面向对象,具有封装,继承,多态的特性2)跨平台3)支持多线程4)支持网络编程5)编译与解释共存3.JVM,JDK,JRE之间的关系JVM:Java虚拟机,

2022-02-11 21:18:28 604

原创 SSM开发步骤

SSM开发 快速入门 xml配置

2022-01-29 16:57:31 8414

原创 专题---JVM类加载机制

1.类加载的七个阶段2.初始化的顺序3.继承时初始化的顺序4.有哪些类加载器以及各自加载的文件5.双亲委派的过程6.双亲委派的破坏1.类加载的七个阶段什么是类加载?在前面的JVM中可以知道JVM的内存模型有类加载子系统,首先写的.java文件使用javac命令编译成.class文件,然后再把.class文件装载到类加载子系统,最后把这个类加载到jvm内存中,这个过程就是类加载过程。值得注意的是,类加载是按需加载,简单来说就是当需要加载的时候加载。类加载分为七个阶段:加载-

2021-12-30 16:40:35 265

原创 JVM理解

1.JVM内存模型2.Stringtable面试题3.垃圾回收(判断GCroot的算法)4.垃圾回收算法5.垃圾收集器6.sychronized优化1.JVM内存模型JVM内存模型包括:类加载子系统,运行时数据,执行引擎。JVM主要分析运行时数据,它包括方法区,堆,虚拟机栈,程序计数器,本地方法栈。程序计数器(线程私有):作用:记录下一条jvm指令的执行地址。程序计数器简单来说就是来给我们记录我们程序执行到第几行。特点:它是线程私有的;不会出现内存溢出虚拟机栈

2021-12-27 03:36:31 312 1

原创 Java并发编程

1.线程和进程2.创建线程的三种方式3.线程的五种(六种运行状态)4.死锁及解决5.线程同步1.线程和进程他们是什么?进程:我们先了解程序这个概念,程序由指令和数据组成,指令会加载到CPU,数据会加载到内存,当指令运行时需要用到磁盘等,当一个程序运行时,磁盘就会将这个程序的代码加载到内存,这时就启动了一个进程。举一些简单的例子:电脑中打开任务管理器,上面的.exe就是一个进程,比如QQ,游戏,音乐。线程:线程就是指令流,将一条一条指令交给CPU执行。区别:根本区别

2021-12-24 18:05:10 514

原创 Redis6的理解

1.NoSQL数据库的简介2.常用五大数据类型1.1 技术发展背景1.1.1技术的分类1、解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN2、解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis3、解决性能的问题:NoSQL、Java线程、Hadoop、Nginx、MQ、ElasticSearch1.1.2 背景互联网最初只需要单点服务器就可以解决用户需求,随着互联网的发展用户

2021-12-20 01:01:06 1095

空空如也

空空如也

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

TA关注的人

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