自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 问答 (12)
  • 收藏
  • 关注

原创 知识总结(4):redis

(3)JSON格式的value:如果value是Java对象,一般以JSON格式存储(仍然是String类型)(2) value类型:字符串、整型、浮点型(数字类型可自增、自减,三种格式底层都是字节数组形式存储)(1)常用五种数据结构:String、List链表、Set集合、Hash、Zset有序集合。(1)应用场景:缓存对象、常规计数、分布式锁、共享session信息。(3)特征:无序、不重复、支持并集、差集、交集等、查找快。

2024-01-14 23:27:14 362

原创 知识总结(3):并发编程

AQS:java实现的悲观锁,需要手动开启、关闭ReentrantLock 阻塞式锁实现原理:利用CAS+AQS,支持公平锁、非公平锁(通过构造函数boolean参数决定,不填、false为非公平锁),支持可重入特点:可重入、可中断、可设置公平锁、支持多个条件变量Semaphore 信号量acquire():请求信号量,-1操作,当为负数时会进行阻塞,等待其他线程释放。release():释放信号量,+1操作理解案例:停车场有5个车位,故可以设置信号量为5表示有5个资源。

2024-01-13 23:17:41 882

原创 知识总结(2):集合

线程1和线程2都读取hashMap,且此时hashMap需要扩容,线程1先读取,对其进行扩容,在扩容后的元素迁移过程中,可能被其他线程参与(如线程2),导致元素重复,形成环形链表,造成死循环。将每个HashEntry作为元素放在Segment数组中,当要修改HashEntry时,需要获取到Segment[n]的锁(可重入锁)JDK8中,使用synchronized锁当前链表/红黑树的头节点,放在一个数组中,只要hash不冲突就不会产生并发。删除、中间插入需要进行一次元素复制,消耗性能。默认初始容量(16)

2024-01-12 21:50:34 371

原创 知识总结(1):基础概念

编程是人和计算机交流的方式。我们通过编程告诉计算机某个问题的解决思路、方法、手段,让计算机根据编程指令去完成,解决问题。hashCode():用于获取hash码(int整数),定义在JDK的object类中,java任何的类都有hashCode()函数。当将对象放入hashSet中时,会根据对象的hashCode作为标识进行位置查重等操作,若是发现有相同的,则会调用equals()方法检查对象是否也相同,如若都相同,则将其作为同一对象处理。

2024-01-12 00:11:47 487

原创 redis三大缓存问题

(或者是redis宕机了,所有请求直接向数据库访问,造成雪崩)这种方式存在一定的坏处:若是有大量不存在值的恶意请求访问,会缓存大量的null,造成资源浪费,因此我们要做好监控,防止缓存空间被过多的null占用。在并发请求中,让第一个请求的线程拿到锁并执行数据库查询操作,其他线程阻塞等待,直到第一个线程查询完毕并把数据缓存后,其他线程在缓存中获取数据。布隆过滤器中存储所有可能被访问的key,在有访问请求时,会先过滤掉不合法的请求(key不存在),存在key的请求再进一步去查询缓存、数据库。

2023-04-02 21:07:17 188

原创 一篇文章掌握JVM垃圾回收器

概述相关参数HotSpot虚拟机 :-XX:+UseSerialGC 指定新生代使用Serial GC,同时老年代使用 Serial Old GC总结现今的电脑基本都是多核的,不考虑使用限定单核CPU的收集器。

2023-04-02 01:17:39 158

原创 JVM:Serial 回收器(串行回收)

概述概述。

2023-03-23 00:01:45 191

原创 基于SpringBoot的鸽联网平台介绍

鸽子展示列表页面:显示不同品种的鸽子图片和详细信息,提供筛选和排序功能。鸽子详情页面:展示单个鸽子的详细信息和图片,并提供购买或提交意向的功能。鸽子交易列表页面:显示用户发布的鸽子出售信息,并提供筛选和排序功能。鸽子交易详情页面:展示单个鸽子的交易信息和图片,并提供在线支付功能。帖子详情页面:展示单篇帖子的详细内容和回复信息,并提供发表回复的功能。首页:介绍平台功能、推荐热门鸽子品种、展示最新发布的鸽子信息等。论坛首页页面:提供最新帖子列表和按主题分类的帖子列表。

2023-03-22 17:19:47 234

原创 mybatis-plus分页查询失效

mybatis-plus分页查询失效

2023-03-09 15:12:44 439

原创 Invalid bound statement (not found): com.xxx.dao.UserDao.方法

1.检测properties / yaml 中的mapper配置路径、名称是否正确;错误原因:找不到该路径下的Dao类 / 映射mapper的xml类。3.mapper映射的xml里对Dao的映射路径是否正确。4.mapper文件夹要直接放在resources文件下。2.Dao类是否有加@Mapper注解。

2023-02-19 14:10:10 415

原创 2..Nginx基础配置解析

说明:一种基于HTTP Basic Authentication协议的认证,是一种HTTP性质的认证方法,需要识别用户名和密码,由HTTP标准模块ngx_http_auth_basic_module支持。说明:Nginx通过两种途径控制基本访问权限:其中一种是HTTP标准模块ngx_http_access_module支持,其通过IP来判断客户端是否拥有对Nginx的访问权限。number:默认值为512(不仅是包括和前端用户建立的连接数,还包括所有可能的连接,不能大于操作系统支持打开的最大文件句柄数量)

2023-01-28 00:01:43 219

原创 1.Nginx服务架构

0. 缓存索引重建进程:在Nginx启动一段时间后由主进程生成,在缓存元数据重建完后自动退出,其主要工作是根据磁盘上缓存文件在内存中建立索引元数据库。位置:所有固定模块源码放在编译目录下的src目录中,一共分为core、event、http、mail、misc、os 6个目录。0. 缓存索引管理进程:一般存在于主进程整个生命周期,负责对缓存索引进行管理,其主要功能是更新索引元数据库。> 不中断服务,实现平滑升级,升级失败进行回滚处理。> 接收外界指令:重启、升级、退出服务器等。

2023-01-27 23:52:47 1020

原创 数据库设计范式

范式的优点:有助于消除数据库中的数据冗余,第三范式(3NF)被认为在性能、扩展性和数据完整性达到了最好的平衡;范式的缺点:使用范式可能降低查询的效率,范式等级越高,设计出来的数据表就越多、越细,数据冗余度虽然会降低,但数据查询的代价会增加(多表关联)。

2022-11-22 21:14:00 395

原创 String Table:Java中String类型的存储位置

jdk7把其中的静态变量、运算时常量池中的String Table 放到了堆中 :因为永久代的回收效率很低(full gc时才会触发)而开发中有大量字符串被创建。JDK6中StringTable默认长度1009,如果常量池中字符串过多就会导致效率下降;用new方式创建:先在堆中创建一个实例对象,然后实例对象再去常量池中寻找/创建对应字符串。直接赋值:若是常量池不存在就创建并且str1直接指向常量池对应字符串;String Table是真正存放字符串的地方,通过对象指针调用,

2022-11-18 15:16:53 552

原创 MySQL中的索引

索引是存储引擎用于快速查找的一种帮助SQL高效获取数据的数据结构(类似于指针,如书本的目录一样,用于快速寻找对应的内容),避免了全表扫描:一条条数据查找,直到找到目标。索引是在存储引擎中实现的,存储引擎可以定义每个表的最大索引数和最大索引长度,所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。索引的最主要目的是为了减少磁盘I/O次数,提高查询效率。

2022-11-08 23:01:17 108

原创 MySQL中的数据结构(2):B-Tree的推演(二叉搜索树、AVL树)

B树的英文是Balance Tree,也就是多路平衡查找树,简写为B-Tree。B-Tree 的每个节点都是一个磁盘块,每个磁盘块中包含了关键字和子节点的指针。若是一个磁盘块有x个关键字,那么指针数就有x+1个。如下图所示:B树适用于存储大量的索引:对于一个100阶的B树(每个节点有100个子节点),若有三层就可以存储越100万的索引数据。

2022-11-05 22:13:04 136

原创 Linux设置静态IP

在登录Linux后输入 : vi /etc/sysconfig/network-scripts/ifcfg-ens33然后编辑文本,将其内容改为如下: 然后在后面再补充上:IPADDR=192.168.xx.101NETMASK=255.255.255.0GATEWAY=192.168.xx.xDNS1=8.8.8.8具体的 xx查看虚拟机的网关: 完成以上操作后,再执行指令:systemctl restart network然后执行 ping qq.com ,如果ping通了就说明配置成功了。

2022-11-05 17:15:15 219 1

原创 MySQL中的数据结构(1):Hash结构

Hash算法是通过某种确定的算法(MD5、SHA1、SHA2、SHA3等)将输入进行算法处理后输出,相同的输入永远可以得到相同的输出,但若是输入内容有微小的偏差,输出通常会有不同的结果。采用Hash进行的检索,基本一次就可以找到数据,从效率来说比B+树更快。

2022-11-03 20:39:47 510

原创 MySQL存储引擎(3)

Memory引擎的数据存储在内存中,响应速度快,但若是数据库崩溃会导致数据丢失,并且要求存储的数据为长度不变的格式(Blob、Text等类型的数据不能用:长度不固定)

2022-11-02 20:50:49 213

原创 MySQL存储引擎(2):MyISAM

MyISAM是,提供了全文索引、压缩、空间函数(GIS)等特效,但MyISAM:主要应用于对事物完整性没要求 或者以 SELECT、INSERT 为主的应用;数据统计有额外常数存储:count(*) 查询效率快;

2022-11-01 21:26:06 74

原创 MySQL存储引擎(1):InnoDB

MySQL从3.23.34a开始包含InnoDB存储引擎,在大于等于5.5版本后默认采用InnoDB引擎:InnoDB是MySQL的默认事务型引擎,被设计来处理大量的短期事务,可确保事务的完整性和回滚,除非有特殊需求,否则一般选用InnoDB引擎(特别是更新、删除操作)

2022-11-01 17:02:10 184

原创 InnoDB缓冲池

InnoDB存储引擎是以页为单位来管理存储空间的,我们进行增删查改操作本质上就是在访问页(读页、写页、创建新页等),而页在磁盘上,每次磁盘I/O都需要消耗很多时间,为了提高效率,DBMS会申请占用内存来作为数据缓冲池:在InnoDB处理请求(尽管只有页中的一条数据)时,会将磁盘上完整的页数据缓存到内存中的(后面有介绍)中再去进行读写访问,而后将其缓存起来给后续请求使用。作用:减少与磁盘进行I/O的时间,提高效率。

2022-10-31 13:41:57 398

原创 MySQL语句执行流程

SQL语句在MySQL中的流程: SQL语句 —> 查询缓存 —> 解析器 —> 优化器 —> 执行器。

2022-10-30 19:29:30 85

原创 MySQL的逻辑架构

MySQL的逻辑架构主要可分成三部分:连接层、服务层、引擎层,架构图如下: 客户端访问MySQL第一件事就是通过三次握手与服务端建立TCP连接。服务端会有TCP线程池,当收到连接请求后会分配一个线程专门对接这个客户端。在连接成功后,MySQL服务器对TCP中客户端传输过来的账号密码进行身份认证、权限获取。 【TCP】若是用户名/密码不对,服务端会收到Access denied for user 错误,客户端则执行结束;用户名、密码认证通过后,服务端会从权限表中查出账号的权限并与客户端连接,后面会根据读到的权

2022-10-29 21:27:54 830

原创 解决IDEA下拉项目没蓝色标记(没设为pom)

当从gitee下拉项目 或者是 把文件复制到现有的IDEA项目时,会发现如下。

2022-10-21 23:50:21 615

原创 CAS操作

CAS包含三个操作数:内存位置原值(A)、预期原值(B)及要更新值(C);执行CAS操作时,将内存位置的值(A)与预期原值(B)比较,若匹配,处理器会将内存位置的值更新为新值(若A = B,则A —>C),若不匹配,则处理器不做任何操作;多个线程同时执行CAS操作时只有一个会成功去,其他不成功的线程可以重新不断尝试CAS(这种情况叫做 自旋)或是放弃更新。

2022-10-19 21:41:04 727

原创 ThreadLocal

1. ThreadLocal是多线程中用来保存某个线程独有的操作;2. ThreadLocal中的内容不能被其他Thread访问、不需要返回到公用内存;

2022-10-15 15:24:55 917

原创 Java中的引用

1. Java中引用有四种类型:强引用、软引用、弱引用、虚引用(即:强软弱虚)

2022-10-14 20:40:19 433

原创 volatile关键字

volatile 写之前的操作,都禁止重排序到volatile之后;volatile读之后的操作,都禁止重排序到volatile之前;volatile写之后volatile读,都禁止重排序;

2022-10-07 19:58:33 87

原创 垃圾回收器(CMS)

1. HotSpot在JDK1.5时期推出的一款垃圾收集器(用于老年代);2. 采用 标记-清除算法;3. 无法与新生代收集器Parallel Scavenge配合工作(JDK1.4推出的),能配合使用的新生代收集器:ParNew 或 Serial;4. G1收集器出现之前CMS的使用非常广泛(到现在还是有很多系统使用);5.HotSpot虚拟机第一款真正意义上的并发收集器;6. JDK9 开始若手动设置开启CMS收集器,用户会收到警告信息:提示CMS未来将会被抛弃;

2022-10-03 21:33:53 264

原创 JVM内存模型总结

Full GC执行的情况:①调用System.gc()时,系统建议执行Full GC(不是必然执行)、②老年代空间不足、③方法区空间不足、④通过Minor GC进入老年代的平均大小大于老年代可用内存、⑤Eden区、survivor space0 向 suriivor space1 (from 向to)区复制时,对象大小大于 to 区 可用内存,将对象转存到老年代,老年代可用内存小于该对象大小时 【Full GC 在开发、调优中是要尽量避免的(暂时时间可以短一些)】用于管理本地方法调用,是线程私有的;

2022-08-20 21:45:28 132

原创 解决Maven中的pom文件project标签爆红

可以试下右键pom.xml,选择maven,再点击里面的Reimport,重新导入就ok了。子项目的pom.xml文件里project标签爆红,把鼠标放到project上,如果给的提示有。

2022-07-16 20:32:39 5567 1

空空如也

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

TA关注的人

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