自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 List结构之非实时榜单实战

像京东、淘宝等电商系统一般都会有热销的商品榜单,比如热销手机榜单,热销电脑榜单,这些都是非实时的榜单。因为完全实时的计算和排序对于资源消耗较大,尤其是当涉及大量交易数据时。因此我们实现非实时榜单,一般是通过定时调度和大数据处理,去拉取数据计算榜单,之后通过redis的list结构将数据放到redis,当用户访问时,会将榜单查询出来。的方式来更新榜单数据,例如每小时或每天更新一次。这样做既保证了榜单的新鲜度,又不至于给系统带来过大的负担。一般来说,热销榜单的数据并不是即时更新的,电商平台会采用。

2025-04-04 22:52:25 85

原创 分布式锁之redis6

2、业务超时,存在其他线程勿删,设置key30秒过期,假如线程A执行很慢超过30秒,则key就被释放了,其他线程B就得到了锁,这个时候线程A执行完成,而B还没执行完成,结果就是线程A删除了线程B加的锁,所以我们的value不能单单只是1。3、进一步细化误删,当线程A获取到正常值value时,返回带代码中判断期间锁过期了,线程B刚好重新设置了新值,线程A那边有判断value是自己的标识,然后调用del方法,结果就是删除了新设置的线程B的值。由于【判断和删除】是lua脚本执行,所以要么全成功,要么全失败。

2025-04-03 23:41:04 640

原创 String结构之首页热点数据开发实战

我们这次的例子是假设开发一个网站上的首页视频,每一个视频卡片包含多个视频,这每个视频卡片都可以是热点数据,因此我们要先封装两个类,视频(VideoDO)和视频卡片(VideoCardDO)。所谓热点数据,就经常会被查询,但是不经常被修改或者删除的数据,例如我们的淘宝首页的商品数据,往往是访问量最多的,因此我们要把热点数据放在缓存,提高性能,给用户提供良好的体验。接着就是controller层的开发了,这里写了一个是有缓存的,一个是没有缓存的。有缓存的方法的实现思路在文章开头就已经说过啦!

2025-04-03 11:56:23 147

原创 String数据结构之验证码实战

参考https://xdclass.net/

2025-03-31 22:22:21 259 1

原创 SpringBoot整合Redis6客户端

在SpringBoot项目中操作redis少不了RedisTemplate。ValueOperations:简单K-V操作SetOperations:set类型数据操作ZSetOperations:zset类型数据操作HashOperations:针对map类型的数据操作ListOperations:list类型的数据操作RedisTemplate和StringRedisTemplate的区别StringRedisTemplate继承RedisTemplate。

2025-03-31 12:18:46 280

原创 Redis6数据结构之SortedSet类型

redis的SortedSet类型是使用HashMap+跳表skipList保证数据存储和有序的,如果重复添加相同的数据,score值将被反复覆盖,保留最后一次修改的结果。

2025-03-30 14:01:56 171

原创 Redis6数据结构之Set类型

redis的Set类型通常用于将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。应用场景:用户画像标签集合、社交应用里面的共同好友。注意:集合是通过哈希表实现的。

2025-03-30 12:36:59 189

原创 Redis6数据结构之Hash类型

redis的Hash类型是一个string类型的field和value的映射表,hash特别适用于存储对象。应用场景:购物车存储、用户个人信息、商品详情。

2025-03-30 12:00:14 183

原创 Redis6数据结构之List类型

redis的List类型底层结构是双向链表,插入删除时间复杂度O(1)快,查找为O(n)慢。支持分页操作,高并发项目中,第一页数据都是来源list,第二页和更多信息则是通过数据库加载。应用场景:简单队列、最新评论列表、非实时排行榜(定时计算榜单,如笔记本日销榜单)。存储的都是string字符串类型;

2025-03-29 23:10:57 274

原创 Redis6数据结构之String类型

redis的String类型是存储字符串类型的key-value。设置key的值,并返回key旧的值。注意:值的长度不能超过512MB。

2025-03-29 20:11:04 318

原创 Reidis介绍

参考https://xdclass.net/

2025-03-29 19:47:13 271

原创 字符流和字节流的桥梁InputStreamReader/OutputStreamWriter

InputStreamReader它继承自Reader类,它允许应用程序将字节流转换为字符流主要作用是将字节流中的数据解码成字符流,以便可以使用字符流相关的API来处理数据。构造函数:通常会使用来包装一个对象,例如,以便读取文本文件。int read(): 读取单个字符。: 将字符读入数组的某一部分。: 关闭流并释放与之相关联的系统资源。

2025-03-25 16:46:27 170

原创 字符流Reader/Writer

Writer是所有字符输出流的超类。它提供了写入字符流的基本方法,如等;Writer是抽象类,通常使用它的子类如FileWriter等来创建字符输出流对象。: 写入单个字符。: 写入字符数组。: 写入字符串。: 写入字符串的某一部分,off是字符串开始索引,len是要写入的字符个数。: 刷新该流的缓冲。: 关闭此流,但要先刷新它。常见子类:FileWriter 用来写出字符文件的实现类。//如果文件不存在,这会自动创建。如果文件存在,则会覆盖//如果文件不存在,这会自动创建。如果文件存在,则会覆盖。

2025-03-25 16:16:14 671

原创 Http协议跟数据交换格式json

HTTP 协议是基于请求/响应范式的,即客户端发送一个请求,服务器返回一个响应。端⼝: ⼀台主机上运⾏着很多的进程,为了区分不同进程,⼀个端⼝对应⼀个进程,http默认的端⼝是80。路径: 资源N多种,为了更进⼀步区分资源所在的路径(后端接⼝,⼀般称为 “接⼝路径”,“接⼝”)含了多个字段,每个字段都包含一个名字和一个值,用于描述一个客户端的属性或请求的属性。,值可以是字符串、数字、对象(JSON对象)、数组、布尔值或null。和请求头部类似,响应头部也包含了多个字段,描述了响应的属性。

2025-03-24 23:26:48 339

原创 Spring-Mybatis框架常见面试题

占位符而不是直接拼接。DI 依赖注入,指Spring创建对象的过程中,将对象依赖属性通过配置进行注入,不能单独存在,需要在IOC的基础上完成操作,通过引入IOC容器,利用依赖关系注入的方式,实现对象之间的解耦。(1)、一级缓存的作用域是SqlSession,同一个SqlSession中执行相同的SQL查询(相同的SQL和参数),第一次会去查询数据库并写在缓存中,第二次会直接从缓存中取,目标:目标类,真正的业务逻辑,可以在目标类不知情的条件下,增加新的功能到目标类的链路上;

2025-03-24 21:19:06 390

原创 Http协议常见面试题

3XX: 重定向,浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取;生成的token,在客户端或者浏览器是存储在cookie,localstorage和sessionStorage里面的。CONNECT: 方法的作用就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户。浏览器向服务器请求时,服务端响应的消息头里面有状态码,表示请求结果的状态。Head: 和get类似,返回的响应中没有具体的内容,用于获取报头。

2025-03-22 14:06:25 325

原创 数据库面试题一

来存储年、月、日、时、分、秒的信息,它的范围是1000-01-01 00:00:00到 9999-12-31 23:59:59,它直接存储用户输入的值,不受时区影响。char类型:长度固定,存储字符,插入的长度小于定义长度时,则用空格填充,存取速度比varchar快得多,适合存储很短的,固定长度的字符串,如手机号,MD5值等。varchar类型:长度可变,存储字符,小于定义长度时,按实际插入长度存储,存取速度比char慢得多,适合用在长度不固定场景,如收货地址,邮箱地址等。

2025-03-21 17:21:55 450

原创 并发编程面试题四

Executors创建的线程池底层也是调用 ThreadPoolExecutor,只不过使用不同的参数、队列、拒绝策略等,使用不当,会造成资源耗尽问题,直接使用ThreadPoolExecutor让使用者更加清楚线程池允许规则,常见参数的使用,避免风险。(5)、workQueue: 线程池中的任务队列,常用的是 ArrayBlockingQueue(需指定大小)、LinkedBlockingQueue(默认队列长度为 Integer.MAX_VALUE,最好指定大小)。

2025-03-18 15:58:24 423

原创 并发编程面试题三

重量级锁:当锁为轻量级锁的时候,其他线程虽然是自旋,但自旋不会一直循环下去,当自旋一定次数的时候且还没有获取到锁,就会进入阻塞,该锁升级为重量级锁,重量级锁会让其他申请的线程进入阻塞,性能也会降低。悲观锁:当线程去操作数据的时候,总认为别的线程会去修改数据,所以它每次拿数据的时候都会上锁,别的线程去拿数据的时候就会阻塞,比如synchronized。轻量级锁:当锁是偏向锁的时候,被其他线程访问,偏向锁就会升级为轻量级锁,其他线程会通过自旋的形式尝试获取锁,但不会阻塞,且性能会高点。它是非公平、可重入的。

2025-03-18 12:31:37 498

原创 并发编程面试题二

参考https://xdclass.net

2025-03-15 20:58:29 439

原创 并发编程面试题一

(2)实现Runnable:定义一个类实现Runnable接口,实现里面的run方法,创建Thread类,将实现Runnable接口的类的对象作为参数传递给Thread对象,调用star方法。(4)通过线程池创建线程:定义一个类实现Runnable接口,实现里面的run方法,创建线程池,调用执行方法并传入实现Runnable接口的类的对象。单线程:大厨先跟甲说如何做可乐鸡翅,甲做完之后,大厨再跟乙说如何做可乐鸡翅,乙做完之后,大厨再跟丙说如何做可乐鸡翅,丙做完之后,线程结束。

2025-03-14 18:36:31 346

原创 字节流 InputStream/OutputStream

参考http://xdclass.net

2025-03-13 22:01:42 685

原创 javase集合框架Map篇

参考http://xdclass.net

2025-03-11 21:07:45 905

原创 javase集合框架List篇

参考http://xdclass.net

2025-03-10 22:20:53 466

原创 JVM常见面试题

JVM的内存区分为虚拟机栈、本地方法栈、程序计数器、堆、方法区。其中,虚拟机栈、本地方法栈、程序计数器是每个线程独占区,堆、方法区是所有线程共享的内存区域。:每个线程在运行时都会创建一个虚拟机栈。栈中存储的是栈帧(Stack Frame),每个方法调用都会创建一个栈帧,并将其压入栈中。为执行本地native方法(如C/C++代码)提供支持。:记录当前线程所执行的字节码指令地址。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;

2025-03-09 14:56:21 811

原创 File文件和目录

参考http://xdclass.net

2025-03-06 22:38:00 359

原创 Java集合框架之Collections工具类

参考http://xdclass.net

2025-03-04 22:37:25 711

原创 数据结构之栈

参考http://xdclass.net

2025-03-03 18:42:35 392

原创 数据结构之队列

参考http://xdclass.net

2025-03-01 22:56:21 352

原创 链表的概念及功能实现

参考http://xdclass.net

2025-03-01 20:44:29 281

原创 线性结构与顺序表功能实现

参考http://xdclass.net

2025-02-28 15:13:39 345

原创 初识数据结构与算法

参考http://xdclass.net

2025-02-26 21:27:51 291

原创 JavaSE第十一天——集合框架Collection

参考https://www.xdclass.net/

2025-01-27 23:32:14 958

原创 JavaSE第十天——集合框架Collection概述

参考https://file.xdclass.net/

2025-01-24 15:15:30 196

原创 JavaSE第九天——异常Exception

参考https://file.xdclass.net/

2025-01-18 20:58:44 639

原创 JavaSE第七天

参考https://www.xdclass.net/

2025-01-17 20:49:44 322

原创 JavaSE第八天

参考https://mp.youkuaiyun.com/

2025-01-17 20:30:04 316

原创 JavaSE第六天——基础语法

参考https://www.xdclass.net/

2025-01-11 14:37:36 708

原创 JavaSE第五天——基础语法

参考https://www.xdclass.net/

2025-01-04 16:05:40 939

原创 JavaSE第四天——基础语法

参考https://www.xdclass.net/

2025-01-03 11:34:18 781

空空如也

空空如也

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

TA关注的人

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