自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2023年被问了100遍的1000道java面试题,终于总结成了485页PDF

现在的互联网开发岗招聘,程序员面试背八股文已经成为了不可逆转的形式,其中一个Java岗几百人在投简历也已经成为了常态!更何况一份面试题动辄七八百道,你吃透了,技术只要不是很差,面试怎么可能有大问题?但是也有尴尬的情况发生:面试八股文背的特别好(火箭造的好,螺丝拧不了),IT企业们却依然坚持用八股文来考察面试者。今天也是应粉丝要求,也为了更好的给广大程序员同胞提供帮助,给大家无偿分享一份。,现状不是我们可能改变的,所以我们只能选择顺应“她”,你背我也背!文末↓↓↓名片获取相关资料。

2023-10-06 17:20:57 993

原创 JVM 优化踩坑记

内存回收过程中将存活对象迁移到新的 region 和 survivor,也有一部分会晋升到老年代region,对象拷贝的时间。Min 为多线程回收中最少的耗时,Avg 为平均耗时,Max 为最大耗时,Diff 为拷贝对象耗时最大差值,Sum 为所有 GC 线程拷贝对象的时间总和。:GC 工作线程终止时间。Min 为线程终止最少的耗时,Avg 为平均耗时,Max 为最大耗时,Diff 为耗时最大差值,Sum 为所有 GC 线程终止耗时的总和。user:JVM 代码耗时。sys:操作系统耗时。real。

2026-01-28 17:13:30 665

原创 Elasticsearch之原理详解

ES是使用Java编写的一种开源搜索引擎,它在内部使用Lucene做索引与搜索,通过对Lucene的封装,隐藏了Lucene的复杂性,取而代之的提供一套简单一致的然而,不仅仅是Lucene,并且也不仅仅只是一个全文搜索引擎。实时官网对的介绍是是一个分布式、可扩展、近实时的搜索与数据分析引擎。TermTerm单词倒排列表Post listPosting倒排文件倒排文件词典和倒排表是Lucene中很重要的两种数据结构,是实现快速检索的重要基石。词典和倒排文件是分两部分存储的,词典在内存中而。

2026-01-28 17:08:37 687

原创 Async的线程池使用的哪个?

本文主要以看源码的方式来了解异步注解@Async是如何在项目中选择线程以及使用线程的,尽量给异步任务指定一个独有线程池,这样会的避免不与其他业务共用线程池而造成影响。

2026-01-28 17:05:20 397

原创 实战!使用 阿里 Arthas 工具分析 CPU 飙高

Arthas 是阿里开源的 Java 诊断工具,相比 JDK 内置的诊断工具,要更人性化,并且功能强大,可以实现许多问题的一键定位,而且可以一键反编译查看源码,甚至是直接进行生产代码热修复,实现在一个工具内快速定位和修复问题的一站式服务。今天,我就带你使用 Arthas 定位一个 CPU 使用高的问题,系统学习下这个工具的使用。输出 help 命令,可以看到所有支持的命令列表。

2026-01-19 16:18:47 589

原创 Mybatis的一级缓存和二级缓存,看完不再懵逼

缓存其实就是存储在内存中的临时数据,这里的数据量会比较小,一般来说,服务器的内存也是有限的,不可能将所有的数据都放到服务器的内存里面,所以, 只会把关键数据放到缓存中,缓存因为速度快,使用方便而出名!

2026-01-19 16:16:46 538

原创 Java 并发基础之 Java 线程池详解

AbstractExecutorService 抽象类派生自 ExecutorService 接口,然后在其基础上实现了几个实用的方法,这些方法提供给子类进行调用。这个抽象类实现了invokeAny方法和invokeAll方法,这里的两个newTaskFor方法也比较有用,用于将任务包装成 FutureTask。定义于最上层接口 Executor中的由于不需要获取结果,不会进行 FutureTask 的包装。需要获取结果(FutureTask),用submit方法,不需要获取结果,可以用execute。

2026-01-19 16:13:39 621

原创 Java开发中常用的框架有哪些?

框架(Framework)"一词最早出现在建筑领域,指的是在建造房屋前期构建的建筑骨架。在编程领域,框架就是应用程序的骨架,开发人员可以在这个骨架上加入自己的东西,搭建出符合自己需求的应用系统。

2026-01-19 16:02:46 687

原创 SpringBoot概念介绍和设计理念

Spring Boot对Spring平台和第三方库进行了整合,可创建可以运行的、独立的、生产级的基于Spring的应用程序。(大多数Spring Boot应用程序只需要很少的Spring配置)Spring Boot可以使用java -jar或更传统的war部署启动的Java应用程序进行创建,可以内嵌Tomcat 、Jetty .Undertow容器,快速启动web程序。

2026-01-19 15:57:19 580

原创 强软弱虚引用如何理解

实现一个强引用实现软引用:java.lang.ref.SoftReference实现一个虚引用:java.lang.ref.ReferenceQueueReferenceQueue(引用队列)是必须的,当对象回收时会放入其中,它最大的作用是跟中对象的回收。

2025-12-30 16:33:22 344

原创 SpringBoot代码集

singleton 单例,每次从spring容器中获取到的bean都是同一个对象。prototype 多例,每次从spring容器中获取到的bean都是不同的对象。RequestScope 同一次请求从spring容器中获取到的bean都是同一个对象。SessionScope 同一个会话从spring容器中获取到的bean都是同一个对象。即便如此,有些场景还是无法满足我们的要求。比如,我们想在同一个线程中从spring容器获取到的bean都是同一个对象,该怎么办?这就需要自定义Scope了。

2025-12-30 16:32:03 614

原创 Java锁相关概念的简单理解

这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。:是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

2025-12-30 16:23:24 1008

原创 Android Url的一些常见处理

日常开发中,会遇到各种各样的Url,所以涉及到的Url处理也就各种各样,建议将Url做一个统一进出的工具 统一管理各种Url的操作.其中涉及到的Url参数转码问题要慎重,要提前和H5和IOS沟通好防止出现Url处理不同意问题.

2025-12-26 14:35:04 985

原创 RabbitMQ-消息堆积&高可用

这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储消息达到上限。注意:镜像集群虽然支持主从,但主从同步并不是强一致的,某些情况下可能有数据丢失的风险。,普通集群的基础上,添加了主从备份功能,提高集群的数据可用性。

2025-12-26 14:33:12 622

原创 面试网络-0x02 http中常见的状态码以及使用场景?

状态码。

2025-12-26 14:11:57 422

原创 NLP之从句子中提取单词步骤

浅层自然语言处理技术可以用来从句子中提取单词,其步骤为:1、将句子转换为小写2、删除停顿词(这些是在一种语言中常见的词。诸如 for、 very、 and、 of、 are 等词是常见的停止词)3、从给定的文本序列中提取 n-gram,即 n 个项目的连续序列(简单地增加 n,模型可以用来存储更多的上下文)4、分配一个句法标签(名词,动词等)5、通过语义/语法分析器方法从文本中提取知识,例如,尽量保留在名词/动词这样的句子中重量较高的词。

2025-12-26 14:10:19 326

原创 JVM调优有什么经验吗?

要明⽩⼀点,所有的调优的⽬的都是为了⽤更⼩的硬件成本达到更⾼的吞吐,JVM的调优也是⼀样,通过对垃圾收集器和内存分配的调优达到性能的最佳。

2025-12-26 14:05:18 643

原创 Sentinel 是如何做限流的

限流是保障服务高可用的方式之一,尤其是在微服务架构中,对接口或资源进行限流可以有效地保障服务的可用性和稳定性。之前的项目中使用的限流措施主要是Guava的RateLimiter。RateLimiter是基于令牌桶流控算法,使用非常简单,但是功能相对比较少。而现在,我们有了一种新的选择,阿里提供的Sentinel。Sentinel 是阿里巴巴提供的一种限流、熔断中间件,与RateLimiter相比,Sentinel提供了丰富的限流、熔断功能。

2025-12-25 15:10:38 974

原创 《JavaEE 笔记》ServletContext 上下文(实现多人在线聊天室)

对于在其部署描述符中标记为distributed的Web应用程序,每个虚拟机中都有一个上下文实例,这个实例称为上下文对象。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。越努力,越幸运 我们亦是拾光者!

2025-12-25 15:04:25 540

原创 一些Redis知识点记录

在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程(fork通过系统调用创建一个与原来进程几乎完全相同的进程)先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。计数器方法:系统维护一个计数器,来一个请求就加1,请求处理完成就减1,当计数器大于指定的阈值(也可以动态阈值),就拒绝新的请求。以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。对于缓存来说,一般都是用来支撑读高并发的。

2025-12-25 14:59:46 634

原创 《计算机与人脑》:神经脉冲的本质

在学习本章之前,我也有个念头。不同于计算机部分,那是冯诺依曼基于当时的计算机技术现状总结而来的,顶多只是有时代的局限性(受限于技术本身),但有关人脑的部分,由于当时的医学、生物学等的探索的有限性,有些知识未必就是正确的。我在看到第一段时,就验证了这一点。冯诺依曼说:神经细胞包括一个细胞体,从它那儿,还直接或间接地引出一个或多个分支。每一个分支,叫做细胞的轴突。但是不对,每一个神经细胞不是只有一个轴突吗?至少我看到的神经细胞图片是这样的(如上一章的图)?

2025-12-25 14:51:11 840

原创 算法笔记-机器学习算法分类

机器学习根据任务的不同,可以分为监督学习、无监督学习、半监督学习、强化学习。具体总结成如下图所示:机器学习算法分类图。

2025-12-25 14:49:56 974

原创 Redis 突然变慢了如何排查并解决?

如下检查清单,帮助你在遇到 Redis 性能变慢的时候能高效解决问题。获取当前 Redis 的基线性能;开启慢指令监控,定位慢指令导致的问题;找到慢指令,使用 scan 的方式;将实例的数据大小控制在 2-4GB,避免主从复制加载过大 RDB 文件而阻塞;禁用内存大页,采用了内存大页,生成 RDB 期间,即使客户端修改的数据只有 50B 的数据,Redis 需要复制 2MB 的大页。当写的指令比较多的时候就会导致大量的拷贝,导致性能变慢。Redis 使用的内存是否过大导致 swap;

2025-12-24 13:30:33 884

原创 二叉树理论介绍

刚刚我们说过了二叉树有两种存储方式顺序存储,和链式存储,顺序存储就是用数组来存,这个定义没啥可说的,我们来看看链式存储的二叉树节点的定义方式。

2025-12-24 13:26:33 764

原创 我可能开发了世界上最快的通用排序算法,比快排快 60%

在 Flutter ConstraintLayout 中用到了计数排序,众所周知,计数排序在某些场景下可以说是最快的排序算法,它有时甚至不需要元素间两两比较。但它有个最大的问题,它不通用!只适合对小范围的整数进行排序。于是这段时间我一直在寻思着能不能改进它,让它通用呢,终于今天灵感爆发,我做到了!因为我姓陈,所以我把它命名为 Chen Sort。

2025-12-24 13:24:04 410

原创 LeetCode - #62 不同路径(Top 100)

本题为 LeetCode 前 100 高频题我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。LeetCode 算法到目前我们已经更新了 62 期,我们会保持更新时间和进度(周一、周三、周五早上 9:00 发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。

2025-12-24 13:22:20 669

原创 Java并发编程——ExecutorCompletionService原理详解

在JDK并发包中有这么一个类ExecutorCompletionService,提交任务后,可以按任务返回结果的先后顺序来获取各任务执行后的结果。该接口定义了一系列方法:提交实现了Callable或Runnable接口的任务,并获取这些任务的结果。CompletionService接口定义了一组任务管理接口:submit() - 提交任务take() - 获取任务结果poll() - 获取任务结果。

2025-12-24 11:20:02 640

原创 Apache Pulsar——Function 轻量级计算框架

当我们进行流式处理的时候,很多情况下,我们的需求可能只是下面这些简单的操作:简单的ETL 操作\聚合计算操作等相关服务。但为了实现这些功能,我们不得不去部署一整套 SPE 服务。部署成功后才发现需要的仅是SPE(流处理引擎)服务中的一小部分功能,部署 SPE 的成本可能比用户开发这个功能本身更困难。由于SPE 本身API 的复杂性,我们需要了解这些算子的使用场景,明白不同算子之间有哪些区别,什么情况下,应该使用什么算子来处理相应的逻辑。

2025-12-24 10:37:56 865

原创 ggplot2优雅的绘制饼状热图

我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

2025-12-22 15:35:17 292

原创 Editorial for Codeforces Round #748 (Div.3)

1.若存在一个数 K 能使所有数通过相减而相等,则 k 必定是这个数列相邻两项不同的数的差值的因子,这里可以使用这个数列的 最大值 和 最小值 的差值 即 K | (max - min)。有 dp[n + 1][(a * 10 + s[n] - '0') % A][b][k + 1] = dp[n][a][b][k] | ((long long)1 << n);此时考虑第 u 位情况,若最终 a = b = 0,且 1 < k < n则合法,记录 abs(n - k - k) 最小的答案序列即可。

2025-12-22 15:32:52 1500

原创 计算机系统中抽象的重要性

的使用是计算机科学中最为重要的概念之一。例如,为一组函数规定一个简单的应用程序接口 (API) 就是一个很好的编程习惯,程序员无须了解它内部的工作便可以使用这些代码。不同的编程语言提供不同形式和等级的抽象支持,例如 Java 类的声明和言的函数原型。我们已经介绍了计算机系统中使用的几个抽象,如下图所示。在处理器里,提供了对实际处理器硬件的抽象。使用这个抽象,机器代码程序表现得就好像运行在一个一次只执行一条指令的处理器上。

2025-12-22 15:28:40 254

原创 21. 集合

List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口Set下有HashSet,LinkedHashSet,TreeSetList下有ArrayList,Vector,LinkedListMap下有Hashtable,LinkedHashMap,HashMap,TreeMapCollection接口下还有个Queue接口,有PriorityQueue类Java中集合类是放在java.util中,是一个用来存放对象的容器。

2025-12-22 15:27:29 866

原创 3. SpringCloud之Ribbon使用

image.pngRibbon 是一个独立的组件,是用来进行远程接口调用的,代码如下通过 getForObject 方法可以掉到用 micro-order 服务的,order/list 接口。然后在调用期间会存在负载均衡,micro-order 服务对应有几个服务实例就会根据负载均衡算法选择某一个去调用。

2025-12-22 15:18:56 647

原创 用了8年MQ!聊聊消息队列的技术选型,哪个最香!

谈起消息队列,内心还是会有些波澜。,缓存,分库分表是高并发解决方案三剑客,而消息队列是我最喜欢,也是思考最多的技术。我想按照下面的四个阶段分享我与消息队列的故事,同时也是对我技术成长经历的回顾。

2025-12-22 15:14:26 951

原创 MySQL数据同步到ES的4种解决方案

例如商品库的商品品类、spu、sku表是分开的,但是查询是跨维度的,在ES里再聚合一次效率就低一些,最好就是把商品的数据给聚合起来,在ES里以类似大宽表的形式存储,这样一来查询效率就高一些。那么问题来了,商品上架,数据一般写入到MySQL的数据库中,那么用于检索的数据又是怎么同步到Elasticsearch的呢?我们以应用最广泛的canal为例,canal通过canal-adapter,支持多种适配器,其中就有ES适配器,通过一些配置,启动之后,就可以直接把MySQL数据同步到ES,这个过程是零代码的。

2025-12-22 15:09:58 958

原创 07《算法入门教程》递归算法

本节内容是递归算法系列之一:递归的介绍,主要介绍了递归的定义,选择了数学归纳法这一数学模型帮助大家可以更好的理解递归的概念,然后明确了一个递归算法必须要具备的三要素,最后说明了一下哪些问题适合应用递归算法求解分析。递归(Recursion),是计算机科学与技术领域中一种常见的算法思想。在数学和计算机领域中,递归主要是指在函数的定义中使用函数自身的方法。顾名思义,递归主要包含两个意思,递和归,这个是递归思想的精华所在。递归就是有去(递去)有回(归来)。

2025-12-22 15:07:30 702

原创 JVM体系结构

JVM体系结构堆和栈的关系。

2025-12-22 15:06:25 1002

原创 springboot中使用Hibernate-Validation

这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。后端接口设计时候,需要对前端请求参数进行'先校验后处理业务'情况,如果在业务代码中通过类似if这里逐个校验,会使得代码变得繁琐,开发工作者都是爱偷懒的。作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

2025-12-12 10:05:37 866

原创 Golang无限缓存channel

最近在弄一个游戏的gate网关转发服务器,服务器之间使用的是nats通讯,gate的作用是接收客户端发来的消息转发到对应的服务器上,并从nats上获取游戏服务器发送给客户端的消息并转发给客户端。为了解决这个问题,可以一个协和去nats中取数据,用多个协程并行转发给客户端,因为现在cpu都是n核的,多协程转发肯定会快的不止一点点,这里要注意一点的是,同个玩家的消息转发的顺序不能变,就是按一定的规则把同一个玩家的所有消息在同一个协程上转发就可以了。作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。

2025-12-12 10:02:46 572

原创 iOS底层系列32 -- performSelector方法的探索

我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

2025-12-12 09:59:44 638

消息队列入门以及常见面试题

对于刚刚学习Rabbitmq的小伙伴这份资料应该是很有帮助的,我的主页有更多资源哟! 这份文档从Rabbitmq的基础、名词讲解。通过图文+代码的形式纯硬核的讲解技术点,全程无废话。后续通过SpringBoot整合Rabbitmq代码示例讲解了常见面试题,如什么是死信队列、实现TTL队列、TTL实现消息队列缺陷的补足方法、延迟队列的优化方案等等,比较适合刚接触消息队列的伙伴学习。

2023-10-09

空空如也

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

TA关注的人

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