- 博客(82)
- 收藏
- 关注
原创 Java八股文
我看你做的项目中,都用到了Redis,你在最近的项目中哪些场景使用了Redis呢?缓存穿透:查询一个不存在的数据,mysql查询不到数据也不会直接写入缓存,导致每次请求都打到数据库。解决办法:(1)缓存空数据(2)布隆过滤器缓存雪崩:同一时段或者,导致大量请求到达数据库,带来巨大压力。解决方法:给不同的Key的TTL添加随机值,利用Redis集群提高服务的可用性。缓存击穿:也叫热点KEY问题,的时候,大量并发请求冲击数据库,又比较慢,看你会把数据库压垮。解决办法:互斥锁和逻辑过期。
2025-09-08 13:57:16
342
原创 JVM——八股文
JDK供Java程序开发人员开发软件,JRE供客户使用,只需要JVM运行环境即可。JVM运行的是class字节码,不仅能运行Java代码,还能运行其他语言,只要语言能编译成字节码文件即可,比如Kotlin。
2025-08-28 11:21:29
889
原创 设计模式——代理模式
代理模式是一种结构型设计模式。它允许你为另一个对象提供一个代理(Proxy)或占位符(Placeholder),以控制对这个对象的访问。核心思想不直接访问目标对象,而是通过一个代理对象来间接访问。目的控制访问:可以在访问真实对象之前或之后添加额外的逻辑,例如权限检查、延迟初始化(懒加载)、日志记录、性能监控、缓存等。保护目标对象:隐藏真实对象的复杂性或敏感信息。增强功能:在不修改原始类代码的情况下,为其添加新功能(符合开闭原则。
2025-08-25 14:13:01
442
原创 密码学——对称加密, 非对称加密和CA
对称加密的核心:加密和解密使用相同的密钥。对称加密要保证客户端和服务器拥有相同的密钥,然后,密钥在传输过程中,容易被黑客截获,这样子加密的信息也能被黑客解密。非对称加密,也称为公钥加密(Public Key Cryptography),是密码学中另一类核心加密技术。它的核心特点是:加密和解密使用一对不同的密钥——公钥(Public Key)和私钥(Private Key)。密钥对(Key Pair):加密与解密过程:数字签名(Digital Signature)(非对称加密的另一重要应用):RSA (Riv
2025-08-21 20:57:00
1212
原创 Java——ThreadLocal
但在并发的场景中,如果有多个线程同时修改公共变量,可能会出现线程安全问题,即该变量最终结果可能出现异常。为了 解决线程安全问题 , JDK 出现了很多技术⼿段,⽐如:使⽤ synchronized 或 Lock ,给访问 公共资源的代码上锁,保证了代码的原⼦性。但在⾼并发的场景中,如果多个线程同时竞争⼀把锁,这时会存在⼤量的锁等待,可能会浪费很多时间,让系统的响应时间⼀下⼦变慢。并发编程是⼀项⾮常重要的技术,它让我们的程序变得更加⾼效。
2025-08-21 17:09:26
355
原创 Java——ACM编程
tips:Mac版本的IDEA控制台,输入cmd+d表示文件末尾EOF。,表示没有更多的输入了,并不占用空间。nextXxx()
2025-08-15 22:14:35
400
原创 计算机网络——协议
HTTP(HyperText Transfer Protocol,超文本传输协议)是应用层的一种协议,用于客户端(如浏览器)与服务器之间传输超文本(如 HTML 页面、图片、视频等)。它是Web 的基础,建立在 TCP 协议之上,确保数据的可靠传输。HTTP协议的默认端口是80。特点说明无状态(Stateless)每个请求之间相互独立,服务器不会记住前一个请求的状态。基于请求-响应模型客户端发送请求,服务器返回响应。可扩展性强支持多种数据类型(通过指定)。支持持久连接HTTP/1.1 默认启用。
2025-08-13 21:30:13
1234
原创 Redis知识点+项目+面试八股
Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样。最重要的是5种基本类型。String, Hash, List, Set和SortedSet。
2025-08-12 12:36:59
372
原创 hmall学习
返回:将返回的token值添加到前端authorization即可:黑马商城单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。优点:架构简单,部署成本低。缺点:团队协作成本高,系统发布效率低,系统可用性差单体架构的问题:访问:localhost:8080/hi和localhost:8080/search/list为例子如果同时有300个线程访问/hi,再加一个线程访问/search/list就会特别慢。微服务架构,是服务化思想指导下的一套最佳实践架构方案。服务化,就是把单体架构中的功能模块拆分
2025-07-08 15:45:10
380
原创 JVM——垃圾回收
在JVM中,“垃圾”指的是那些不再被使用的对象。具体来说,如果一个对象不能通过程序中的任何引用链从GC Roots到达,那么这个对象就被认为是垃圾。
2025-06-29 15:50:11
883
原创 JavaSE——函数编程
Lambda是JDK8中的一个语法糖。他可以对某些匿名内部类的写法进行简化。让我们不用关注什么是对象,而是更关注我们对数据进行了什么操作。
2025-06-28 14:03:07
215
原创 JavaSE——多线程
首先要弄明白一点,不等于操作系统级别的线程,Java创建的线程是Java虚拟机管理的,是。提供了统一的API,屏蔽了不同操作系统的差异性。操作系统级别的线程是由操作系统内核直接管理和调度的实体。它们是 CPU 调度的基本单位。现代 JVM 实现中,,即所谓的。ThreadC语言创建的线程,才是真正意义上的操作系统上的线程。但是C语言在类Unix使用pThread来创建线程,但是在Windows使用的是Win32 API。所以。
2025-06-27 22:50:38
1072
原创 LangChain4j+RAG
该命令如果本地没有qwen,就会先下载,再进去。如果下载好了qwen,就直接进去。官网:https://docs.langchain4j.dev/,点击Next之后,还有勾选web依赖,因为要返回给前端。通过ollama安装qwen3(0.6b参数)的大模型。(2)application.yml配置。ollama默认的端口号是11434。查看Ollama默认监听的端口号。(2)controller层。(3)controller层。查看Ollama运行进程。(3)service层。(4)service层。
2025-06-18 16:36:53
709
原创 hmdp知识点
1.1.1 引入依赖1.1.2 建立实体类和数据库表@Data1.1.4 启动类扫描包1.1.5 Mapper接口是 MyBatis Plus 提供的一个接口,包含一系列常用的,这些方法已经实现好了,你可以直接使用。1.1.6 Service接口是 MyBatis Plus 提供的一个,封装了常见的1.1.8 ServiceImpl实现类@Servicesave()getById()list()1.1.9 Controller接口。
2025-06-07 17:37:43
1008
原创 Java 中的接口(Interface)与抽象类(Abstract Class)详
使用abstract关键字声明;可以包含抽象方法(没有实现的方法)和具体方法(有实现的方法);不可以直接实例化,只能通过继承后由子类实例化;每个类只能继承一个抽象类(单继承)。// 抽象方法// 具体方法特性抽象类接口是否有抽象方法✅✅是否有具体方法✅(Java 8+ 接口也支持)✅(默认方法)是否能定义构造器✅❌是否能继承多个❌(单继承)✅(多实现)是否能定义成员变量✅❌(只能是常量)是否支持默认方法❌✅(Java 8+)是否支持静态方法。
2025-05-29 14:44:02
856
原创 Java 中的 static`关键字详解
特性静态成员非静态成员所属对象类本身对象调用方式类名.成员对象.成员是否共享是否是否依赖对象否是是否可访问非静态否是生命周期类加载时创建,JVM退出时回收对象创建时存在,GC回收时销毁。
2025-05-29 14:36:05
739
原创 Java四种访问权限修饰符详解
修饰符同类同包子类外部类public✅✅✅✅protected✅✅✅❌default✅✅❌❌private✅❌❌❌。
2025-05-29 14:31:42
812
原创 Java 多线程详解:从创建线程到同步控制
特性Lock使用方式关键字接口锁自动释放是否(需手动释放)尝试加锁不支持支持超时机制不支持支持中断响应不支持支持多线程是 Java 并发编程的核心内容,掌握线程的创建方式和同步机制对于开发高并发程序至关重要。本文通过“买电影票”的案例详细演示了线程安全问题及其解决方法,希望对你深入理解 Java 多线程有所帮助。
2025-05-28 09:46:08
447
原创 Java中的工具类Collections和Arrays
是一个针对集合框架的操作类,它提供了各种静态方法来实现对集合的各种操作,如排序、查找、混排等。它适用于所有的集合接口,包括List、Set、Queue等。与不同,Arrays专注于数组的操作。它提供了许多静态方法来处理数组,比如排序、搜索、比较以及将数组转换为列表等。
2025-05-20 20:56:52
258
原创 登陆认证技术---(Cookie, Session和JWT )
Cookie是服务器发送给浏览器的一小段文本信息,浏览器将其保存下来,并在下次访问相同网站时自动附加到请求中。Session是服务器端用来保存用户状态的一种机制。它与 Cookie 配合使用,但主要数据保存在服务器上。是一种开放标准(RFC 7519),用于在网络应用环境中安全地传输声明(claims)。技术是否查库存储位置是否无状态安全性适用场景Cookie否客户端否一般简单网页应用Session否服务端否高单体架构项目JWT否客户端是高分布式系统、移动端。
2025-05-16 11:46:44
1007
原创 力扣Hot100(Java版本)
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。https://leetcode.cn/problems/two-sum/description/【简单】实例化一个HashMap来保存<值, 索引>遍历HashMap,找到就返回索引下标,找不到就添加元素。
2025-05-13 22:08:37
1677
1
原创 编译型语言 vs 解释性语言 vs 编译&解释语言
介绍解释性语言和编译型语言的区别,以c/c++,Java,Python,JavaScript为例
2025-05-09 10:47:06
316
原创 Typora自定义设置代码块为mac风格
* 代码块主题 *//* 深灰色字体以确保在浅灰背景下清晰可见 *//* 更改为浅灰色背景 *//* 为顶部的三个点留出空间 *//* 红色关闭按钮 */20px 0 #fdbc40, /* 黄色最小化按钮 *//* 绿色最大化按钮 */left: 12px;保存css文件,重启Typora即可。如果不喜欢背景颜色,可以在上述自定义样式自行更改。
2025-04-23 11:28:01
794
原创 JVM——虚拟机
(1)解释和运行:对字节码文件中的指令,实时的解释成机器码,让计算机去执行。(2)内存管理:自动为对象、方法等分配内存。自动的垃圾回收机制,回收不再使用的对象。(3)即时编译:对热点代码进行优化,提升执行效率。
2025-03-13 11:56:05
278
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅