自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 其实,从程序员到架构师,只需要掌握这些知识点就够了!

大家是不是特别想知道,怎么样才能程序员跃升为架构师呢?其实,特别简单!从程序员成长为架构师,需要突破单一技术视角,从全局去思考,去构建涵盖技术深度、系统设计、业务思维和软技能的综合知识体系。以下是关键知识点的结构化梳理,大家可以仔细看看!

2025-06-12 07:30:00 340

原创 我说白了,Java项目化程序设计也就这样嘛,轻轻松松直接拿下

这是一个基于Java开发的学生成绩管理程序,支持添加、查询、修改和删除学生成绩信息,并可按科目或总分进行排序统计。这是一个基于Java Swing或JavaFX开发的图形化四则运算练习程序,提供友好的用户界面,支持随机生成加减乘除题目,并实时反馈答题结果和得分统计。可作为进阶练习项目,帮助掌握基础图形界面开发技能。且在Java项目化开发中谈论‘高并发’时,往往陷入对技术名词的盲目追捧——从线程池参数调优到Reactive编程,开发者们疲于追赶各种技术潮流,却忽略了并发问题本质上是资源调度与状态管理的艺术。

2025-06-11 20:01:24 323

原创 MySQL常用函数,程序员真得看看

相当于java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名1)隐藏了实现细节 2)提高代码的可重用性。select 函数名(实参列表)【from 表】 【】中内容可省略。1 switch case 的效果。2 类似于多重if case。

2025-06-11 15:11:18 198

原创 看完这篇Redis缓存三大问题,保你面试能造火箭,工作能拧螺丝

日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题。一旦涉及大数据量的需求,如一些商品抢购的情景,或者主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘磁盘读/写速度问题有严重的性能弊端。在这一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。为了克服上述的问题,项目通常会引入NoSQL。

2025-06-11 15:09:16 270

原创 Java多线程的地狱级 Bug:死锁如何产生?如何避免?

死锁根源:多个线程以不同顺序竞争资源。关键预防:固定锁顺序、超时机制、减少锁竞争。最佳实践:优先使用无锁结构(如并发集合)、避免嵌套锁、合理设计资源分配。通过合理设计锁的获取顺序和减少资源竞争,可以有效避免死锁问题。

2025-06-06 16:32:56 646

原创 JVM- 类的加载过程、类加载器,看这就够了。

类从加载到内存中开始,到卸载出内存位置,为类的生命周期。包括加载(loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initiazation)、使用(Using)、卸载(Unloading)7个阶段。其中验证、准备、连接统称为连接(linking)。其中加载、验证、准备、初始化和卸载这5个阶段的顺序是一定的;类的加载过程必须按照这个顺序按部就班的开始,而解析阶段不一定;

2025-06-06 16:28:44 527

原创 一文详解AQS(AbstractQueuedSynchronizer)

并发使计算机得以充分利用计算能力,有效率地完成各类程序任务。当深入地学习 Java 中的并发,不可避免地将学习到锁 —— 使并发的资源能被正确访问的手段。锁的学习也将分为两部分,一部分是如何加解锁,另一部分是把锁分配给谁。AQS(AbstractQueuedSynchronizer)也叫“抽象队列同步器”,它提供了“把锁分配给谁"这一问题的一种解决方案,使得锁的开发人员可以将精力放在“如何加解锁上”,避免陷于把锁进行分配而带来的种种细节陷阱之中。

2025-06-06 16:23:00 880

原创 一文读懂 MCP:让 AI 更聪明、更实用的“魔法协议”

MCP 的诞生,不仅弥补了大型语言模型的短板,还为 AI 应用的未来打开了一扇大门。它通过标准化的设计,让开发者可以更专注于创新,而不是纠结于繁琐的工具适配;通过强大的安全机制,让企业能够放心地用 AI 处理敏感数据。随着 OpenAI 等科技巨头的支持,MCP 的影响力正在迅速扩大。它很可能成为 AI 界的“HTTP”,连接模型与外部世界的坚实基石。想象一下未来的生活:你问 AI “帮我订张去北京的机票”,它不仅能查到航班信息,还能直接帮你完成支付;

2025-06-06 14:55:18 647

原创 TreeMap源码分析与红黑树实现原理

TreeMap通过红黑树保证数据的有序性,同时提供 O(log n) 级别的查找、插入和删除操作。掌握红黑树的旋转(左旋、右旋)及平衡调整机制,可以更好地理解TreeMap的内部实现!

2025-06-06 14:48:45 717

原创 数据仓库、数据湖、湖仓一体都是什么意思,究竟有什么区别?

近几年大数据概念太多了,数据库和数据仓库还没搞清楚,就又出了数据湖,现在又说什么“湖仓一体”。乙方公司拼命造概念,甲方公司不管三七二十一,吭哧吭哧花钱搞数据建设。到头来发现,钱也花了,人力也投入了,但最基本的业务需求都解决不了。这篇就专门来解释一下数据库、数据仓库、数据湖、湖仓一体到底都是什么以及怎么用。

2025-06-06 14:45:26 581

原创 MySQL 性能优化思路和工具

所以,如果在面试的时候再问到这个问题“你会从哪些维度来优化数据库”,你会怎么回答?除了对于代码、SQL 语句、定义、架构、配置优化之外,业务层面的优化也不能忽视。举两个例子:1)在某一年的双十一,为什么会做一个充值到余额宝和余额宝奖金的活动,例如充300 送 50?因为使用余额或者余额宝付款是记录本地或者内部数据库,而使用银行卡付款,需要调用接口,操内部数据库肯定更快。2)在去年的双十一,为什么在凌晨禁止查询今天之外的账单?这是一种降级措施,用来保证当前最核心的业务。

2025-06-05 21:02:34 867

原创 阿里大佬的算法学习笔记:树状数组

树状数组(inaryndexree,)也是很多OIer心中最简洁优美的数据结构之一。最简单的树状数组支持两种操作,时间复杂度均为当然,树状数组能维护的不局限于加法,支持的操作也不止这两种,甚至有大佬能用树状数组实现平衡树,但这篇笔记不会深入讨论(因为我也还不是很懂hh)。C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。

2025-06-05 20:58:50 846

原创 终于有人用7000字一次性把SpringBoot与微服务给讲明白了!

微服务架构是一种架构模式,区别于其他系统架构的构建方式和技术方案,微服务架构具有其固有特点。微服务架构的提出者Martin Fowler在其文章“Microservices”中定义了服务组件化、去中心化、基础设施自动化等多个微服务架构特点,正是这些特点为我们使用微服务架构进行系统设计提供了主要的切入点。从实施角度来讲,我们可以基于这些微服务架构的特点提炼出构建微服务架构三大要素,即服务建模、技术体系和研发过程。

2025-06-04 14:57:15 463

原创 8张图带你全面了解kafka的核心机制

其实kafka中的细节十分多,本文也只是对kafka的一些核心机制从理论层面做了一个总结,更多的细节还是需要自行去实践,去学习。

2025-06-04 14:55:12 973

原创 应届生拿到50w年薪offer,分享他的秋招经历

阅读书籍:《图解http》《图解TCP/IP》《TCP/IP详解卷1》

2025-06-03 17:30:08 1476

原创 定时任务的10种写法,长见识了

最近有几个读者私信给我,问我他们的业务场景,要用什么样的定时任务。确实,在不用的业务场景下要用不同的定时任务,其实我们的选择还是挺多的。我今天给大家总结10种非常实用的定时任务,总有一种是适合你的。

2025-06-03 16:28:20 973

原创 Dubbo如何优雅停机

static {在AbstractConfig的静态块中,Dubbo 注册了一个 shutdownHook(本质上是一个线程),用于执行 Dubbo 预设的一些停机逻辑,继续跟进ProtocolConfig.destroyAll()。

2025-06-03 16:24:30 908

原创 「Java 进阶」--Lambda & 函数式编程

前些年 Scala 大肆流行,打出来 Java 颠覆者的旗号,究其底气来源,无非是函数式和面向对象的“完美结合”,各式各样的“语法糖”,但其过高的学习门槛,又给了新来者当头一棒。

2025-06-02 14:33:10 687

原创 “幂等”不等于“分布式锁”,也不得不考虑返回值

在分布式系统中,幂等是一个非常重要的概念,常常与“重试”一起出现。当调用一个远程服务发生超时,调用方并不知道请求是否执行成功,这就是典型的“第三态”问题。对于这个问题最常见的解决方案便是进行主动重试,假如该操作是一个数据库插入操作,重试将对系统产生副作用(创建多条记录),这时我们常常会说,被调用接口需要保障幂等。

2025-06-02 14:28:59 1034

原创 都说Feign是RPC,没有侵入性,为什么我的代码越来越像 C++

随着 Spring Cloud 的流行性,Feign 已经成为 RPC 的事实标准,由于其构建与 Http 协议之上,对请求和返回值缺少规范约束,在日常开发过程中经常由于设计不当对系统造成一定的侵入性。看规范定义,可以断定其出自于 Web 开发规范,但在使用过程中却为系统增加了太多的模板代码。

2025-06-02 14:27:24 581

原创 微服务配置中心选型比较——Nacos、Apollo、Config

随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……对程序配置的期望值也越来越高:配置修改后实时生效,分环境、分集群管理配置,代码安全、审核机制……在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。所以,配置中心应运而生。目前公司使用阿里云管理所有服务,原因是为了降低运维成本——傻瓜式运维。服务部署使用edas,配置管理使用acm。

2025-05-30 21:51:40 224

原创 UUID用在MySQL中,性能到底好不好?

如果你在网上快速的做一个关于 UUID 和 MySQL 的搜索,你会得到相当多的结果。另:以上文章链接请在文章结尾处查看那么,像这样一个众所周知的话题还需要更多关注吗?显然是的。尽管大多数帖子都警告人们不要使用 UUID,但它们仍然非常受欢迎。这种受欢迎的原因是,这些值可以很容易地由远程设备生成,并且冲突的概率非常低。这篇文章,目标是总结其他人已经写过的东西,并希望能带来一些新的想法。

2025-05-30 21:50:49 850

原创 从企业数字化转型到云原生解决方案

今天重新整理下企业数字化和云原生解决方案。这个我在前面分享过多篇文章来谈数字化转型和云原生解决方案。对于企业数字化来讲,从企业的横向供应链集成到围绕智能制造的纵向集成,从消费互联到产业互联,从信息化到数字化。连接,数据,智能始终是企业数字化最核心的三大核心要素。企业数字化转型是一个系统工程,即涉及到业务梳理和重构,也涉及到物联网,IT等信息技术支撑,同时还涉及到组织和过程保障,客户管理和价值创造等。其一是涉及到云计算5G,物联网等核心技术其二是围绕云原生技术中台建设。

2025-05-29 20:10:42 891

原创 8位卷王!总结1135页Java核心面试手册,硬钢BATJ一线大厂面试官

虽然说错过了金三银四求职季!HR开始拼业绩,招聘网站也开始释放出大量岗位,转行跳槽、毕业求职的人都开始行动起来!此时,对于大多数程序员来说,最大的目标就是:进大厂!大厂为什么这么吸引程序员?在招聘网站搜索大厂JAVA开发岗,本科毕业薪资达到30K,甚至更高!是中小企业的2-3倍!编辑高额的薪水、丰厚的福利。简历大厂背书简直是超级buff加成。还有相对公平的竞争机制、优秀的人脉圈子、以及平台附加的资源配置等,都是绝大多数小企业难以达到的!所以,很多程序员的终极目标,都是进互联网大厂!

2025-05-29 20:08:02 256

原创 JVM上数据处理语言的竞争:Kotlin, Scala 和 SPL

SPL 的计算函数最丰富,且都是针对结构化数据对象设计的,SPL 极大地丰富了结构化数据运算内容,设计了很多超出 SQL 的内容,当然也是 Scala/Kotlin 不支持的函数,比如有序计算:归并、二分查找、按区间取记录、符合条件的记录序号;Scala 支持的数据源种类比较多,且有六种数据源接口是内置的,并针对结构化数据处理做了优化,包括:JDBC、CSV、TXT、JSON、Parquet 列存格式、ORC 列式存储,其他的数据源接口虽然没有内置,但可以用社区小组开发的第三方类库。

2025-05-28 14:53:43 841

原创 别再混淆了!JVM内存模型和Java内存模型的本质区别

JVM 内存模型(JVM Memory Model)和 Java 内存模型(Java Memory Model, JMM)是 Java 开发中两个非常重要的概念,但这两个概念很容易被搞混,所以本文就来通俗易懂的讲讲二者的区别。首先,我们先来看看各自的概念,以及其解决的问题。

2025-05-28 14:48:26 256

原创 这可能是全网Java学习路线最完整,最详细的版本了,没有之一

据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数量位居首位。而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!1.通过各大招聘网站统计,全国海量公司都在招聘Java开发工程师2.北京Java开发工程师平均薪资,即18530元3.全国Java开发薪资前三:北京 上海 广州。根据IDC的统计数字:就2017年来说,我国Java人才的缺口已达42.5万,并且以每年20%左右 的速度增长。HttpServletResponse响应中文乱码问题。

2025-05-27 20:24:33 1575

原创 一文竟能读懂Docker架构原理

docker镜像就是一个只读模板,比如,一个镜像可以包含一个完整的centos,里面仅安装apache或用户的其他应用,镜像可以用来创建docker容器,另外docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下周一个已经做好的镜像来直接使用。仓库分为两种,公有参考,和私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下周,国内的docker pool,这里仓库的概念与Git类似,registry可以理解为github这样的托管服务。

2025-05-27 15:21:19 1007

原创 全方位解析Java的序列化

相信大家日常开发中,经常看到Java对象“implements Serializable”。那么,它到底有什么用呢?本文从以下几个角度来解析序列这一块知识点~什么是Java序列化?为什么需要序列化?序列化用途Java序列化常用API序列化的使用序列化底层日常开发序列化的注意点序列化常见面试题序列化:把Java对象转换为字节序列的过程反序列:把字节序列恢复为Java对象的过程可以的。我们都知道,对于序列化一个对象需调用。

2025-05-27 15:18:21 718

原创 保持清洁的Git提交记录,三招就够了

有了这三个锦囊,相信大家的 git log 都无比的清晰,如果你还不知道,完全可以用起来,如果你的组内成员不知道,你完全可以推广起来,这样的 repo 看起来才更健康。

2025-05-26 16:45:22 693

原创 别自己瞎写工具类了!SpringBoot中自带工具类,开发效率增加一倍

SpringBoot 是一款非常流行的 Java Web 开发框架,它的出现极大地提升了 Java 开发的效率和便捷性。除了提供了丰富的开发组件和插件,SpringBoot 还自带了许多实用的工具类,这些工具类能够帮助开发者更快速地完成开发任务,从而大大提高开发效率。本文将介绍 SpringBoot 中自带的一些常用工具类,并探讨它们如何帮助开发者提高开发效率。通过本文的学习,相信读者能够更好地掌握 SpringBoot 的开发技巧,从而在开发中事半功倍。

2025-05-26 16:42:28 291

原创 Spring Security停止维护?拥抱Spring全新OAuth解决方案

以下全文 Spring Authorization Server 简称为: SAS。

2025-05-23 15:56:12 314

原创 现在的Java工程师都有一个通病.....

所谓Java工程师并不是要掌握全栈的技术,而是看你所掌握哪些技术优秀突出,来选择你的岗位,我收集过很多面试人员发布过的问题,那些来面试的人普遍存在一个问题,那就是根本没准备过有关面试问题,其实你提前一两个星期去了解面试考点,大差不差能勉强回答出来,大厂除外!有经验的程序员觉得自己能力够用,但一被问到细节就支支吾吾,答不上来没经验的更别提了,以为不会问专业有关的知识,结果一问一个不吱声。

2025-05-23 15:53:47 290

原创 征服LeetCode,你的刷题之路就此开始,手把手带你了解算法奥秘

打开LeetCode,看着题目发呆,脑子里一堆‘暴力解法’,提交后却只换来一个冰冷的‘Time Limit Exceeded’?别慌!就是你的救星!这里没有晦涩的理论,只有和。不管你是被‘动态规划’虐到怀疑人生,还是看到‘二叉树’就头皮发麻——哎呀,看到你这问题,我就不得不说,你这卡在算法学习的瓶颈上了啊。咱这行,不就是算法吃饭的嘛。别急,哥来给你掰扯掰扯,怎么学算法才能真练成个高手。先说个老实话,理论你是绕不过去的。

2025-05-22 18:44:45 859

原创 API 请求慢?这次锅真不在后端

原本这个问题认为跟前端无关,没想到最后吃瓜吃到自己头上。提升相关技能的知识储备以及思考问题的方式,可能会方便我们定位到此类问题。充分利用好浏览器的调试工具,对一个问题可以从多个角度出发进行思考。比如一开始,没想到本地也可以开启 HTTP / 2。后来偶然间想搜下是否有此类方案,结果还真有!

2025-05-22 14:36:34 651

原创 95% 的算法都是基于这 6 种算法思想

如果用 dp[n] 表示第 n 级台阶的方案数,并且由题目知:最后一步可能迈 2 个台阶,也可迈 1 个台阶,即第 n 级台阶的方案数等于第 n-1 级台阶的方案数加上第 n-2 级台阶的方案数。

2025-05-22 14:34:43 614

原创 SpringBoot如何配置Https访问

其实将springboot配置成https的方式很简单,重点是其背后的 SSL/TLS 协议,涉及到的对称加密、非对称加密、证书、CA,在下一篇中,我们将通过 wireshark,对基于 https 协议的交互进行抓包,来了解针对 https 请求,tcp 都做了什么。

2025-05-21 15:28:54 363

原创 一条Update语句的执行过程是怎样的?

今天的分享就到这了,我们平时一条Update语句其实内部会经历很多流程,语句解析、日志WAL,Buffer Pool等。通过今天这篇文章的分享相信大家对流程已经很清晰了,后续将继续带来Redo Log、UndoLog等内容,敬请期待!

2025-05-21 15:27:44 912

原创 2025年最新Java学习路线,走过路过不要错过!

最好的学习方式就是参阅官方文档。官方文档其次就是书籍,国内的好书自成体系,帮助我们掌握的知识点不至于太散。这是一份非常详细的学习路线,把上面的内容学完之后,找到一份比较好的工作已经比较容易。另外,我在上面也说了,如果你觉得内容比较多自己学不完或者如果你只想找到一份小厂的开发工作的话,建议你把重心放在 Java基础、数据库、常用框架、常用工具上。像 JVM、微服务这些知识点,掌握了基础部分再来学习。

2025-05-20 18:57:17 1960

原创 Java动态代理机制和实现原理详解

格式,然后动态生成代理类. 所有的代码生成工作由。因此只需要两个步骤即可完成代理对象的创建。与否的规则生成代理类的名称 -为了简化对象创建过程。

2025-05-20 14:42:26 954

空空如也

空空如也

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

TA关注的人

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