干货合集 | 500 篇Java技术文章整理

今天,给大家推荐一位 Java 架构领域做得非常好的朋友:师长。

师长的公众号:Java进阶架构师 这3年来累积了 200 篇优质原创文章,及各类优质技术文章共500篇。

其号内专注于 原理、架构设计、微服务、高并发、JVM调优、BAT面试专栏进阶架构专栏。专注原理、源码、实战落地,而不是市面上绝大多数的“如何使用xxx”的简易Demo教程。

关注师长,让本该造火箭的你,不再拧螺丝!作为读者的我也受益良多,强烈推荐大家关注!

长按扫码关注

下面是师长公众号内部分优质的文章专题,与市面上质量良莠不齐的公众号最大的区别就是,有许多优质深度原创技术文章是该公众号独有!大家关注看看就知道了。

Spring Boot 源码分析 专题

  1. 【原创】001 | 搭上 SpringBoot 自动注入源码分析专车

  2. 【原创】002 | 搭上 SpringBoot 事务源码分析专车

  3. 【原创】003 | 搭上基于 SpringBoot 事务思想实战专车

  4. 【原创】004 | 搭上 SpringBoot 事务诡异事件分析专车

  5. 【原创】005 | 搭上 SpringBoot 请求处理源码分析专车

  6. 【原创】006 | 搭上 SpringBoot 参数解析返回值处理源码分析专车

  7. 【原创】007 | 搭上 SpringBoot 拦截器源码分析专车

  8. 【原创】008 | SpringBoot 源码专车中段总结(共8篇)

连载中

Spring Boot 进阶 专题

  1. 干货 | SpringBoot注解大全,值得收藏

  2. 实战 | 手把手带你用数据库中间件Mycat+SpringBoot完成分库分表

  3. 实战 | springboot+redis+拦截器 实现接口幂等性校验

  4. 实战 | SpringBoot微信点餐系统(附源码)

  5. 实战 | SpringBoot+Redis分布式锁:模拟抢单

  6. 实战 | SpringBoot实现过滤器、拦截器与切片

  7. 深度 | 面试官:能说下 SpringBoot 启动原理吗?

  8. 源码探秘:Tomcat 在 SpringBoot 中是如何启动的?

并发编程 专题  

  1. 【原创】01 | 开篇感言

  2. 【原创】02 | 并发编程三大核心问题

  3. 【原创】03 | 重排序-可见性和有序性问题根源

  4. 【原创】04 | Java 内存模型详解

  5. 【原创】05 | 深入理解 volatile

  6. 【原创】06 | 你不知道的 final

  7. 【原创】07 | synchronized原理

  8. 【原创】08 | synchronized锁优化

  9. 【原创】09 | 基础干货

  10. 【原创】10 | 线程状态

  11. 【原创】11 | 线程调度

  12. 【原创】12 | 揭秘CAS

  13. 【原创】13 | LookSupport

  14. 【原创】14 | AQS源码分析

  15. 【原创】Java并发编程系列15 | 重入锁ReentrantLock

  16. 【并发编程】一文带你读懂深入理解Java内存模型(面试版本)

  17. 来,带你鸟瞰 Java 中4款常用的并发框架!

  18. 高并发的核心技术 - 幂等的实现方案

连载中,每周一到两篇

面试 专题

  1. 天真!这简历一看就是包装过的

  2. 五步准备一份漂亮的Java简历!

  3. 如何在面试中介绍自己的项目经验?如果有以下几点,就悬了

  4. 在做技术面试官时,我是这样甄别大忽悠的——如果面试时你有这样的表现,估计悬

BAT 等大厂面经 专题

  1. 【面经】通过五轮面试的阿里实习生亲述!

  2. 【面经】阿里三面被挂,幸获内推,历经5轮终于拿到口碑offer

  3. 【面经】面试面试鹅厂,我三面被虐的体无完肤。

  4. 【面经】面试字节跳动,我被面试官狂怼全过程!

  5. 【面经】:为了拿到字节跳动offer,鬼知道我经历了啥...

  6. 【面经】我三年开发经验,从字节跳动抖音组离职后,一口气拿到15家公司Offer,薪资再一次直线上涨~

  7. 【面经】PDD面试官竟然问我new一个对象背后发生了什么?这太难了...

  8. 【面经】一个妹子的后台面试经验总结(蚂蚁金服+美团+携程+滴滴+....)

  9. 【面经】GitHub 上四万 Star 大佬一举最终拿下一堆Offer:百度、阿里、腾讯、头条、网易游戏、华为

  10. 【面经】美团技术四面经历,女粉丝已拿到Offer!

常见面试题 专题

  1. 10 道关于 Java 泛型的面试题

  2. dubbo 面试18问(含答案)

  3. Java 程序员必须掌握的 8 道数据结构面试题(附答案),你会几道?

  4. 面试问烂的 MySQL 四种隔离级别,看完吊打面试官!

  5. SPI面试必问:Dubbo和JDK的SPI究竟有何区别?

  6. 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...

  7. 高频面试题:Spring 如何解决循环依赖?

  8. 面试官:Mybatis 使用了哪些设计模式?

  9. 面试官问:Redis 内存满了怎么办?我想不到!

  10. 【面经】高频面试题:如何保证缓存与数据库的双写一致性?

  11. 【面经】面试官问:线程池除了常见的4种拒绝策略,你还知道哪些?

  12. 【面经】慌了,面试居然被问到怎么做高并发系统的限流?

  13. 我挂树上了:一道树的面试题

大家注意,不要仅仅只收藏本篇文章,因为本文三天后会删除(本文是为师长的坚持不射友情推荐一波)。

那如何找到师长的永久文章合集呢?

1、关注师长的公众号【Java进阶架构师】

关注后回复【架构】领取架构师视频(非阉割、非试听版)

2、打开公众号左下角的【文章500】即可

师长也会在每三个月更新一次,这三个月内没收录进去的优质原创文章,以及剔除相对陈旧的文章,以保证技术文章的适用性。

疫情过后,相信大家也是准备跳槽加薪,师长也给大家准备了四份面试宝典,相信在跳槽前一个月按照面试宝典准备准备,加薪30%基本没大问题。

《java面试宝典5.0》(初中级)《350道Java面试题:整理自100+公司》(中高级)《资深java面试宝典-视频版》(资深)《Java[BAT]面试必备》(资深)分别适用于初中级,中高级,资深级工程师的面试复习。内容包含java基础、javaweb、mysql性能优化、JVM、锁、百万并发、消息队列,高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper、数据结构、限流熔断降级等等。
获取方式:V信关注师长的小号回复 面试 领取一、初中级《java面试宝典5.0》,对标8-13K二、中高级《350道Java面试题:整理自100+公司》,对标12-20K三、资深《java面试突击-视频版》,对标20K+

继续其他专题:

造个轮子 专题

  1. 写出我的第一个框架:迷你版Spring MVC

  2. 手把手带你实现JDK动态代理

  3. 透彻理解MyBatis设计思想之手写实现

  4. 理解数据库连接池底层原理之手写实现

  5. 对HashMap的思考及手写实现

  6. 透彻理解Spring事务设计思想之手写实现

  7. 手写实现一个迷你版的Tomcat

  8. 纯手写实现一个RPC

  9. 自己动手写一个服务网关

  10. 解密Dubbo:自己动手编写一个较为完善的RPC框架(两万字干货)

  11. 手把手带你设计一个百万级的消息推送系统

  12. 手把手带你秒杀架构实践(含完整代码)

  13. 为自己搭建一个分布式 IM(即时通讯) 系统

  14. 膨胀了!我要手写QQ底层!(附源码)

  15. 手把手教你撸一个JSON解析器

  16. 从 0 开始手写一个 Mybatis 框架,三步搞定!

  17. 徒手撸一个简单的IOC

  18. 还背啥redis面试题?手把手教你写个简版Redis!(附源码)

架构 专题

  1. 【架构技术专题】网站架构的演化(1)

  2. 「架构技术专题」作为java程序员的你还不知道网站架构的演化(2)?

  3. 「架构技术专题」什么是架构设计的五个核心要素?(3)

  4. 「架构技术专题」架构核心指标之可扩展架构设计的三要素(4)

  5. 「架构技术专题」9种高性能高可用高并发的技术架构(5)

  6. 「架构技术专题」构建网站高可用架构(详细分析篇)(6)

  7. 「架构技术专题」超详细网站伸缩性架构的设计(7)

  8. 「架构技术专题」总结:共计7篇阐述架构技术之美

  9. ---------------分割线---------------------

  10. 对呀,我就是认定架构师都是不干活,只会画PPT的!

  11. 好文 | 架构师更多的是和人打交道,说说我见到和听说到的架构师升级步骤和平时的工作内容

  12. 架构师成长之路之限流漫谈

  13. 支付宝架构师眼中的高并发架构

  14. 今日头条 Go 建千亿级微服务的实践

  15. 阿里云技术专家分享:现代 IM 系统中消息推送和存储架构的实现

  16. 程序员必备技能——如何画好架构图

  17. 如何扛住100亿次请求?后端架构应该这样设计!

  18. 干货 | 优秀架构师必须了解的6大方面30条设计原则

支付 专题

  1. 一文快速实现微信公众号支付功能(详细版,建议收藏备用)

  2. 微信小程序-登录+支付(后台Java)Demo实战(环境搭建+源码)

  3. spring+mvc+mybatis实现微信支付宝等多平台合一的二维码支付

数据结构与算法 专题

  1. 一文读懂JDK7,8,JD9的hashmap,hashtable,concurrenthashmap及他们的区别

  2. 几张动态图捋清Java常用数据结构及其设计原理

  3. 买什么数据结构与算法,这里有:动态图解十大经典排序算法(含JAVA代码实现)

  4. 面试还在被红-黑树虐?看完这篇动图文章轻松反虐面试官

  5. 刷了一个月算法,终于拿到了double的offer

  6. GitHub标星15K,这个开源项目让算法动起来

  7. 【基础不牢地动山摇】一遍记住 Java 面试中常用的八种排序算法与代码实现!

redis 专题

  1. 付磊:一份完整的阿里云 Redis 开发规范,值得收藏!

  2. 百亿数据量下,掌握这些Redis技巧你就能Hold全场

  3. 分布式系统关注点——先写DB还是「缓存」?

  4. 付磊:一份完整的阿里云 Redis 开发规范,值得收藏!

  5. 一个牛逼的多级缓存实现方案

  6. 百亿数据量下,掌握这些Redis技巧你就能Hold全场

  7. 如何正确访问Redis中的海量数据?服务才不会挂掉

  8. 利用 Redis 实现“附近的人”功能!

  9. 私藏!我是如何用redis做实时订阅推送的?

  10. Redis是如何实现点赞、取消点赞的?

  11. 讲给小白的大白话布隆过滤器

消息队列 专题

  1. 17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列

  2. RabbitMQ和Kafka到底怎么选?

  3. 大白话+13张图解 Kafka

  4. Kafka 基本原理(8000 字小结)

  5. Kafka为什么速度那么快?

RPC 专题

  1. 牛逼哄哄的 RPC 框架,底层到底什么原理?

  2. 分布式事务不理解?五种方案一次给你讲清楚!

  3. 分库分表后,如何部署上线?

Mybatis 专题

  1. 推荐一款 MyBatis 开发神器,为简化而生!

  2. 你以为把Mybatis里的#直接替换成$,就能解决sql注入的问题吗?

  3. 图解源码 | 两张图彻底搞懂MyBatis的Mapper原理!

spring cloud 专题

  1. 拜托!面试请不要再问我Spring Cloud底层原理!

  2. 一文讲清Spring Cloud 微服务架构的五脏六腑!

  3. 冒着挂科的风险也要给你们看的 Spring Cloud 入门总结

JVM调优 专题

  1. 图解 Java 垃圾回收机制,写得非常好!

  2. 系统缓慢+CPU 100%+频繁Full GC问题的定位排查思路!

  3. JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

dubbo源码 专题

  1. dubbo源码解析-集群容错架构设计

  2. dubbo源码解析-详解directory

  3. dubbo源码解析-详解router

  4. dubbo源码解析-详解cluster

  5. dubbo源码解析-详解LoadBalance

  6. dubbo源码解析-服务暴露原理

  7. dubbo源码解析-本地暴露

  8. dubbo源码解析-远程暴露

  9. dubbo专题-深入分析zookeeper连接原理

  10. dubbo专题-深入分析zookeeper创建节点过程(高清大图无水印版)

  11. dubbo专题-服务暴露总结(本地暴露+远程暴露时序图)

  12. dubbo专题-深入浅出zookeeper订阅原理

Docker

教程 | 两小时光速入门 Docker(建议收藏)

终于有人把 Docker 讲清楚了,万字详解!

ES 专题

  1. MySQL用得好好的,为啥非要转ES?

  2. 面试官是怎么来考察你对ES搜索引擎的理解?

  3. ElasticSearch 亿级数据检索案例实战!

java实战 专题

  1. 实战 | 单点登录系统原理与实现(全套流程图+源码)

  2. 写代码注意了,打死都不要用 User 这个单词!

  3. Java开发最常犯的10个错误,打死都不要犯!

  4. 别在 Java 代码里乱打日志了,这才是正确的打日志姿势!

  5. 实战 | 秀儿,如何用一个字段表示八个状态啊

  6. 对啊,我就是认定你不知道ArrayList为什么要实现RandomAccess接口!

  7. 【原创】为什么java中一切都是对象,还要有static?

  8. 干货 | Java工程师必备素质:如何设计好的系统接口?

  9. e.printStackTrace()不是打印吗,还能锁死?

  10. 【原创】不重写equals和hashcode难道就不行吗?

  11. Java:如何更优雅的处理空值?

  12. 【原创】如何高效管理你的js代码

  13. 【原创】你所不知道的读写锁

  14. JDK1.8新特性(超详细)

  15. 【原创】实战 | 用手写一个骚气的请求合并,演绎底层的真实

  16. Web登录其实没那么简单

  17. 一些不错 Java 实践推荐!建议阅读3遍以上!

  18. 巧用Java8中的Stream,让集合操作飞起来!

  19. Java8 中用法优雅的 Stream,性能也"优雅"吗?

  20. 【原创】我还是很建议你用DelayQueue搞定超时订单的(1)

  21. 【原创】实战 | 当然我还是更建议你用MQ搞定超时订单的-(2)

  22. 干货 | 新手也能看懂的源码阅读技巧

  23. 【原创】浅谈java事务及隔离级别

  24. 三种主流的微服务配置中心深度对比!你怎么看!

  25. Spring异步编程 | 你的@Async就真的异步吗?异步历险奇遇记

  26. 分库分表就能无限扩容吗,解释得太好了!

  27. 为什么微服务一定要有网关?

  28. 京东到家订单订单查询服务演进

  29. Maven 虐我千百遍,我待 Maven 如初恋

  30. 分库分表?如何做到永不迁移数据和避免热点?

  31. Java高级开发必会的50个性能优化的细节(珍藏版)

  32. 你必须掌握的 21 个 Java 核心技术!(干货)

  33. 什么?这40条显著提升Java性能的优化细节你竟然还不知道?!

  34. 你们要的动图来了:2张动图快速理解高内聚与低耦合

Nginx 专题

  1. 基于Nginx实现访问控制、连接限制

网络协议 专题

  1. 一篇文章带你详解 HTTP 协议(上)

  2. 一篇文章带你详解 HTTP 协议之报文首部及字段详解(中)

  3. 一篇文章带你详解 HTTP 协议(下)

  4. 一篇文章带你详解 TCP/IP 协议

  5. 一篇文章带你详解 TCP/IP 协议(完结)

  6. 动图详解TCP的三次握手与四次挥手

  7. 十五道java开发常遇到的计算机网络协议高频面试题

  8. 【网络协议】专题总结以及网络协议高频面试题汇总(8篇)

Mysql优化 专题

  1. 「mysql优化专题」这大概是一篇最好的mysql优化入门文章(1)

  2. 「mysql优化专题」90%程序员都会忽略的增删改优化(2)

  3. 「mysql优化专题」你们要的多表查询优化来啦!请查收(4)

  4. 「mysql优化专题」90%程序员面试都用得上的索引优化手册(5)【面试重点】

  5. 「mysql优化专题」优化之路高级进阶——表的设计及优化(6)

  6. 「mysql优化专题」90%程序员没听过的存储过程和存储函数教学(7)

  7. 「mysql优化专题」视图应用竟然还可以这么优化?不得不收藏(8)

  8. 「mysql优化专题」详解引擎(InnoDB,MyISAM)的内存优化攻略?(9)

  9. 「mysql优化专题」什么是慢查询?如何通过慢查询日志优化?(10)

  10. 「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

  11. 「mysql优化专题」高可用性、负载均衡的mysql集群解决方案(12)

  12. 【mysql优化专题】本专题终极总结(共13篇)

  13. MYSQL优化有理有据全分析(面试必备)

  14. MySQL 大表优化方案(长文)

设计模式 专题

???? 原创 | 让设计模式飞一会儿|①开篇
???? 原创 | 让设计模式飞一会儿|②单例模式
???? 原创 | 让设计模式飞一会儿|③工厂模式
???? 原创 | 让设计模式飞一会儿|④原型模式
???? 原创 | 让设计模式飞一会儿|⑤建造者模式
???? 原创 | 让设计模式飞一会儿|⑥代理模式
???? 原创 | 让设计模式飞一会儿|⑦适配器模式
???? 原创 | 让设计模式飞一会儿|⑧装饰者模式

————  e n d ————

其余的微服务、分布式、高并发、JVM调优等20大进阶架构师专题请关注公众号Java进阶架构师后在菜单栏查看

没别的意思,就是想要你的一个关注

  • 8
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Spark Streaming 和 Flink 都是流处理框架,但在一些方面有所不同。 1. 数据处理模型 Spark Streaming 基于批处理模型,将流数据分成一批批进行处理。而 Flink 则是基于流处理模型,可以实时处理数据流。 2. 窗口处理 Spark Streaming 的窗口处理是基于时间的,即将一段时间内的数据作为一个窗口进行处理。而 Flink 的窗口处理可以基于时间和数据量,可以更加灵活地进行窗口处理。 3. 状态管理 Spark Streaming 的状态管理是基于 RDD 的,需要将状态存储在内存中。而 Flink 的状态管理是基于内存和磁盘的,可以更加灵活地管理状态。 4. 容错性 Flink 的容错性比 Spark Streaming 更加强大,可以在节点故障时快速恢复,而 Spark Streaming 则需要重新计算整个批次的数据。 总的来说,Flink 在流处理方面更加强大和灵活,而 Spark Streaming 则更适合批处理和数据仓库等场景。 ### 回答2: Spark Streaming 和 Flink 都是流处理框架,它们都支持低延迟的流处理和高吞吐量的批处理。但是,它们在处理数据流的方式和性能上有许多不同之处。下面是它们的详细比较: 1. 处理模型 Spark Streaming 采用离散化流处理模型(DPM),将长周期的数据流划分为离散化的小批量,每个批次的数据被存储在 RDD 中进行处理,因此 Spark Streaming 具有较好的容错性和可靠性。而 Flink 采用连续流处理模型(CPM),能够在其流处理过程中进行事件时间处理和状态管理,因此 Flink 更适合处理需要精确时间戳和状态管理的应用场景。 2. 数据延迟 Spark Streaming 在处理数据流时会有一定的延迟,主要是由于对数据进行缓存和离散化处理的原因。而 Flink 的数据延迟比 Spark Streaming 更低,因为 Flink 的数据处理和计算过程是实时进行的,不需要缓存和离散化处理。 3. 机器资源和负载均衡 Spark Streaming 采用了 Spark 的机器资源调度和负载均衡机制,它们之间具有相同的容错和资源管理特性。而 Flink 使用 Yarn 和 Mesos 等分布式计算框架进行机器资源调度和负载均衡,因此 Flink 在大规模集群上的性能表现更好。 4. 数据窗口处理 Spark Streaming 提供了滑动、翻转和窗口操作等灵活的数据窗口处理功能,可以使用户更好地控制数据处理的逻辑。而 Flink 也提供了滚动窗口和滑动窗口处理功能,但相对于 Spark Streaming 更加灵活,可以在事件时间和处理时间上进行窗口处理,并且支持增量聚合和全量聚合两种方式。 5. 集成生态系统 Spark Streaming 作为 Apache Spark 的一部分,可以充分利用 Spark 的分布式计算和批处理生态系统,并且支持许多不同类型的数据源,包括Kafka、Flume和HDFS等。而 Flink 提供了完整的流处理生态系统,包括流SQL查询、流机器学习和流图形处理等功能,能够灵活地适应不同的业务场景。 总之,Spark Streaming 和 Flink 都是出色的流处理框架,在不同的场景下都能够发挥出很好的性能。选择哪种框架取决于实际需求和业务场景。 ### 回答3: Spark Streaming和Flink都是流处理引擎,但它们的设计和实现方式有所不同。在下面的对比中,我们将比较这两种流处理引擎的主要特点和差异。 1. 处理模型 Spark Streaming采用离散流处理模型,即将数据按时间间隔分割成一批一批数据进行处理。这种方式可以使得Spark Streaming具有高吞吐量和低延迟,但也会导致数据处理的粒度比较粗,难以应对大量实时事件的高吞吐量。 相比之下,Flink采用连续流处理模型,即数据的处理是连续的、实时的。与Spark Streaming不同,Flink的流处理引擎能够应对各种不同的实时场景。Flink的实时流处理能力更强,因此在某些特定的场景下,它的性能可能比Spark Streaming更好。 2. 窗口计算 Spark Streaming内置了许多的窗口计算支持,如滑动窗口、滚动窗口,但支持的窗口计算的灵活性较低,只适合于一些简单的窗口计算。而Flink的窗口计算支持非常灵活,可以支持任意窗口大小或滑动跨度。 3. 数据库支持 在处理大数据时,存储和读取数据是非常重要的。Spark Streaming通常使用HDFS作为其数据存储底层的系统。而Flink支持许多不同的数据存储形式,包括HDFS,以及许多其他开源和商业的数据存储,如Kafka、Cassandra和Elasticsearch等。 4. 处理性能 Spark Streaming的性能比Flink慢一些,尤其是在特定的情况下,例如在处理高吞吐量的数据时,在某些情况下可能受制于分批处理的架构。Flink通过其流处理模型和不同的调度器和优化器来支持更高效的实时数据处理。 5. 生态系统 Spark有着庞大的生态系统,具有成熟的ML库、图处理库、SQL框架等等。而Flink的生态系统相对较小,但它正在不断地发展壮大。 6. 规模性 Spark Streaming适用于规模小且不太复杂的项目。而Flink可扩展性更好,适用于更大、更复杂的项目。Flink也可以处理无限制的数据流。 综上所述,Spark Streaming和Flink都是流处理引擎,它们有各自的优缺点。在选择使用哪一个流处理引擎时,需要根据实际业务场景和需求进行选择。如果你的业务场景较为复杂,需要处理海量数据并且需要比较灵活的窗口计算支持,那么Flink可能是更好的选择;如果你只需要简单的流处理和一些通用的窗口计算,Spark Streaming是更为简单的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值