- 博客(1216)
- 收藏
- 关注

原创 阿里架构师:天天高并发,这个时代达不到百万以上的并发量都不叫高并发!!!
对象的共享对象的组合基础构建模块第二部分介绍了并发应用程序的构造理论,包括应用程序中并行语义的分解及其与逻辑任务的映射,任务的取消与关闭等行为的实现,以及Java线程池中的一些高级功能,此外还介绍了如何提高GUI应用程序的响应性。任务执行取消与关闭线程池的使用图形用户界面应用程序第三部分介绍了并发编程的性能调优,包括如何避免活跃性问题,如何提高高并发代码的性能和可伸缩性以获得理想的性能,以及在测试并发代码正确性和性能时的一些实用技术。避免活跃性危险性能与可伸缩性并发程序员的测试。
2024-04-17 14:46:42
1512

原创 阿里Java面试手册-Java面试题总结(附答案)——互联网大厂都在问的Java面试题,而你从没看过!
索引是一种数据结构,用于加快数据库的查询速度。在MySQL中,可以使用CREATE INDEX语句来创建索引。例如,CREATE INDEX idx_name ON table_name (column_name);可以创建名为idx_name的索引,它将基于table_name表中的column_name列。Spring cloud流应用程序启动器是基于Spring Boot的Spring集成应用程序,提供与外部系统的集成。
2024-04-13 19:29:51
951

原创 Java程序员真的还有未来吗?如何备战2024春招Java面试?并狂拿大厂offer?(java高级岗)
嘿,小伙伴们,你们有没有想过Java程序员还有没有未来?哈哈,别担心,我这就来给你们答疑解惑!首先,让我们来看看Java的发展历程。自从Java诞生以来,它就一直是编程界的一颗璀璨明星。从Web应用到企业级应用,再到移动应用,Java无处不在。那么,现在呢?现在,随着人工智能、大数据和云计算的兴起,Java依然发挥着重要的作用。这些领域都需要大量的Java程序员来支持它们的发展。那么,有人会说:“哎呀,现在出现了那么多新的编程语言和框架,Java程序员会不会被淘汰啊?”哈哈,别担心,Java程序员们。
2024-04-11 19:32:01
1808
原创 JAVA后端面试场景题:请谈谈你在项目中是如何实现限流、熔断和降级的?
Sentinel 是通过 滑动时间窗口计数 + 多种策略(如 QPS、线程数) 来实现限流的,可以对资源(方法、接口、服务)进行精细化的流控设置,确保系统在高并发下的稳定性。其中我们主要使用了QPS 限流模式,通过 WarmUp(预热,令牌桶)、RateLimiter(匀速器,漏桶)等限流控制器实现削峰,防止系统瞬间过载。配合 fallback 策略或异步队列削峰,保证核心功能稳定。同时可利用热点参数限流防止防止攻击型、倾斜型访问打垮某接口。
2025-07-07 16:07:14
872
原创 MyBatis动态SQL(认真看看, 以后写SQL就爽多了)
MyBatis 令人喜欢的一大特性就是动态 SQL。在使用 JDBC 的过程中, 根据条件进行 SQL 的拼接是很麻烦且很容易出错的。MyBatis 动态 SQL 的出现, 解决了这个麻烦。MyBatis通过 OGNL 来进行动态 SQL 的使用的。
2025-07-07 15:25:06
983
原创 SpringBoot 五种热部署方式,提高生产效率!
此种方式的特点是作用范围广,系统的任何变动包括配置文件修改、方法名称变化都能覆盖,但是后遗症也非常明显,它是采用文件变化后重启的策略来实现了,主要是节省了我们手动点击重启的时间,提高了实效性,在体验上回稍差。此种方式为最简单最快速的一种热部署方式,运行系统时使用Debug模式,无需装任何插件即可,但是无发对配置文件,方法名称改变,增加类及方法进行热部署,使用范围有限。Jrebel是Java开发最好的热部署工具,对Spring Boot 提供了极佳的支持,JRebel为收费软件,试用期14天。
2025-07-07 15:22:33
186
原创 面试官:为什么SpringBoot的 jar 可以直接运行?
LaunchedURLClassLoader重写了loadClass方法,也就是说它修改了默认的类加载方式(先看该类是否已加载这部分不变,后面真正去加载类的规则改变了,不再是直接从父类加载器中去加载)。return cls;加载规则:如果根类加载器存在,调用它的加载方法。这里是根类加载是ExtClassLoader。
2025-07-07 15:15:40
401
原创 分页?太Low !MyBatis 流式查询,才是王道!
本篇文章主要介绍的是MyBatis 流式查询!指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果。流式查询的好处是能够降低内存使用。如果没有流式查询,我们想要从数据库取 1000 万条记录而又没有足够的内存时,就不得不分页查询,而分页查询效率取决于表设计,如果设计的不好,就无法执行高效的分页查询。因此流式查询是一个数据库访问框架必须具备的功能。
2025-07-07 15:14:06
268
原创 Java程序员秋招面试指南+Java面试题分享
根据2025年最新大厂面试趋势,结合高频真题和备战策略,为你梳理以下Java秋招面试指南。内容分为三部分,助你高效备战!
2025-07-06 17:11:19
771
原创 SpringBoot 快速实现 IP 地址解析
带大家在spring boot 项目中获取请求的ip与详细地址,我们的很多网站app 中都已经新增了ip 地址显示,大家也可以用在自己的开发中,显得更高级。如果使用本地ip 解析的话,我们将会借助ip2region,该项目维护了一份较为详细的本地ip 地址对应表,如果为了离线环境的使用,需要导入该项目依赖,并指定版本,不同版本的方法可能存在差异。
2025-07-06 15:39:04
224
原创 45 个 Git 经典操作场景,专治不会合代码
如果你需要删除推了的提交(),你可以使用下面的方法。可是,这会不可逆的改变你的历史,也会搞乱那些已经从该仓库拉取(pulled)了的人的历史。简而言之,如果你不是很确定,千万不要这么做。这只能在没有推送之前有用. 如果你已经推了, 唯一安全能做的是, 那会创建一个新的提交(commit)用于撤消前一个提交的所有变化(changes);或者, 如果你推的这个分支是rebase-safe的 (例如:其它开发者不会从这个分支拉), 只需要使用。
2025-07-06 15:37:11
541
原创 Java秋招面试技能储备指南——系统性突破技术壁垒,掌握面试主动权
亲爱的开发者,当你翻开这份指南时,你正站在Java技术栈的广袤疆域前,而秋招的战场已悄然拉开序幕。在激烈的竞争中,。这不是一份简单的知识点罗列,而是我们结合数十家一线大厂(阿里、腾讯、字节、美团等)近年Java岗位面试真题,提炼出的和。—— 直击200+高频面试点,拒绝无效复习—— 洞悉技术原理背后的设计哲学与工程价值—— 从背诵答案到掌握问题拆解逻辑。
2025-07-04 17:27:55
1519
原创 解放双手:SpringBoot 公共字段自动填充的6种神技,开发效率飙升!
在开发外卖系统订单模块时,我发现每个实体类都包含create_time、update_by等重复字段。手动维护这些字段不仅效率低下,还容易出错。本文将分享一套经过生产验证的自动化方案,涵盖MyBatis-Plus、AOP、JWT等六种核心策略,助你彻底摆脱公共字段维护的烦恼。痛点总结:代码重复率高(每个Service方法都要设置)维护成本高(字段变更需修改多处)容易遗漏(特别是更新操作)2.2 实体类注解配置三、进阶方案:AOP统一处理3.1 自定义注解3.2 切面实现
2025-07-04 16:09:46
301
原创 MyBatis标准日志输出有重大缺陷?手把手教你定制高性能日志方案!
我们在使用MyBatis或衍生产品时,通常会打开其默认日志输出功能,通过SQL日志来排查问题。MyBatis会为每个Mapper中的每个方法创建一个Log对象,所以前缀一般只需取到项目的根目录即可,但如果还引入根包名不同的子模块,还得一并添加。函数又会对其加锁调用,这就导致所有线程的SQL日志都是在排队输出。输出日志,众所周知,其输出时会阻塞当前线程,导致SQL查询不得不等待日志输出完后才能返回结果。这不仅可以解决日志输出的性能问题,也可以通过Log库配置统一SQL日志的格式和输出位置。
2025-07-04 16:06:58
304
原创 别提桶跑路,MySQL 误删数据救命指南来了!
我们可以通过binlog找回误删的数据,前提是开启了binlog。建议binlog模式为row模式,否则没办法根据正向操作生成逆向操作。有一些开源工具可以自动解析binlog,并且生成逆向操作。
2025-07-04 16:04:30
973
原创 百万数据检索真不用上ES!这套「低配高能」方案,网友直呼真香!
以后小伙伴们,业务中有类似的需求的时候,可以试试这种方案哈,别一个小小的系统还搞这些中间件哈,百分之99的开发碰不上,真的,我men只是配角!这种方式又会遇到问题,因为mysql不知道中文呀,它只知道有空格的英文,中文分词默认的方式不行,需要一种。实在不行,docker+ 主 从+从+从+从+从+从+从+从+从+从+从+从+从 .... 就能解决。话外~~~,其实写到这的时候就不想写了,现在gpt这么发达,还写博客,我都不知道自己在干嘛。通过相对比较精确的分词,可以很快的完成我们的目标,搜索 “
2025-07-04 16:02:13
350
原创 SpringCloud微服务架构实战之认识微服务系统架构的发展历史
微服务架构是近两年在软件架构领域出现的一个新名词。虽然诞生时间不长,但其在各种演讲、文章、图书中出现的频率已经让很多人意识到它给软件领域所带来的影响。到底什么是微服务架构呢?当我们谈论微服务时,它代表一种什么样的含义?它与传统的面向服务的体系结构(或称架构)(ServiceOriented Architecture,SOA)有什么异同点?本章,我们将揭开微服务的神秘面纱。本章的主要内容如下。1.系统架构的发展历史。2.常见的微服务架构。3.Spring Boot和Spring Cloud的关系。
2025-07-03 13:52:04
675
原创 假如你从7月开始准备Java面试,如何秋招拿下offer?
系统设计与架构:学习如何设计高可用、高性能、可扩展的系统;了解微服务架构的基本理念。算法和数据结构:复习常见算法(排序、查找等),并练习LeetCode上的题目以提高解题能力。项目经验整理:准备好讲述自己参与项目的细节,尤其是遇到的问题及解决方案,突出自己的贡献和技术亮点。记得定期回顾之前学过的内容,确保知识牢固掌握。同时,实际动手编写代码非常重要,可以通过参与开源项目或者自己做一些小项目来加深理解和实践。
2025-07-03 13:41:22
887
原创 10年架构师1600字精讲微服务架构原理之API网关的意义
◎ API网关的意义◎ API网关的职责◎ API网关的缺点◎ 使用API网关认证身份◎ API网关技术实战网关的英文是Gateway,翻译为门、方法、通道、途径。API网关就是接口的通道或接口的大门。要想访问API,就必须通过API网关,为什么要有API网关,这样做有什么作用?带着这些问题,我们来学习本章的内容。
2025-07-01 15:47:29
776
原创 38件程序员应该知道的事儿
在一次迭代开始时,各项需求看上去安排的张弛有度,但仍无法避免在某个时间承受巨大的进度压力,当你发现必须在和之间选择时候,一般都会选择,并提醒自己将来再回头来返工优化。但实际上下一轮迭代总会有下一个问题,将来永不会来。这类久拖不决的任务就是就像贷款,短期能获得好处,但你总要付出利息。时间久了,利息也将是一笔难以偿还的债务。因为有债务的存在,新功能的加入将变得困难,而且这些债务也将是bug的滋生地。我们很容易说服自己,当前变更引入的一点点并不算什么大问题。就跟破窗效应一样,只要放开了口子,系统会腐化的很快。
2025-06-30 22:11:30
1021
原创 微服务架构原理之契约测试的相关技术与用法实战!
之前提到过,TDD属于开发方法,契约测试则是一种工程实践,在了解了TDD和契约测试的相关概念和原理后,下面介绍在实际项目实战中的具体技术框架和用法。
2025-06-30 21:05:07
561
原创 微服务架构原理之契约测试与独立交付!
前面讲解了微服务的定义,其中多次提到一个重要的特点:微服务能够自动地独立部署。随着我们对系统要求的不断提高,自动部署早已不是难题,我们还希望程序能够自动交付到客户手中,即自动部署到生产环境中,这也是现在大家经常提到的CI(ContinuousIntegration ,持续 集成 )和 CD(Continuous Delivery, 持续交付)。
2025-06-29 16:10:18
535
原创 微服务架构原理之契约测试概述及TDD!
契约也就是合约,是双方当事人意见一致并且要共同遵守的行为表示,服务的调用者和提供者就好比签订契约的甲方和乙方。契约测试就是验证签订契约双方的行为是否符合契约。通常我们并不知道服务间的依赖关系是怎样的,如每个接口的消费者是谁,相同的接口不同的消费者都需要哪些数据,这些消费者正在消费哪个版本的接口等,要在一个项目中厘清这些问题显然有些困难,哪怕管理做得再好,也不可能面面俱到,而且文件记录和实际情况往往会有差距。如何能准确地检测接口的变化所带来的影响?是否管理所有服务端与消费者之间的关系?
2025-06-29 15:53:52
755
原创 SpringCloud相关组件——分布式链路跟踪!
已经可以通过如Hystrix Dashboard和Spring Boot Actuator等方式监控服务的运行状况,微服务的调用和依赖往往是复杂的,如图3.2所示,这时如果系统出现异常,随着系统的调用链越来越长,我们将无法快速地定位,甚至无法定位到底哪个服务出现了问题。所以需要一种可以追踪调用链、快速定位问题信息的工具,分布式链路跟踪就是这种工具。同样地,Spring Cloud也为我们提供了分布式链路跟踪的框架:Spring Cloud Sleuth。
2025-06-27 21:02:46
453
原创 阿里P8面试官给校招及社招程序员的建议(JAVA岗)!
JVM内存模型(堆分区与GC算法)、并发包(AQS源码级理解)、集合框架(HashMap扩容死链问题)。// 更新库存(内部调用this.deduct())// 问题3:为什么重写equals()必须重写hashCode()?至少掌握200道LeetCode(重点:二叉树、链表、DFS/BFS、动态规划)。// 问题2:JDK8中链表转红黑树的阈值是多少?| Redis锁 | 性能高(内存操作) | 脑裂时可能超卖(AP模型) |容量取≥10的最小2次幂(16),阈值=容量×负载因子(0.75)=12。
2025-06-27 20:56:30
804
原创 2025年Java面试:一线大厂高频面试题精选(附答案要点)!
行情结论:Java需求旺盛,但门槛大幅提高,架构设计+原理深挖是核心竞争力。能否进大厂:系统学习后完全可能,但需6个月以上高强度准备,重点突破分布式与高并发场景。学习资源推荐框架:Spring Boot 3.2官方文档、Dubbo源码。分布式:阿里云分布式实验课。题库:2025版《Java面试全解析》(含答案)。机会只偏爱有准备的头脑——现在开始逐模块突破,大厂Offer并不遥远。
2025-06-26 21:37:40
1336
原创 SpringCloud相关组件——健康监控!
使用@Endpoint注解来声明这是一个端点,并且定义了端点的ID,为了简便就不实现持久化的存储了,仅使用AtomicInteger来做请求次数的统计,提供record方法去记录请求次数,通过@ReadOperation注解 提 供 GET 方 法 的 返 回 , Actuator 还 提 供 了 @WriteOperation 和@DeleteOperation注解,与HTTP的方法映射关系如下。例如,统计一个通过ID获取用户的API的请求次数,先定义一个端点来做统计这件事情,代码如下。
2025-06-26 20:56:21
488
原创 SpringCloud相关组件——断路器!
在微服务项目中常常会遇到雪崩效应。什么是雪崩效应呢?雪崩效应最开始出现在密码学中,是指当输入发生最微小的改变,如反转一个二进制位时,也会导致输出的不可区分性的改变。也就是说,无论密钥或明文的任何细微变化都必将引起密文的改变,这对密码学来说是一个好事情,雪崩效应会导致你的加密算法无法仅仅通过输出和输入就被推算出来。因此,从加密算法或加密设备的设计者角度来说,满足雪崩效应是必不可缺的准则。而在微服务中,雪崩效应就不是一个好事情了。
2025-06-26 20:53:53
701
原创 阿里巴巴Java架构师岗面试题(正式版)!
1、为什么要用SpringBoot2、Spring Boot的核心注解是哪个?它主要由哪几个注...3、运行Spring Boot有哪几种方式?4、如何理解Spring Boot中的Starters?5、如何在Spring Boot启动的时候运行—些特定的代码?6、Spring Boot需要独立的容器运行吗?7、Spring Boot中的监视器是什么?8、如何使用Spring Boot实现异常处理?9、你如何理解Spring Boot中的Starters?
2025-06-25 20:28:06
728
原创 SpringCloud相关组件——统一配置中心!
统一配置中心◎ 断路器◎ 健康监控◎ 分布式链路跟踪第2章中介绍了微服务的核心技术及相关的技术实现,服务的远程调用和服务的注册发现是微服务的两大核心架构组件,当有了这两个功能,服务消费者就可以动态地发现和剔除服务提供者,并且可以设置适合的负载均衡策略,灵活地选择需要调用的服务器。这虽然已经可以满足微服务一些基础的日常功能要求,但也没有这么简单,还存在一些如海量服务的容错问题、雪崩问题、配置和监控问题、日志追踪问题等。本章将介绍Spring Cloud的相关微服务组件,以及解决这些问题的方法。
2025-06-24 16:37:14
495
原创 大佬用9000字直接带你搞定微服务的核心组件!
那么一旦分离后再组合,就意味着服务之间一定会存在相互调用的过程,在前面微服务的定义中提到过,微服务之间都使用粗糙的通信机制,它一定是轻量级的,而且是可以支持跨语言调用的,包括微服务本身对客户端提供服务也是采用这种机制的。在一些早期的项目中,可以看到Apache HttpComponents的身影,它的功能也十分强大,但是在使用时,需要编写大量的基础代码,往往还需要进行二次封装,而在如今Spring Boot盛行的时代,大家更热衷于现取现用,正所谓约定大于配置,所有的基础工作都按照一定的约定交由框架来完成。
2025-06-24 16:33:26
647
原创 那些年入百万的阿里P8大佬是如何精通微服务架构原理的?
阿里P8的成长路径证明:微服务的精通不仅是技术组件的堆砌,更是对分布式复杂性的掌控力与业务架构的抽象能力——这是百万年薪背后的核心壁垒。但是,有的程序员会说,看你小编长篇大论的,看是看完了,但是看不懂,级别不够,这些知识,不知道该如何去掌握。别慌,小编这就给您分享一份微服务架构原理与开发实战的秘籍,包你一学就会,一看就懂;都是前人的智慧总结,一步步沉淀下来的,绝对是最符合你的胃口的;
2025-06-23 19:13:18
425
原创 微服务架构设计其实没那么难,大佬用5400字带你轻松搞定!
◎ 微服务架构的难点◎ 架构设计◎ 微服务的核心组件微服务架构有两个难点:一是微服务架构本身的核心组件的落地设计,即技术实现;二是微服务在物理上的层次结构和拆分设计,这也是微服务架构设计是否成功的关键因素。
2025-06-23 11:40:55
788
原创 12000字彻底讲明白微服务的概念/挑战+微服务与SOA+单体式架构!
微服务在设计之初就是致力于解决单体式架构的问题而出发的,所以它几乎可以解决单体式架构面临的所有问题。虽然微服务本身也有一些缺陷,但丝毫不影响它替代单体式架构成为主流架构的步伐。那么,微服务架构到底能解决哪些问题呢?微服务能解决的问题下面从1.3.2节中总结的单体式架构的缺点来分析。首先,微服务解决了难以维护的问题。
2025-06-23 11:38:44
955
原创 程序员秋招Java开发工作太难找了!根本没岗位!普通程序员如何破局?
以前会个SSM、CRUD就能找到工作,现在呢?前几年Java火得一塌糊涂,培训班批量生产“速成程序员”,导致现在初级Java遍地都是。HR筛简历时,看到“培训班+项目克隆”的简历直接pass,连面试机会都不给。虽然初级Java饱和,但中高级Java、架构师岗位还是很缺人。作为一个过来人,我完全懂这种焦虑,毕竟现在Java市场确实卷得离谱,但真的没机会了吗!如果你是完全零基础,自学效率低,靠谱的培训班确实能帮你系统学习。Java仍然是企业级开发的主流语言,市场需求依然很大,只是。“培训班出来的根本没人要……
2025-06-22 19:42:22
476
原创 采用SpringWebFlux框架重新改造一下促销活动的微服务项目实战!
MicroservicePromotionApplication主类即可访问促销活动接口http://localhost:8081/api/pushPromotion?在前面,microservice-promotion项目是基于Spring Boot开发的,这里将使用Spring WebFlux框架进行项目改造,并进行完整的代码展示。//领取奖品接口,/api/ getPrize?//促销活动投放接口,/api/pushPromotion?
2025-06-22 17:27:51
615
原创 2000字带你彻底搞懂Spring WebFlux框架!
Spring MVC是为Servlet API和Servlet容器专门构建的。而Spring WebFlux是异步非阻塞的,支持在Netty、Undertow和Servlet3.1+容器之类的服务器上运行。Spring Boot 2默认WebFlux是基于Netty实现的。如图12.3所示,Spring WebFlux与Spring MVC的Web注解是一致的,这样便减少了从Spring MVC迁移到Spring WebFlux的成本。
2025-06-22 17:26:29
615
原创 面临秋招!卷S人的Java中高级核心知识全面解析面试手册,涨薪跳槽拿高薪靠它了!
Java就业难度因人而异,具备扎实基础和持续学习能力的开发者仍有较多机会。建议结合行业趋势补充技能短板,注重项目与简历的匹配度。
2025-06-20 16:23:59
964
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人