- 博客(553)
- 收藏
- 关注
原创 一面字节,三面阿里,四面京东,終拿offer!Java面经分享!
大厂面试注重知识深度+场景化解决方案,建议结合项目经验梳理技术闭环。坚持手撕代码(LeetCode 200+题量),理解设计背后的trade-off,offer终会水到渠成!
2025-11-26 21:04:20
1061
原创 京东今年的薪资太顶了!!
梳理项目全貌一句话概括项目:用简洁的语言说清楚这个项目是做什么的(核心业务/目标)以及为什么要做(项目背景、要解决什么痛点)。核心功能与亮点:介绍项目的主要功能模块,特别是那些技术含量高或业务价值大的部分。技术架构与选型:能清晰地说明项目的整体技术架构(比如是微服务、单体?用了哪些中间件?),并解释为什么选择这些技术(技术选型的考量)。准备好可能被要求画简要架构图或解释关键模块设计。明确你的角色与贡献你的角色:清楚说明你在项目中担任的角色(比如核心开发者、模块负责人、项目经理等)。具体职责。
2025-11-26 20:20:34
328
原创 2025 年 11 月编程语言排行榜|C# 要翻身超Java?Java:我不要面子的啊!
TIOBE 2025 年 11 月份的编程语言排行榜已经公布,官方的标题是:C# 有史以来要第一次超过 Java 了吗?自从 2023 年末 Python 拿下 TIOBE 第一名后,就没下来过,不过现在Python 好像到顶了,增长曲线不再性感,TIOBE 指数里它的势头开始平稳。而在它身后 C、C++ 和 Java 一直在为第二名的位置展开激烈竞争。但现在更值得注意的是排在第五的 C# ,正在悄悄开始搞事情,大有赶超 Java 的趋势。,如果继续这么猛,2025 年的年度编程语言很可能就是它!
2025-11-26 20:19:21
556
原创 面对C/C++最难搞的“内存幽灵”,听说你竟还在用printf
哈哈,gdb成功的捕捉到了是哪一行代码修改了0x7fffffffe508这块内存,而且详细的告诉我们所有信息,可以看到gdb打印出了这块内存之前保存的数据是数字4960,修改后的值为1,并且是在a.cc:8这里被修改的,而这里正是我们创建的线程对变量a进行修改的地方,gdb成功的捕捉到了”肇事者“,原来是这个线程”无意“修改了变量a的值。这段代码非常简单,创建局部变量a,然后获取变量a的地址并赋值给指针c,此后对变量a进行累加和,然后输出a的值,此时a的值为4960。,幸运的是这类技术已经实现了。
2025-11-26 20:16:57
284
原创 放弃JSON吧!这4种数据格式让API性能提升5倍
二进制格式是工具而非信仰,在延迟、带宽和CPU资源至关重要的场景下使用它们,同时将兼容性和可观测性作为首要考虑因素。从这篇文章中,如果你只实施一项改变,那就是:为一个关键的内部RPC调用将JSON替换为二进制格式,然后测量差异——数据本身会比任何论证都更有说服力。技术的选择决定了系统性能的上限,在数据序列化这一看似普通的环节中,往往隐藏着提升系统性能的关键钥匙。选择合适的工具,让你的系统在性能与效率之间找到最佳平衡点。
2025-11-26 20:16:07
263
原创 工作中最常用的6种API网关
end-- API Key验证end-- 验证API Key格式end-- 请求体验证endend-- 业务规则验证endend-- 添加验证通过标记-- 记录审计日志end通过本文的介绍,我们对6种主流API网关有了全面的认识。技术栈匹配:选择与团队技术栈最匹配的方案性能要求:根据业务并发量选择性能合适的网关功能需求:评估需要的功能特性,如限流、认证、监控等运维成本:考虑部署、监控、维护的复杂度团队能力:评估团队对网关技术的掌握程度。
2025-11-26 20:13:34
394
原创 图文详解:当 CPU 使用率拉满时,算力如何实现突围?
这就像工人刚在这条生产线熟悉了流程,还没干几分钟就被调到另一条线,结果花在 “搬工具、记步骤” 上的时间,比实际干活的时间还长,让整个调度的效率大打折扣。合理的做法是按 CPU 核心数动态设置线程数,通常为核心数 ±1,这样能避免线程过多引发的频繁切换,让每个线程都能专注处理任务,减少资源内耗。这就像两条生产线的工人,各自抱着对方完成工序必需的一半零件,谁都不肯先放手 — 调度员明明看到两条生产线都空转着,却没法强制它们各让一步,整个流程彻底卡在这儿,这就是典型的 “死锁僵局”。
2025-11-26 20:11:37
229
原创 史诗级“破冰”!iOS和安卓要全面互通了?!
这是因为AirDrop是基于苹果专有的协议和技术实现的,由于苹果公司对隔空投送技术的封闭性和专利保护,其他品牌的手机很难直接兼容和使用这一功能。具体操作上,当 Pixel 10 系列机型用户向 iPhone 用户发送照片、视频或文件时,对方需要先把 AirDrop 的可见性设置为“所有人(10 分钟)”,之后即可在分享界面看到 iPhone 的设备名称,直接点击发送即可。随着谷歌和高通的推动,以及苹果开放相关传输标准,未来安卓设备或将大面积支持苹果隔空投送功能,实现跨平台的无缝文件传输,大幅提升用户体验。
2025-11-26 20:10:49
226
原创 四种方案讲清楚,数据权限该如何设计?
在数字化系统的权限架构演进中,用户、角色、菜单始终构成权限管理的三位一体基础框架。随着企业治理进入精细化阶段,传统RBAC模型在应对多维数据管控需求时日益显现其局限性。基于此,"功能权限-数据权限-审批权限"的三元权限体系逐渐成为行业最佳实践,其中数据权限因其与业务场景的高度耦合性,成为系统架构设计中的关键突破点。本文将系统解构四种典型数据权限实现方案,揭示灵活高效的数据权限建模方法论。
2025-11-26 20:08:04
333
原创 为什么计算机需要操作系统?
而操作系统也是同样的道理,我们知道真正完成计算任务的是硬件,hardware,而硬件本身通常是非常难以编程的,尤其设计I/O的部分,因为这非常的细节、非常琐碎,程序员在读写文件时大概率不想关心要读写的数据到底保存在磁盘的哪个盘面、哪个柱面、哪个扇区上,也不想关心该使用什么样的机器指令可以控制磁盘的读写、怎样平衡好读写速率与磁盘寿命等等,你需要的是两个read/write函数就能读写文件这种抽象概念(实际上从磁盘的角度来说根本不存在文件这种概念)。,而且大部分程序员在编写网络程序时相信对这些细节也不感兴趣。
2025-11-26 20:06:28
221
原创 三面阿里,四面京东,終拿offer!Java面经分享!
本人某985计算机专业硕士,在校期间主要研究方向是大数据和分布式系统,有3个开源项目贡献经历,2段BAT级别实习经历。从去年9月开始准备秋招,最终通过阿里三面技术面+HR面,京东四面(含2轮技术交叉面),最终同时拿到阿里P6和京东T7的offer。
2025-11-24 20:05:17
1776
原创 面试官:MySQL 空值字段应该保存 NULL 还是默认值?
使用 MySQL 数据库时,对于一个可以为空的字段,如果没有值,应该保存 NULL 还是给一个默认值呢?多数时候我们不太注意,有时候不赋值,直接保存 NULL,有时候赋值一个业务指定的默认值。今天来聊一聊这个话题。
2025-11-24 19:47:31
684
原创 别再搞混了!交换机、路由器上的 G 口、F 口、E 口、S 口,到底差在哪?
在日常运维或机房部署时,很多人看到交换机或路由器的端口标识——,脑子里可能会冒出问号:这些口到底代表什么?为什么有的写“G1/0/1”,有的写“F0/0/1”,还有的设备干脆只标个“SFP”?别小看这些字母,它们可不是随意取的。每个字母都暗示了端口的。今天,我们就从工程师的角度,把这个问题彻底讲透。这串名称其实包含了关键信息:••而厂商为了简写,通常会在设备面板上或命令行中使用缩写:•→ Ethernet•••→ Serial(或 SFP,取决于上下文)所以这些字母,本质上是。
2025-11-24 19:46:54
495
原创 本周 13 个 YYDS 的 GitHub 项目,哪个你用过?
使用 SSHJ 库实现安全的 SSH 连接,Apache POI处理 Excel 文件,JFreeChart 生成图表,JTS 处理空间数据等。containerd 以守护进程形式运行,负责管理容器的整个生命周期,包括镜像的拉取和存储、容器的创建与监控、以及低层次的存储和网络附件管理。而设计的开源工具,有 8000 的星星。与传统的虚拟机不同,Lima 在设计上更加轻量级,专注于为开发人员提供接近原生体验的 Linux 环境。例如,可以设置当某个关键警报触发时,自动抑制相关的低级警报,避免不必要的干扰。
2025-11-24 19:45:24
561
原创 解决公共大屏幕蓝屏死机的尴尬:未来Windows将在死机后15秒内自动关闭屏幕
目前在许多公共场合有着大屏幕播放广告或者各种提示信息,例如在机场就有大屏幕播放航班的起降信息,这些大屏幕有些使用的是 Windows 系统,但如果系统崩溃就会出现硕大的蓝屏死机界面 (现在已经改成黑屏死机界面)。当维护人员抵达现场进行维护时重新激活屏幕可以看到必要的错误信息,例如是不是哪个驱动程序引起的故障,或者是普通故障重启系统之类的,这个功能仅限于数字广告牌类设备 (也就是公共大屏幕等),其他设备不会启用这个功能。
2025-11-24 19:42:45
267
原创 面试官问:为什么快排要随机化?
可以这样说:“快排的核心是分治,通过 pivot 将数组划分成左右两部分再递归。如果 pivot 选择不当,比如数据接近有序,会退化成 O(n²)。为避免退化,我们会采用随机化 pivot,让每次划分更均匀,使时间复杂度稳定在 O(n log n)。然后你需要我现场手写的话,我可以写标准版 + 随机化版本。这叫在理解的基础上会写 + 会解释 + 会设计。
2025-11-24 19:41:42
231
原创 不就写提示词?提示词工程 为啥是工程?
通过上述过程我们可以发现,虽然最终产物可能就是一段平平无奇的提示词,但整个过程是个完整的工程化流程。这也是为什么很多公司在招提示词工程师。在提示词工程师的JD中,普遍要求「深度理解提示词工程原理,能够使用提示工程工具进行系统化调优和设计」。
2025-11-24 19:41:06
928
原创 缓存穿透、缓存击穿、缓存雪崩,傻傻分不清楚?
对于从事后端开发的同学来说,缓存已经变成的项目中必不可少的技术之一。没错,缓存能给我们系统显著的提升性能。但如果你使用不好,或者缺乏相关经验,它也会带来很多意想不到的问题。今天我们一起聊聊如果在项目中引入了缓存,可能会给我们带来的下面这三大问题。看看你中招了没?但如果出现以下这两种特殊情况,比如:用户请求的id在缓存中不存在。恶意用户伪造不存在的id发起请求。这样的用户请求导致的结果是:每次从缓存中都查不到数据,而需要查询数据库,同时数据库中也没有查到该数据,也没法放入缓存。
2025-11-24 19:40:19
940
原创 图文详解:插上网线后,你的 IP 地址是怎么 “入职” 的?
更关键的是,静态 IP 是 “终身绑定” 的 — 只要设备不修改配置,就会一直使用这个 IP,也正因此,静态 IP 适合打印机、监控摄像头这类需要长期稳定联网的固定设备。:局域网内使用的 IP 地址,比如常见的 192.168 开头的地址,它就像 “楼层内部工牌”,只能在局域网这个 “楼层” 工作,没法直接对接整个互联网 “写字楼”;:比如 114.114.114.114,相当于自带 “翻译工具”,能把 “百度”“微信” 这类 “公司简称”,也就是网址,翻译成具体的 “IP 门牌号”;
2025-11-24 19:39:44
927
原创 写错变量名,Java 性能居然快了 37%?
首先,字符串长几个字符,hashCode 计算也就多几个循环,在现代 CPU 面前就是纳秒级的事。结果第二天看监控,API 延迟从 127ms 降到了 80ms,足足提升了 37%。再退十万步,就算没有缓存,少几个字母,少乘几次 31 ,就能省出几十毫秒?先纠正一下,这哥们说的其实是字段名,不是变量名。就这简单的算法,他是怎么得出“长且相似就冲突更多”的结论的?兄弟们,我学了十几年 Java,今天算是开了眼了。原来系统慢,不是数据库、不是 GC、不是锁竞争。网络、数据库、锁、GC、I/O、线程调度……
2025-11-24 19:38:58
345
原创 点评爱奇艺巨作——负载均衡:高并发网关设计原理与实践!
这本由爱奇艺技术团队编著的著作系统性地阐述了高并发场景下的网关设计与负载均衡技术,内容涵盖从基础理论到生产实践的完整知识体系。全书分为三大部分:书中详细介绍了爱奇艺自主研发的"基于QPS和延迟的动态权重算法",该算法能够实时感知后端节点负载状况,在高峰期自动调整流量分配策略。例如在春节联欢晚会直播期间,系统成功应对了瞬间500万+的并发请求。著作深入讲解了"机房级->集群级->实例级"的三级容灾方案,通过智能DNS、就近路由、服务降级等多重保障机制,确保99.99%的可用性。书中以2019年某机房光纤被挖断
2025-11-23 16:24:15
296
原创 如何从程序员到架构师?需要具备哪些技能?
从改造现有系统痛点起步(如数据库分表方案),逐步承担更复杂的决策责任,同时建立技术影响力。从程序员成长为架构师需要系统性地提升技术深度、广度和软技能。如何从程序员到架构师?
2025-11-23 16:05:40
469
原创 替代ELK:ClickHouse+Kafka+FlieBeat才是最绝的
saas 服务未来会面临数据安全、合规等问题。公司的业务需要沉淀一套私有化部署能力,帮助业务提升行业竞争力。为了完善平台系统能力、我们需要沉淀一套数据体系帮助运营分析活动效果、提升运营能力。然而在实际的开发过程中,如果直接部署一套大数据体系,对于使用者来说将是一笔比较大的服务器开销。为此我们选用折中方案完善数据分析能力。
2025-11-23 15:53:59
802
原创 SpringBoot 数据权限新姿势,注解+动态SQL真香!
easy-data-scop 是一个通过动态注入SQL实现的数据权限项目。支持MyBatis、MyBatis-plus、MyBatis-flex。使用简单,无需设置各种复杂配置,仅仅通过注解便可实现效果功能。会根据find()方法返回的列表来构建SQL图片可以编写在对应需要数据权限拦截的方法上/*** 通过传递给DataScopeFindRule.find方法来获取指定的数据权限实体* @return*//*** 构建模板* TODO 注意:当key为多个时此值生效。
2025-11-23 15:53:15
409
原创 超越 AOP:搜集业务操作日志的 3 个新探索
基于以上的窗口机制,我们就可以对数据先进行范围的框定,通过窗口的滑动机制和补偿机制对窗口中的数据进行关联处理。通过以上的业务背景及实现落地过程,我感受到其实在日常业务需求对接和实现过程中,会伴随着各种各样的问题出现,会有很多因素让你对某技术方案进行舍弃,但是舍弃了A可能单来了B C D等一连串的问题,我们在做系统架构时,其实也是一个慢慢演进的过程,对技术实现的思路和方案要拥抱变化,摒弃自己的一些“技术极致”追求,做好兜底方案,完美的方案可能是少数,努力适配自己的技术架构和方案才是我们长期要做的。
2025-11-23 15:52:29
883
原创 百万数据检索真不用上ES!这套「低配高能」方案,网友直呼真香!
以后小伙伴们,业务中有类似的需求的时候,可以试试这种方案哈,别一个小小的系统还搞这些中间件哈,百分之99的开发碰不上,真的,我men只是配角!这种方式又会遇到问题,因为mysql不知道中文呀,它只知道有空格的英文,中文分词默认的方式不行,需要一种。实在不行,docker+ 主 从+从+从+从+从+从+从+从+从+从+从+从+从 .... 就能解决。话外~~~,其实写到这的时候就不想写了,现在gpt这么发达,还写博客,我都不知道自己在干嘛。通过相对比较精确的分词,可以很快的完成我们的目标,搜索 “
2025-11-23 15:51:32
129
原创 Spring Security + OAuth0 搭建高效认证与资源服务架构
OAuth 2.0(开放授权 2.0)是一个开放标准,用于授权第三方应用程序访问用户在资源所有者(用户)的帐户上存储的受保护资源,而无需共享用户凭据。OAuth 2.0 主要用于在互联网上安全地委托授权,广泛应用于身份验证和授权场景。
2025-11-23 15:50:45
376
原创 MyBatis标准日志输出有重大缺陷?手把手教你定制高性能日志方案!
我们在使用MyBatis或衍生产品时,通常会打开其默认日志输出功能,通过SQL日志来排查问题。MyBatis会为每个Mapper中的每个方法创建一个Log对象,所以前缀一般只需取到项目的根目录即可,但如果还引入根包名不同的子模块,还得一并添加。函数又会对其加锁调用,这就导致所有线程的SQL日志都是在排队输出。输出日志,众所周知,其输出时会阻塞当前线程,导致SQL查询不得不等待日志输出完后才能返回结果。这不仅可以解决日志输出的性能问题,也可以通过Log库配置统一SQL日志的格式和输出位置。
2025-11-23 15:49:48
406
原创 大公司为什么禁止 SpringBoot 项目使用 Tomcat?
同时,SpringBoot也支持Undertow容器,我们可以很方便的用Undertow替换Tomcat,而Undertow的性能和内存使用方面都优于Tomcat,那我们如何使用Undertow技术呢?Tomcat是完全免费的,深受开发者的喜爱。在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。
2025-11-23 15:49:10
773
原创 SpringBoot 接口防抖(防重复提交)的一些实现方案
在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。key分隔符是用来将多个参数合并在一起的,比如userName是张三,userPhone是123456,那么完整的key就是"张三&123456",最后再加上redis锁前缀,就组成了一个唯一key。从测试的结果上看,防抖是做到了,但是随着缓存消失、锁失效,还是可以发起同样的请求,所以要真正做到接口幂等性,还需要业务代码的判断、设置数据库表的UK索引等操作。
2025-11-19 20:24:28
823
原创 SpringBoot+WebSocket实时监控异常
最近做了一个需求,消防的设备巡检,如果巡检发现异常,通过手机端提交,后台的实时监控页面实时获取到该设备的信息及位置,然后安排员工去处理。前端略微复杂,需要在一张位置分布图上进行鼠标描点定位各个设备和根据不同屏幕大小渲染,本文不做介绍,只是简单地用页面样式进行效果呈现。预期效果,未接收到请求前----->id为3的提交了异常,id为3的王五变成了红色。我们可以看到,id为3的王五状态已经变成异常的了,实时通讯成功。2、因为是模拟数据,所以全部显示正常,没有异常提交时的页面呈现。控制台输出,连接成功。
2025-11-19 20:23:49
381
原创 踩坑了,BigDecimal 使用不当,造成P0事故!
BigDecimal 创建出来的是对象,我们不能用传统的加减乘除对其进行运算,必须使用他的方法,在我们数据库存储里,如果我们使用的是 double 或者 float 类型,需要进行来回的转换后进行计算,非常不方便。float 和 double 类型,主要是为了科学计算和工程计算而设计的,之所以执行二进制浮点运算,是为了在广泛的数值范围上提供较为精确的快速近和计算。通过测试发现,当使用 double 或者 float 这些浮点数据类型时,会丢失精度,String、int 则不会,这是为什么呢?
2025-11-19 20:23:02
270
原创 号称取代 Elasticsearch,太猛了!
Manticore Search 充分利用了 Sphinx,显着改进了它的功能,修复了数百个错误,几乎完全重写了代码并保持开源。这一切使 Manticore Search 成为一个现代,快速,轻量级和功能齐全的数据库,具有出色的全文搜索功能。对于更大的数据集,Manticore通过Manticore Columnar Library提供列存储支持,可以处理无法适合内存的数据集。Manticore是基于SQL的,使用SQL作为其本机语法,并与MySQL协议兼容,使您可以使用首选的MySQL客户端。
2025-11-19 20:22:23
233
原创 细数一些 JDK8 踩过的坑,说多了都是泪
遇到最大的坑:直接将 stream 修改成 parallelStream , 天真地以为做了性能优化。其他场景不再赘述,一定要知道 parallelStream 是并行的,多线程的问题它都有。stream 不同于数据库的排序操作,为 null 时数据库会默认排序,但这个API不会。下面案例:value 值由函数值返回,模拟返回 null, 运行结果 NPE。业务查询结果,先按第一个字段排序,相同再按照第二个字段排序......案例:模拟从 DB 检索出来的数据,按照业务要求进行多字段排序。
2025-11-19 20:21:51
823
原创 太方便了!SpringBoot 只需一个注解,就能搞定任意对象下载!
下载功能应该是比较常见的功能了,虽然一个项目里面可能出现的不多,但是基本上每个项目都会有,而且有些下载功能其实还是比较繁杂的,倒不是难,而是麻烦。因此,为了简化这一过程,有一个工具库,使得下载功能的实现变得更加简单快捷。❝传送门:https://github.com/Linyuzai/concept/wiki/Concept-Download❞如果我说现在只需要一个注解就能帮你下载任意的对象,是不是觉得非常的方便感觉差别不大?那就听听我遇到的一个下载需求。
2025-11-19 20:21:19
634
原创 SpringBoot + Nacos + k8s 优雅停机
ribbon 默认缓存刷新时间30s;停机的服务监听nacos反注册事件,判断是自己反注册了,表示准备关机,那么就可以停止对mq消息的监听,停止定时任务,这样就比在优雅停机时,进行mq 和 定时任务的停止更完美。上面的方案中,提到nacos反注册时,其他服务监听反注册事件,进行ribbon缓存刷新,那么,反注册的服务(停机服务)自身,是否可以也监听该事件呢?上面的步骤,其实还缺了不少基础的内容,比如,停止请求外,还要停止接收定时任务、停止接收mq消息,等待他们的完成,这2项都是我们微服务中必不可缺的能力。
2025-11-19 20:20:39
695
原创 用雪花 id 和 uuid 做 MySQL 主键,被领导怼了
在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?本篇博客我们就来分析这个问题,探讨一下内部的原因。本篇博客的目录mysql程序实例 使用uuid和自增id的索引结构对比 总结。
2025-11-19 20:20:07
847
原创 SSO 单点登录和 OAuth2.0 有何区别?
此方法的缺点是它依赖于浏览器和会话状态,对于分布式或者微服务系统而言,可能需要在服务端做会话共享,但是服务端会话共享效率比较低,这不是一个好的方案。首先,SSO 主要关注用户在多个应用程序和服务之间的无缝切换和保持登录状态的问题。这种方法通过将登录认证和业务系统分离,使用独立的登录中心,实现了在登录中心登录后,所有相关的业务系统都能免登录访问资源。在单点登录的上下文中,OAuth 可以用作一个中介,用户在一个“授权服务器”上登录,并获得一个访问令牌,该令牌可以用于访问其他“资源服务器”上的资源。
2025-11-19 20:16:34
503
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅