作者: 小傅哥,Java Developer,✏️ 虫洞 · 科技栈,作者,🏆 CSDN 博客专家,📝 关于我
本代码库是作者小傅哥多年从事一线互联网
Java
开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、点赞、分享)!
源码 | Java&Spring | 算法 | 面向对象 | 中间件 | 网络通信 | 字节码编程 | 故事 | 工具&软件 | 云服务学习 |
---|---|---|---|---|---|---|---|---|---|
☕ | ✏️ | 🎨 | 🔨 | ☁️ | 🚜 | 🐾 | 🔨 | ☁️ |
如果,以上某些资源不能下载获取,可以添加作者好友:小傅哥的微信(fustack)
全专栏共5章29节,417页11.5万字,耗时4个月完成。涵盖数据结构、算法逻辑、并发编程、JVM以及简历和互联网大厂面试等内容。
此书并不是单纯的面试题,也不是内卷八股文。而是从一个单纯的和程序员有关的数学知识点开始,深入讲解 Java 的核心技术。并且每一章节都配有实践验证的源码,可以对照着一起撸才更有感觉!
源码
- 第 1 节:HashCode为什么使用31作为乘数
- 第 2 节:HashMap 源码分析(上)
- 第 3 节:HashMap 源码分析(下)
- 第 4 节:2-3树与红黑树学习(上)
- 第 5 节:2-3树与红黑树学习(下)
- 第 6 节:ArrayList 详细分析
- 第 7 节:LinkedList、ArrayList,插入分析
- 第 8 节:双端队列、延迟队列、阻塞队列
- 第 9 节:java.util.Collections、排序、二分、洗牌、旋转算法
- 第 10 节:StringBuilder 与 String 对比
- 第 11 节:ThreadLocal 源码分析
- 第 1 节:volatile
- 第 2 节:synchronized
- 第 3 节:ReentrantLock 和 公平锁
- 第 4 节:AQS原理分析和实践运用
- 第 5 节:AQS 共享锁,Semaphore、CountDownLatch
本专题主要介绍如何通过java代码来实现JVM的基础功能(搜索解析class文件、字节码命令、运行时数据区等),从而让java程序员通过最熟知的java程序,学习JVM是如何将java程序一步步跑起来的。
源码
- GitHub:https://github.com/fuzhengwei/itstack-demo-jvm
- Gitee: https://gitee.com/fustack/itstack-demo-jvm
目录
- 第 1 节:命令行工具
- 第 2 节:搜索class文件
- 第 3 节:解析class文件
- 第 4 节:解析class文件 附 classReader拆解
- 第 5 节:运行时数据区
- 第 6 节:指令集和解释器
- 第 7 节:类和对象
- 第 8 节:方法调用和返回
- 第 9 节:数组和字符串
- 第 10 节:本地方法调用
- 第 11 节:异常处理
源码
- GitHub:https://github.com/fuzhengwei/itstack-demo-springcloud
- Gitee: https://gitee.com/fustack/itstack-demo-springcloud
目录
- 第 1 节:总有一偏概述告诉你SpringCloud是什么
- 第 2 节:服务集群注册与发现 Eureka
- 第 3 节:服务提供与负载均衡调用 Eureka
- 第 4 节:应用服务快速失败熔断降级保护 Hystrix
- 第 5 节:服务响应性能成功率监控 Hystrix
- 第 6 节:Turbine 监控信息聚合展示 Hystrix
- 第 7 节:基于github webhook动态刷新服务配置
- 第 8 节:基于RabbitMQ消息总线方式刷新配置服务
- 第 9 节:服务网关路由 Zuul1
- 第 10 节:服务网关Zuul 动态路由与权限过滤器
源码分析以最核心干货内容为入手,将平时开发使用到的Spring、Mybatis、多线程等逐个渗透分析研究。不在只是单纯使用,而是要从原理分析获取更多的技术成长。
源码
- GitHub:https://github.com/fuzhengwei/itstack-demo-code
- Gitee: https://gitee.com/fustack/itstack-demo-code
目录
- 第 1 节:Mybatis接口没有实现类为什么可以执行增删改查
- 第 2 节:Spring定时任务Quartz执行全过程源码解读
- 第 3 节:咋嘞?你的IDEA过期了吧!加个Jar包就破解了,为什么?
- 第 4 节:像盗墓一样分析Spring是怎么初始化xml并注册bean的
- 第 5 节:基于jdbc实现一个Demo版的Mybatis
- 第 6 节:手写mybait-spring核心功能(干货好文一次学会工厂bean、类代理、bean注册的使用)
《Spring 手撸专栏》第 1 章:开篇介绍,我要带你撸 Spring 啦!
《Spring 手撸专栏》第 2 章:小试牛刀,实现一个简单的Bean容器
《Spring 手撸专栏》第 3 章:初显身手,运用设计模式,实现 Bean 的定义、注册、获取
《Spring 手撸专栏》第 4 章:崭露头角,基于Cglib实现含构造函数的类实例化策略
《Spring 手撸专栏》第 5 章:一鸣惊人,为Bean对象注入属性和依赖Bean的功能实现
《Spring 手撸专栏》第 6 章:气吞山河,设计与实现资源加载器,从Spring.xml解析和注册Bean对象
《Spring 手撸专栏》第 7 章:所向披靡,实现应用上下文,自动识别、资源加载、扩展机制
《Spring 手撸专栏》第 8 章:龙行有风,向虚拟机注册钩子,实现Bean对象的初始化和销毁方法
《Spring 手撸专栏》第 9 章:虎行有雨,定义标记类型Aware接口,实现感知容器对象
《Spring 手撸专栏》第 10 章:横刀跃马,关于Bean对象作用域以及FactoryBean的实现和使用
《Spring 手撸专栏》第 11 章:更上层楼,基于观察者实现,容器事件和事件监听器
云服务器:79元1年,226元3年,新人服务器
视频课程:关注小傅哥的微信视频号,小傅哥の码场
- 第1天:购买79元服务器,https://dashi.aliyun.com/site/xiaofuge/618 配置云服务器,xshell链接,初始化环境
- 第2天:重置系统安装宝塔,配置博客站点 https://www.bilibili.com/video/BV1HK4y1X7Dr
- 第3天:购买.cn域名,提交备案操作手册
- 第4天:搭建java运行环境、jdk、tomcat、mysql https://www.bilibili.com/video/BV1BZ4y1W7fC
- 第5天:部署Netty聊天室到云环境,与室友测试聊天程序 https://www.bilibili.com/video/BV1BZ4y1W7fC
- 第6天:安装Elasticsearch、elasticsearch-head、Kibana,测试x-pack-sql-jdbc与云服务es数据交互
- 第7天:安装docker容器,配置云环境,练习命令
- 第8天:又购买2台,搭配使用,部署分布式系统,rpc、mq、分布式任务,测试应用程序
- 第9天:mysql数据通过binlog同步到ES,以及双机备份
- 第10天:域名备案完成,使用宝塔配置域名、ssl、反向代理等,搭建完整博客环境
- 第11天:学习phpwind、Discuz,搭建论坛
- 第12天:搭建个人完整博客系统,采用Jekyll静态博客,本地初始化,通过ftp上传到云服务
- 第13天:搭建wordpress,尝试其他动态博客配置使用
- 第14天:选型Go语言 cloudreve 网盘,进行搭建测试
- 第15天:选型PHP语言 nextcloud网盘,进行搭建测试
- 第16天:承接老舅的需求,把域名和服务器以及一个乡村超时论坛,5万元,卖给老舅。
Drools 是 Java 语言基于Rete算法编写的规则引擎,可以方便的使用声明表达业务逻辑,非常简单易用。本专题会从入门开始逐步完成对Drools的讲解。
《重学Java设计模式》是一本互联网真实案例实践书籍。以落地解决方案为核心,从实际业务中抽离出,交易、营销、秒杀、中间件、源码等22个真实场景,来学习设计模式的运用。
源码
- GitHub:https://github.com/fuzhengwei/itstack-demo-design
- Gitee:https://gitee.com/fustack/itstack-demo-design
- 第 1 节:实战工厂方法模式「多种类型商品不同接口,统一发奖服务搭建场景」
- 第 2 节:实战抽象工厂模式「替换Redis双集群升级,代理类抽象场景」
- 第 3 节:实战建造者模式「各项装修物料组合套餐选配场景」
- 第 4 节:实战原型模式「上机考试多套试,每人题目和答案乱序排列场景」
- 第 5 节:实战单例模式「7种单例模式案例,Effective Java 作者推荐枚举单例模式」
- 第 1 节:实战适配器模式「从多个MQ消息体中,抽取指定字段值场景」)
- 第 2 节:实战桥接模式「多支付渠道(微信、支付宝)与多支付模式(刷脸、指纹)场景」
- 第 3 节:实战组合模式「营销差异化人群发券,决策树引擎搭建场景」
- 第 4 节:实战装饰器模式「SSO单点登录功能扩展,增加拦截用户访问方法范围场景」
- 第 5 节:实战外观模式「基于SpringBoot开发门面模式中间件,统一控制接口白名单场景」
- 第 6 节:实战享元模式「基于Redis秒杀,提供活动与库存信息查询场景」
- 第 7 节:实战代理模式「模拟mybatis-spring中定义DAO接口,使用代理类方式操作数据库原理实现场景」
- 第 1 节:实战责任链模式「模拟618电商大促期间,项目上线流程多级负责人审批场景」
- 第 2 节:实战命令模式「模拟高档餐厅八大菜系,小二点单厨师烹饪场景」
- 第 3 节:实战迭代器模式「模拟公司组织架构树结构关系,深度迭代遍历人员信息输出场景」
- 第 4 节:实战中介者模式「按照Mybatis原理手写ORM框架,给JDBC方式操作数据库增加中介者场景」
- 第 5 节:实战备忘录模式「模拟互联网系统上线过程中,配置文件回滚场景」
- 第 6 节:实战观察者模式「模拟类似小客车指标摇号过程,监听消息通知用户中签场景」
- 第 7 节:实战状态模式「模拟系统营销活动,状态流程审核发布上线场景」
- 第 8 节:实战策略模式「模拟多种营销类型优惠券,折扣金额计算策略场景」
- 第 9 节:实战模版模式「模拟爬虫各类电商商品,生成营销推广海报场景」
- 第 10 节:实战访问者模式「模拟家长与校长,对学生和老师的不同视角信息的访问场景」
- 方案设计:基于IDEA插件开发和字节码插桩技术,实现研发交付质量自动分析
- 技术扫盲:关于低代码编程的可持续性交付设计和分析
- 工作两三年了,整不明白架构图都画啥?
- 笔记整理:技术架构涵盖内容和演变过程总结
- 不重复造轮子都是骗小孩的,教你手撸 SpringBoot 脚手架! -
脚手架源码
:EasyRiggerInitializr - 刚火了的中台转头就拆,一大波公司放不下又拿不起来!
服务框架搭建,依赖于不同的业务诉求搭建出各种服务功能的框架结构。将逐步完成;单体服务应用(适合于ERP和个人)、分库分表应用、Mq服务、任务服务、分布式服务、RPC服务等。
源码
- GitHub:https://github.com/fuzhengwei/itstack-demo-frame
- Gitee: https://gitee.com/fustack/itstack-demo-frame
目录
本专题以DDD实战落地为根本,分章节设计不同的架构模型,学习并实战是奔入应用级开发最快的方法,Hi HelloWorld!我来了。
- 第 1 节:发布Jar包到Maven中央仓库(为开发开源中间件做准备)
- 第 2 节:服务治理中间件之统一白名单验证
- 第 3 节:开发基于SpringBoot的分布式任务中间件DcsSchedule
- 第 4 节:非入侵字节码增强策略,监测全链路监控实现源码
Netty4.x案例从简单入门到应用实战,全篇37节优秀案例+实战源码;基础篇(12)、拓展篇(13)、应用篇(3章+)、源码篇(6),以上章节全部完成并不断持续更新中。
源码
- GitHub:https://github.com/fuzhengwei/itstack-demo-netty
- Gitee: https://gitee.com/fustack/itstack-demo-design
- 第 1 节:初入JavaIO之门BIO、NIO、AIO实战练习
- 第 2 节:嗨!NettyServer
- 第 3 节:NettyServer接收数据
- 第 4 节:NettyServer字符串解码器
- 第 5 节:NettyServer收发数据
- 第 6 节:NettyServer字符串编码器
- 第 7 节:NettyServer群发消息
- 第 8 节:嗨!NettyClient
- 第 9 节:NettyClient半包粘包处理、编码解码处理、收发数据方式
- 第 10 节:自定义编码解码器,处理半包、粘包数据
- 第 11 节:关于ChannelOutboundHandlerAdapter简单使用
- 第 12 节:netty udp通信方式案例Demo
- 第 13 节:简单实现一个基于Netty搭建的Http服务
- 第 1 节:Netty与SpringBoot整合
- 第 2 节:Netty使用Protobuf传输数据
- 第 3 节:Netty传输Java对象
- 第 4 节:Netty传输文件、分片发送、断点续传
- 第 5 节:基于Netty搭建WebSocket,模仿微信聊天页面
- 第 6 节:SpringBoot+Netty+Elasticsearch收集日志信息数据存储
- 第 7 节:Netty请求响应同步通信
- 第 8 节:Netty心跳服务与断线重连
- 第 9 节:Netty集群部署实现跨服务端通信的落地方案
- 第 10 节:Netty接收发送多种协议消息类型的通信处理方案
- 第 11 节:Netty基于ChunkedStream数据流切块传输
- 第 12 节:Netty流量整形数据流速率控制分析与实战
- 第 13 节:Netty基于SSL实现信息传输过程中双向加密验证
- 第 1 节:NioEventLoopGroup源码分析
- 第 2 节:ServerBootstrap配置与绑定启动
- 第 3 节:Netty服务端初始化过程以及反射工厂的作用
- 第 4 节:ByteBuf的数据结构在使用方式中的剖析
- 第 5 节:一行简单的writeAndFlush都做了哪些事
- 第 6 节:Netty异步架构监听类Promise源码分析
本专栏是作者小傅哥使用 JavaFx
、Netty4.x
、SpringBoot
、Mysql
等技术栈和偏向于DDD领域驱动设计方式,搭建的仿桌面版微信聊天工程实现通信核心功能。
源码
- GitHub:https://github.com/fuzhengwei/NaiveChat
- Gitee: https://gitee.com/fustack/NaiveChat
本专栏会以三个大章节内容,逐步进行讲解;
- 第一章节:UI开发。使用
JavaFx
与Maven
搭建UI桌面工程,逐步讲解登录框体、聊天框体、对话框、好友栏等各项UI展示及操作事件。从而在这一章节中让Java 程序员学会开发桌面版应用。 - 第二章节:架构设计。在这一章节中我们会使用DDD领域驱动设计的四层模型结构与Netty结合使用,架构出合理的分层框架。同时还有相应库表功能的设计。相信这些内容学习后,你一定也可以假设出更好的框架。
- 第三章节:功能实现。这部分我们主要将通信中的各项功能逐步实现,包括;登录、添加好友、对话通知、消息发送、断线重连等各项功能。最终完成整个项目的开发,同时也可以让你从实践中学会技能。
- 📝 目录
- 开篇词
- 第 1 章 - UI开发
- 第 2 章 - 架构设计
- 第 3 章 - 功能实现
- GitHub:https://github.com/fuzhengwei/itstack-demo-bytecode
- Gitee: https://gitee.com/fustack/itstack-demo-bytecode
ASM是一个java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。
- 第 1 节:ASM 使用入门,创建Helloworld以及基础方法使用
- 第 2 节:JavaAgent+ASM字节码插桩采集方法名称以及入参和出参结果并记录方法耗时
- 第 3 节:用字节码增强技术给所有方法加上TryCatch捕获异常并输出
- 第 1 节:基于javassist的第一个案例helloworld
- 第 2 节:定义属性以及创建方法时多种入参和出参类型的使用
- 第 3 节:使用Javassist在运行时重新加载类「替换原方法输出不一样的结果」
- 第 4 节:通过字节码插桩监控方法采集运行时入参出参和异常信息
- 第 5 节:使用Bytecode指令码生成含有自定义注解的类和方法
目前市面的全链路监控系统基本都是参考Google的Dapper来做的,本专题主要通过六个章节的代码实战,来介绍如何使用javaagent以及字节码应用,来实现一个简单的java代码链路流程监控。
- 第 1 节:嗨!JavaAgent
- 第 2 节:通过字节码增加监控执行耗时
- 第 3 节:ByteBuddy操作监控方法字节码
- 第 4 节:JVM内存与GC信息
- 第 5 节:ThreadLocal链路追踪
- 第 6 节:开发应用级监控
- 今天你写博客了吗?
- 刚毕业不久,接私活赚了2万块!
- 让人怪不好意思的,粉丝破万,用了1年!
- 13年毕业,用两年时间从外包走进互联网大厂
- 12天,这本《重学Java设计模式》PDF书籍下载量9k,新增粉丝1400人,Github上全球推荐榜!
- 北漂码农的我,把在大城市过成了屯子一样舒服,哈哈哈哈哈!
- 2020总结 | 作为技术号主的一年!
- 这一年,像踏码进货一样!
- 毕业前写了20万行代码,让我从成为同学眼里的面霸!
- 我,有12万+粉丝啦!
- 讲道理,只要你是一个爱折腾的程序员,毕业找工作真的不需要再花钱培训!
- 一个简单的能力,决定你是否会学习!
- UML类图还不懂?来看看这版乡村爱情类图,一把学会!
- 为了省钱,我用1天时间把PHP学了!
- 大学四年到毕业工作5年的学习路线资源汇总
- 汉字不能编程?别闹了,只是看着有点豪横!容易被开除! - 源码
- 鹿鼎记 · 韦小宝,丽春院恶搞版多线程学习!
- 20年3月27日,Github被攻击。我的GitPage博客也挂了,紧急修复之路,也教会你搭建 Jekyll 博客!
- 工作3年,看啥资料能月薪30K?
- 互联网大厂,常见研发线上事故总结!
- 数学,离一个程序员有多近?
- 一天建4个,小傅哥教你搭博客!
- 工作两年简历写成这样,谁要你呀!
- PPT画成这样,述职答辩还能过吗?
- 90%的程序员,都没用过多线程和锁,怎么成为架构师?
- 程序员为什么热衷于造轮子,升职加薪吗?
- 码德需求,这不就是产品给我留的数学作业!
- 一次代码评审,差点过不了试用期!
- 握草,你竟然在代码里下毒!
- 谁说明天上线,这货压根不知道开发流程!
- NetAssist下载
- 谢飞机简历模板合集,实习生、应届生、工作1
3年、工作35年.zip - 技术架构涵盖内容和演变过程总结的架构图.pptx
- elasticsearch-7.10.2、kibana-7.10.2 Mac 版.zip
- elasticsearch-7.10.2、kibana-7.10.2 Windows 版.zip
-
云服务器:79元1年,226元3年,新人服务器
-
第1天:购买79元服务器,https://dashi.aliyun.com/site/xiaofuge/618 配置云服务器,xshell链接,初始化环境
-
第2天:重置系统安装宝塔,配置博客站点 https://www.bilibili.com/video/BV1HK4y1X7Dr
-
第3天:购买.cn域名,提交备案操作手册
-
第4天:搭建java运行环境、jdk、tomcat、mysql https://www.bilibili.com/video/BV1BZ4y1W7fC
-
第5天:部署Netty聊天室到云环境,与室友测试聊天程序 https://www.bilibili.com/video/BV1BZ4y1W7fC
-
第6天:安装Elasticsearch、elasticsearch-head、Kibana,测试x-pack-sql-jdbc与云服务es数据交互
-
第7天:安装docker容器,配置云环境,练习命令
-
第8天:又购买2台,搭配使用,部署分布式系统,rpc、mq、分布式任务,测试应用程序
-
第9天:mysql数据通过binlog同步到ES,以及双机备份
-
第10天:域名备案完成,使用宝塔配置域名、ssl、反向代理等,搭建完整博客环境
-
第11天:学习phpwind、Discuz,搭建论坛
-
第12天:搭建个人完整博客系统,采用Jekyll静态博客,本地初始化,通过ftp上传到云服务
-
第13天:搭建wordpress,尝试其他动态博客配置使用
-
第14天:选型Go语言 cloudreve 网盘,进行搭建测试
-
第15天:选型PHP语言 nextcloud网盘,进行搭建测试
-
第16天:承接老舅的需求,把域名和服务器以及一个乡村超时论坛,5万元,卖给老舅。
建立本开源项目的初衷是基于个人学习与工作中对 Java 相关技术栈的总结记录,在这里也希望能帮助一些在学习 Java 过程中遇到问题的小伙伴,如果您需要转载本仓库的一些文章到自己的博客,请按照以下格式注明出处,谢谢合作。
作者:小傅哥
链接:https://bugstack.cn
来源:bugstack虫洞栈
-
加群交流 本群的宗旨是给大家提供一个良好的技术学习交流平台,所以杜绝一切广告!由于微信群人满 100 之后无法加入,请扫描下方二维码先添加作者 “小傅哥” 微信(fustack),备注:加群。
-
公众号(bugstack虫洞栈) 沉淀、分享、成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人都能有所收获。目前已完成的专题有;Netty4.x实战专题案例、用Java实现JVM、基于JavaAgent的全链路监控、手写RPC框架、DDD专题案例、源码分析等。
- 如果您对本项目有任何建议或发现文中内容有误的,欢迎提交 issues 进行指正。
- 对于文中我没有涉及到知识点,欢迎提交 PR。
感谢以下人员对本仓库做出的贡献或者对小傅哥的赞赏,当然不仅仅只有这些贡献者,这里就不一一列举了。如果你希望被添加到这个名单中,并且提交过 Issue 或者 PR,请与我联系。
🌱 感谢大家对仓库建设的贡献