- 博客(47)
- 收藏
- 关注
原创 Java怎么实现父子线程的值传递?InheritableThreadLocal类和transmittable-thread-local类?
假设这样使用会有问题吗?threadlocal.set("父线程设置");System.out.println("子线程读取" + threadlocal.get());}).start();如果直接这样写的话是获取不到父线程的值的。怎么解决呢这里介绍俩种方式;
2025-05-27 22:06:30
1080
原创 为什么要使用docker,docker有什么用??一篇文章带你快速了解docker。
设置Java 17 官方镜像作为基础镜像# 设置维护者信息# 设置环境变量,可以设置默认的环境变量用于应用配置# 可选 JAVA_OPTS="-Xmx512m -Xms256m"# 设置容器内的工作目录# 将 jar 包复制到工作目录# 设置对外暴露的端口号# 容器健康检查设置,用于定期检查应用是否崩掉docker Compose又是什么呢?像我们项目中使用的redis,MQ,mysql等中间件,不能写在dockerfile里面吧。都有各自独立的镜像。
2025-05-27 21:43:42
832
原创 ollama本地部署大模型,3分钟即可部署完成!!以及ollama可视化页面的启动!!!本文介绍本地部署Deepseek模型的全部过程,包括可视化,api交互、本地终端交互等方式。
Ollama是一个开源本地大语言模型运行框架,支持在macOS、Windows、Linux等系统上便捷部署LLM。它提供多种预训练模型(如GPT、BERT),支持模型量化降低硬件需求,具备模型微调、跨平台运行等功能。安装步骤包括下载应用、配置环境变量和下载模型。Ollama支持命令行交互和API调用(如文本生成、多轮对话),并提供可视化界面(WebUI)。其开源特性允许开发者自定义模型并集成到本地应用中,适用于内容创作、编程辅助等多种场景。
2025-05-26 17:45:55
1065
原创 基于本地模型+多级校验设计的高效缓存,有效节省token数量(有点鸡肋doge)。
本文探讨了基于大模型开发应用的缓存优化方案,主要解决Token节省与缓存可靠性问题。方案通过多级校验(本地模型过滤、关键词比对、大模型验证)、动态阈值调整和缓存加权机制防止缓存污染;采用时效性管理、版本控制和增量验证应对语义漂移。建议实施分层策略:先搭建基础缓存和本地模型,逐步引入验证层和监控体系,兼顾效率与准确性。高风险领域需更严格的标准,核心原则是"宁可漏存不可错存"。该方案特别适合学习阶段降低API成本,但生产环境仍需结合原生大模型能力。
2025-05-26 16:41:16
732
原创 Java语言快速排序和堆排序(优先队列)介绍,附demo代码
快速排序是由东尼·霍尔所发展的一种排序算法,在平均状况下,排序 n 个项目要 Ο(n log n) 次比较。在最坏状况下则需要 Ο(n^2) 次比较,但这种状况并不常见。快速排序使用分治法策略来把一个序列分为两个子序列,从而实现排序。本文将详细介绍如何使用Java实现快速排序算法,包括基础概念、使用方法、常见实践以及最佳实践。上面的笼统的概念:简单来说就是对于一组数据:73, 18, 4, 56, 35, 9, 88, 2, 64, 13, 41, 92, 57, 61, 25, 47, 5。
2025-05-24 21:34:55
973
原创 关于初学者对大模型的一些概念的理解
大模型(Large Language Model, LLM)是人工智能领域的核心技术,基于海量数据和强大算力训练而成,能够处理自然语言理解、生成、推理等复杂任务。大模型的核心是基于深度学习和神经网络、Transformer架构,通过自监督学习从海量文本数据中学习语言规律。Transformer通过自注意力机制和多头注意力机制实现高效的信息处理,具有更强的并行计算能力和更长的上下文理解能力。大模型的特点包括规模效应、通用性和上下文学习。典型模型有GPT系列和DeepSeek等。大模型的应用方向非常广泛,涵盖自
2025-05-22 20:07:57
870
原创 关于常见日志的几种级别和格式
Log4j日志框架提供了多种日志级别和格式,以满足不同场景的需求。日志级别从高到低依次为OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE和ALL,开发者可根据环境选择合适的级别,如生产环境通常使用INFO,开发环境使用DEBUG或TRACE。日志格式方面,PatternLayout是最常用的,支持自定义日志输出样式;JSONLayout适合日志分析系统;CSVLayout便于导入Excel;HTMLLayout支持颜色高亮;XMLLayout生成结构化日志。最佳实践包括根据环境选择
2025-05-22 19:13:37
953
原创 [2025]MySQL的事务机制是什么样的?redolog,undolog、binog三种日志的区别?二阶段提交是什么?ACID怎么保证的?主从复制的过程?
换句话说,就是这几个事务修改的一定不是同一行记录,所以他们之间才这样Slave就可以用多个SQL线程来并行的执行一个组提交中的多条SQL,从而提升效率,降低主从延迟。WriteSet 是通过检测两个事务是否更新了相同的记录来判断事务能否并行回放的,因此需要在运行时保存已经提交的事务信息以记录历史事务更新了哪些行,并且在做更新的时候进行冲突检测,拿新更新的记录计算出来的hash值和WriteSet作比较,如果不存在,那么就认为是不冲突的,这样就可以共用同一个last_committed 、
2025-05-04 13:18:07
1234
原创 [2025】redis八股文:详解redis为什么快,lua脚本怎么保证原则性?redis的事务机制?淘汰策略?持久化机制?集群机制?
数据存储在内存中,读写速度比磁盘高几个数量级.,基于内存:Redis 是一种基于内存的数据库,数据存储在内存中,数据的读写速度非常快,因为内存访问速度比硬盘访问速度快得多。:不受传统数据库磁盘寻道时间限制。
2025-05-04 13:18:00
1709
原创 【2025】ORM框架是什么?有哪些常用?Mybatis和Hibernate是什么样的?
ORM(Object-Relational Mapping)简称ORM,翻译过来是对象关系映射。对象关系映射是一种程序设计技术,用于在面向对象编程语言中实现不同系统数据之间的转换。它将数据库表结构映射为对象,使开发者可以用面向对象的方式操作数据库。ORM 有下面这些优点:●数据模型都在一个地方定义,更容易更新和维护,也利于重用代码。●ORM 有现成的工具,很多功能都可以自动完成,比如数据消毒、预处理、事务等等。
2025-05-03 11:55:42
823
原创 [2025常问知识点]关于spring的ioc和aop?ioc和DI的区别,ioc是怎么实现的?aop是怎么实现的?
ioc的好处1:使用者不用关心引用bean的实现细节,譬如对于A a = new A(c,d,e,f);来说,如果要使用A,那还要把c,d,e,f多个类全都感知一遍,这显然是非常麻烦且不合理的2:不用创建多个相同的bean导致浪费。3:Bean的修改使用方无需感知。同样是上面的例子,假如说BeanA需要修改,如果没有IOC的话,所有引用到A的其他bean都需要感知这个逻辑,并且做对应的修改。但是如果使用了IOC,其他bean就完全不用感知到对于Spring的IOC来说,它是IOC思想的一种实现方式。
2025-05-03 11:55:34
1205
原创 Java怎么实现一个敏感词过滤?有哪些方法?怎么优化?
,"stopwords": ["敏感词1", "敏感词2", "违法词"]},"type": "keyword" // 保留原始内容。
2025-05-02 15:03:54
1652
原创 【2025最新】MySQL的各种锁有哪些?各种索引优化有哪些(索引覆盖,索引下推,索引跳跃扫描等)?怎么设计索引?排查索引?
在数据库中,有各种各样的锁,按锁的粒度划分,可分为全局锁、表级锁、行级锁和页级锁。在InnoDB中,有全局锁、表级锁、行级锁,但是是不支持页级锁的。Innodb中的锁在锁的级别上一般分为两种,一种是共享锁(S锁),一种是排他锁(X锁)。共享锁&排他锁共享锁又称读锁,是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁。排他锁又称写锁,如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的锁。获得排他锁的事务既能读数据
2025-05-02 15:03:45
727
原创 【2025最新Java面试八股文】Java中实现定时任务的几种方式?为什么定时任务可以定时执行?
时间轮可以看作一个环形数组(类似钟表),每个槽(Bucket)对应一个时间间隔,存放该间隔内到期的任务。(1)时间轮的基本结构时间轮算法主要需要定义一个时间轮盘,在一个时间轮盘中划分出多个槽位,每个槽位表示一个时间段,这个段可以是秒级、分钟级、小时级等等。如以下就是把一个时间轮分为了60个时间槽,每一个槽代表一秒钟。比如当前如果是0秒,那么要3秒后执行,那就挂在槽位为3的那个位置上。而随着时间的推移,轮盘不断旋转,任务会被定期触发。
2025-04-30 14:41:27
1154
原创 【2025最新Java八股面试常考点】Java序列化的原理是什么?序列化和反序列化是什么?
其中,在invokeWriteObject的阶段,系统就会处理自定义类的序列化方案。这是因为,在序列化操作过程中会对类型进行检查,要求被序列化的类必须属于。
2025-04-29 11:50:57
689
原创 【2025最新】关于日志系统的一些理解。为什么要有日志系统?有哪些日志框架?以及InheritableThreadLocal和TransmittableThreadLocal的实现原理?
现在,很多应用都是集群部署的,一次请求会因为负载均衡而被路由到不同的服务器上面,这就导致一个应用的日志会分散在不同的服务器上面。当我们要向通过日志做数据分析,问题排查的时候,就需要分别到每台机器上去查看日志,这样就太麻烦了。于是就有了分布式日志系统,他可以做分布式系统中的。
2025-04-29 11:50:10
1577
原创 【2025最近Java面试八股】Spring中循环依赖的问题?怎么解决的?
在Spring框架中,循环依赖是指两个或多个bean之间相互依赖,形成了一个循环引用的情况。如果不加以处理,这种情况会导致应用程序启动失败。导致 Spring 容器无法完成依赖注入。例如:@Service@Autowired@Service@Autowired此时,
2025-04-28 00:12:27
1077
原创 【2025最新Java面试八股】Java中实现线程安全的集合?ConcurrentHashMap是如何保证线程安全的?List.of()和subLIst底层是怎么样的?COW又是什么?
在 Java 中,实现线程安全的集合有多种方式,主要分为两大类:基于锁的同步集合和并发优化的无锁/分段锁集合。以下是详细说明和 ConcurrentHashMap 的线程安全实现原
2025-04-28 00:12:15
706
原创 【2025最新Java面试八股】如何在Spring启动过程中做缓存预热?
在 Spring 应用启动过程中进行缓存预热(Cache Preloading)是一种优化手段,目的是在系统正式对外提供服务前,:在 Spring 容器初始化完成后,主动加载热点数据到缓存。高频访问的静态数据(如配置表、城市列表)。计算成本高的数据(如排行榜、聚合统计结果)。:确保预热在应用完全启动后执行,且不影响正常服务。
2025-04-27 11:28:38
766
原创 【2025最新面试操作系统相关八股】什么是操作系统的多级缓存?什么是MESI缓存一致性协议?
当CPU写数据时,如果发现操作的变量是共享变量,即在其他CPU中也存在该变量的副本,会发出信号通知其他CPU将该变量的缓存行置为无效状态,因此当其他CPU需要读取这个变量时,发现自己缓存中缓存该变量的缓存行是无效的,那么它就会从内存重新读取。JMM处理的是线程如何通过共享内存进行交互的问题,包括变量的读写、锁的获取释放以及volatile关键字的语义等。所以,即使有了MESI这样的硬件层面的缓存一致性协议,Java内存模型仍然是必需的,它提供了软件层面上的Java中本地内存间的可见性和线程同步的保证。
2025-04-27 11:28:30
825
原创 【2025最新Java面试八股文】详解Tomcat,启动流程,io模型,类加载机制,处理过是怎么样的。过滤器和拦截器的区别是什么。
想要详细了解Tomcat的启动流程, 可以通过代码来看,主要入口就是这个类中,主要就是三个方法,Tomcat 的启动过程是一个多阶段的初始化过程,Tomcat 的启动入口是类的main方法。○加载启动类:加载启动相关的类加载器及类,创建Catelina对象。1:加载配置文件:主要包括,其中server.xml用于配置Tomcat的基础服务,如默认最大线程数是200,默认最小空闲线程数是10等;web.xml用于配置等信息。
2025-04-26 10:45:42
1180
1
原创 【2025最新面试八股常问知识点】HTTP1.0,HTTP1.1,HTTP2.0,HTTP3.0,HTTP的进化之路。
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。HTTP 协议是以 ASCII 码传输,基于请求与响应模式的、无状态的,建立在 TCP/IP 协议之上的应用层规范。。
2025-04-26 10:45:29
1010
1
原创 【2025最新面试操作系统相关八股】常见的进程调度算法有哪些?
算法抢占式特点适用场景FCFS否简单,但平均等待时间长批处理系统SJF/SRTN可选平均等待时间最优理论模型优先级调度可选可能饥饿通用系统(需老化机制)时间片轮转是公平,响应时间短分时系统多级反馈队列是平衡响应和吞吐量通用操作系统(如Linux)实时调度是/否保证截止时间实时系统实际系统中(如Linux)通常结合多种算法,例如CFS(完全公平调度器)基于时间片和虚拟运行时间实现公平性。
2025-04-25 11:23:41
656
1
原创 【2025最新面试操作系统八股】CPU利用率和load(负载)的区别,CPU利用率怎么算。
负载(Load)和 CPU 利用率是衡量系统性能的两个不同的指标,它们从不同的角度反映了系统的状态。CPU 利用率表示。它是一个百分比值,表示在某个时间间隔内,CPU 处于非闲置状态的时间比例。例如,如果 CPU 利用率为 70%,这意味着在观察的时间间隔内,有 70% 的时间 CPU 正在处理任务,而 30% 的时间处于空闲状态。负载(Load)。在 Unix-like 系统中,。运行队列长度是指在某一时刻,处于就绪状态和运行状态的进程数量的和。
2025-04-25 11:08:03
922
原创 【2025最新Java八股面试常问知识点】类什么时候会被加载?加载过程中的细节有哪些?什么是双亲委派机制
首先,Java中的类加载其实是延迟加载的,除了一些基础的类以外,其他的类都是在需要使用类时才会进行加载。同时,Java还支持动态加载类,即在运行时通过程序来加载类,这为Java程序带来了更大的灵活性。访问类的静态变量或方法(非final)如果该类还没有被加载,则会触发类的加载。如果该类还没有被加载,则会触发类的加载。初始化子类时,父类会先被加载JVM启动时指定的主类(包含main方法的类)
2025-04-24 12:49:44
1153
1
原创 【4.23号更新,docker可用镜像源】2025最新 Docker 国内可用镜像源仓库地址
好久没用docker突然镜像源不能用了,好像是国外封了好多。今天从网上找了可以用的,装载于。
2025-04-24 12:49:14
1434
原创 【2025最新面试常考Java八股】一个类的生命周期是怎么样的?
初始化是类加载的最后一步,也是真正执行类中定义的 Java 程序代码(字节码),初始化阶段是执行类构造器 <clinit> ()方法的过程。这个时候,我们需要明白一个问题,我们知道,JVM自带的类加载器因为需要一直加载基础对象,所以JDK自带的基础类是一定不会被回收掉的,那么会有哪些类会被回收掉呢?类的使用,即是类在加载完毕后,会有代码段来引用该类,如初始化该类的对象,或者通过反射获取该类的元数据。加载 >>> 链接(验证,准备,解析) >>> 初始化 >>>使用 >>>卸载。
2025-04-23 11:56:47
536
原创 【2025最新面试Java八股】JVM如何判断对象是否存活?,GC roots可以是哪些?
JVM如何判断对象是否存活及GC Roots详解,当JVM判断对象不再存活的时候,便会在下一次GC时候将该对象回收掉JVM有三种算法来判断对象是否存活,分别是引用计数法和可达性分析算法,和可达性分析法,JVM主要通过三色标记算法(Reachability Analysis)来判断对象是否存活,这是现代JVM主流的垃圾判定方法。
2025-04-23 11:28:13
824
原创 【2025最新Java面试八股】如何理解MySQL的MVCC机制?
因为事务2无法插入数据成功,所以也就不会存在幻读的现象了。在undo log中,因为每一次记录变更之前都会先存储一份快照到undo log中,那么这几个隐式字段也会跟着记录一起保存在undo log中,就这样,每一个快照中都有一个db_trx_id字段表示了对这个记录做了最新一次修改的事务的ID ,以及一个db_roll_ptr字段指向了上一个快照的地址。○如果,事务id不在trx_ids列表中,那么表示的是在当前事务开启之前,其他事务对数据进行修改并提交了,所以,这条记录对当前事务就应该是可见的。
2025-04-22 12:44:13
1084
原创 【2025最新面试Java八股】Java虚拟线程怎么回事,是协程吗?
Java 19引入的虚拟线程(Virtual Threads)确实可以被视为Java平台对协程(Coroutine)概念的一种实现,但两者在技术细节和实现方式上存在一些重要区别。
2025-04-22 11:51:18
1046
原创 【2025面试Java常问八股之redis】zset数据结构的实现,跳表和B+树的对比
特性跳表B+ 树结构多层链表多路自平衡树查询复杂度O(log N)O(log N)插入/删除复杂度O(log N)O(log N)空间开销较高(需要存储多个指针)较低(只在叶子节点存储数据)数据存储方式数据存储在各层链表中数据存储在叶子节点,内部节点仅存索引应用场景内存数据库、缓存系统数据库索引、文件系统、范围查询实现复杂度较简单较复杂(需要保证平衡)
2025-04-21 19:51:25
1309
原创 【2025面试常问八股之】Bitmap技术全解析:从Redis到Java再到布隆过滤器
Bitmap(位图)是一种使用作为基本单元来存储和表示数据的数据结构,它通过将每个元素映射为一个二进制位(0或1)来实现高效的数据存储和操作。:一个连续的二进制位数组:每个bit表示一个状态(存在/不存在、是/否等):是最高效的数据结构之一。
2025-04-21 19:28:16
1068
原创 【2025最新redis数据结构之Hypeloglog介绍】关于Hypeloglog
HyperLogLog 是一种用于基数统计(distinct counting)的概率算法,能够在极小内存占用下(通常只需几KB)估算巨大数据集的基数(不重复元素数量),标准误差约为 0.81%。
2025-04-20 18:40:13
695
原创 【2025面试常问Java八股】AQS介绍(AbstractQueuedSynchronizer 抽象队列同步器)
AQS 是 Java 并发包的核心基础框架,为构建锁和同步器提供了底层支持。理解 AQS 是掌握 Java 并发编程的关键。// 其他方法实现...AQS 通过精妙的设计,将同步器的通用逻辑抽象出来,让开发者只需关注特定同步策略的实现。理解 AQS 的工作机制,不仅能帮助更好地使用 JUC 中的工具类,也能为设计自定义同步组件提供坚实基础。
2025-04-20 18:26:07
1256
原创 【2025计算机网络-面试常问】http和https区别是什么,http的内容有哪些,https用的是对称加密还是非对称加密,流程是怎么样的
HTTPS通过巧妙的混合加密机制,既解决了对称加密的密钥分发问题,又避免了非对称加密的性能瓶颈,是现代Web安全的基石。以下是一些常用的https证书申请,需要花钱,具体流程可以去具体的网站看,有详细的流程,不一一赘述了。实体头:Content-Type、Content-Length。通用头:Cache-Control、Connection。:方法(GET/POST等) + URI + 协议版本。:移除不安全的算法(如RSA密钥交换):POST/PUT等方法携带的数据。通用头:Date、Server。
2025-04-20 18:16:58
1630
原创 【2025最新Java八股】redis中io多路复用怎么回事,和多线程的关系
IO 多路复用和多线程是两种不同的技术,他们都是用于改善程序在处理多个任务或多个数据流时的效率和性能的。,特别是那些需要处理大量并发连接的服务器,如器。它使单个线程能够高效管理多个并发网络连接。但IO 多路复用在处理多核 CPU 的并行计算上没有优势,且在处理长时间运行的计算任务时可能会造成 IO 等待。
2025-04-19 16:50:55
654
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人