JavaSouth系列
文章平均质量分 88
South译为南部,这是一份南友们学习进阶Java的指南。
JavaSouth南哥
我是南哥,JavaSouth作者。公众号:Java进阶指南针
展开
-
产品:直播送礼延迟这么大,你就不能快点吗
先赞后看,南哥助你Java进阶一大半其实抖音的实时音视频技术RTC,是来源于火山引擎RTC的支持,抖音、火山引擎、巨量引擎属于字节跳动公司旗下的不同业务板块。我是南哥,一个Java学习与进阶的领路人。相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。原创 2024-09-19 17:23:29 · 1001 阅读 · 0 评论 -
设计了简单高效的弹幕系统!老板直接加薪
先赞后看,南哥助你Java进阶一大半系统最早起源于日本,流行于视频网站。我们认识的初音未来(Hatsune Miku)就是在niconico平台上爆红的!!我是南哥,一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。原创 2024-09-16 00:04:51 · 942 阅读 · 0 评论 -
掌握Kafka事务,看这篇就够了
先赞后看,南哥助你Java进阶一大半Kafka事务实际上引入了原子多分区写入的概念,播客画了以下流程图,展示了事务在分区级别如何工作。我是南哥,一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。原创 2024-09-11 17:33:37 · 811 阅读 · 0 评论 -
为何我建议你学会Queue集合
面试官:你说说Queue集合都有什么常用类?JDK源码对Queue集合是这么解释的,大家看看。专为在处理之前保存元素而设计的集合。南哥是这么理解的,List集合用于存储常用元素、Map集合用于存储具有映射关系的元素、Set集合用于存储唯一性的元素。Queue集合呢?所有的数据结构都是为了解决业务问题而生,而Queue集合这种数据结构能够存储具有先后时间关系的元素,很适用于在业务高峰期,需要缓存当前任务的业务场景。像Kafka、RabbitMQ、RocketMQ都是队列任务这种思想。原创 2024-09-03 16:46:31 · 778 阅读 · 0 评论 -
谁说后端不需要懂的-Nginx知识点
先赞后看,南哥助你Java进阶一大半他叫,一个俄罗斯程序员。就是他,着手开发了大名鼎鼎处理高并发、高负载网络请求的Nginx,同时他在2004年把Nginx作为开源软件发布。大家好,我是南哥。一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。原创 2024-08-28 16:36:06 · 759 阅读 · 0 评论 -
不好意思!耽误你的十分钟,JVM内存布局还给你
先赞后看,南哥助你Java进阶一大半在2006年加州旧金山的JavaOne大会上,一个由顶级Java开发者组成的周年性研讨会,公司突然宣布将开放Java的源代码。于是,下一年顶级项目OpenJDK诞生。Java生态发展被打开了新的大门,Java 7的G1垃圾回收器、Java 8的Lambda表达式和流API…大家好,我是南哥。一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。原创 2024-08-20 16:11:52 · 1280 阅读 · 0 评论 -
赶快收藏!全网最佳Set集合详解:HashSet、TreeSet!
面试官:那TreeSet要怎么定制排序?TreeSet的自定义排序我们要利用Comparator接口,通过向TreeSet传入自定义排序规则的Comparator来实现。官方源码是这么解释的,南友们看一看。// 构造一个新的空树集,根据指定的比较器进行排序。// 插入到集合中的所有元素都必须能够通过指定的比较器相互比较: comparator. compare(e1, e2)不得对集合中的任何元素e1和e2抛出ClassCastException。原创 2024-08-15 18:02:12 · 1456 阅读 · 1 评论 -
这一次,彻底弄懂ZooKeeper协议
ZooKeeper是动物园的意思,在2012年官方来给ZooKeeper写了这么一段有趣的“ZooKeeper之道”,难怪ZooKeeper现在发展得这么好。动物园管理员对他们负责的动物和参观动物的游客都尽心尽力。他们遵循一套守则,至今只有同行才知道,这套守则可以保证动物和游客的安全。大家好,我是南哥。一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。原创 2024-08-13 17:39:59 · 1319 阅读 · 0 评论 -
N 个值得一看的后端代码片段
三元运算符:坏习惯还是好习惯?最高赞的回答是一个名为Ted Dziuba的老哥说的。为了便于阅读,如果三元组适合一行 80 个字符,我才会使用它。大家好,我是南哥。一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。原创 2024-08-09 17:33:06 · 965 阅读 · 0 评论 -
作为后端开发,感受下接口带来的魅力!
在某网站上看到22届Java校招一片红海?24届今年的行情呢?本文收录在我开源的《Java学习进阶指南》中,涵盖了在大厂工作的Javaer都不会不懂的核心知识、面试重点。相信能帮助到大家在Java成长路上不迷茫,南哥希望收到大家的 ⭐ Star ⭐支持我完善下去。。Java进阶指南针。公众号里有南哥珍藏整理的大量优秀pdf书籍!❤️。原创 2024-08-06 16:37:22 · 1282 阅读 · 0 评论 -
因为不懂Redis集群,我被diss了
Redis官方在官网里写着霸气的宣传语:从构建者那里获取世界上最快的内存数据库。相信国内没用Redis的科技公司也屈指可数。现在Redis已经走向了商业化,它所属的公司叫Redis Ltd。不过可惜的是Redis创始人在2020年就离开了Redis Labs,那个留着乱糟糟黑色头发的中年男人就是Redis的创始人。Redis的商业推广仍在继续着,大家要去现场看看嘛。大家好,我是南哥。一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。原创 2024-08-01 17:40:16 · 1602 阅读 · 0 评论 -
面试官没想到一个ArrayList,我都能跟他扯半小时
面试官:List集合都知道哪些对象?作为四大集合之一的List,在业务开发中我们比较常见的是以下 3 种:ArrayList、Vector、LinkedList,业务开发我们接触最多就是容器类库了,容器类库可以说是面向对象语言最重要的类库。大家看看在工作里你比较熟悉的是哪个?这篇文章南哥打算专注于List集合,后面四大集合之Map、Queue、Set后续再来填坑,比心心♥。原创 2024-07-29 17:42:55 · 1943 阅读 · 0 评论 -
全网最全程序员接单网站
程序员客栈-领先的程序员自由工作平台-程序员兼职 (proginn.com)闲鱼 - 闲不住,上闲鱼! (goofish.com)猪八戒网-品质企业服务 就找猪八戒 (zbj.com)电鸭社区-专注远程工作招聘交流-远程工作,从电鸭开始 (eleduck.com)开源众包-百万开发者,为您提供专业的软件开发服务 (oschina.net)码易_企业应用商店_软件众包_软件服务_云市场_云课堂_云计算平台网站! (mayigeek.com)智城外包网 - 零佣金开发资源平台 认证担保 全程无忧 、专业的软件外原创 2024-07-29 17:34:34 · 1094 阅读 · 0 评论 -
渣本毕业的我,终于靠努力进入了大厂
这是南哥找到的关于普通二本如何进大厂的真实故事,南哥希望这样的故事让更多人知道,不要在互联网里埋没了。 了解故事,知道这条路究竟走不走得通。有了这样一个故事,就像黑夜里茫茫大海的灯塔,给我们一点光芒,转载 2024-07-28 17:20:38 · 53 阅读 · 0 评论 -
《我们一起进大厂》系列-Zookeeper基础
如果大家公司里的消息队列Kafka是2.80版本以下的版本,那说明你们的服务器还在跑着一台提供给Kafka核心功能支持的Zookeeper。当年雅虎工程师在给这个分布式协调服务项目起名时,还发生一段有趣的故事。像如今大名鼎鼎的Hadoop是大象的名字,用于分享大规模数据集的Pig项目是猪,都是某种可爱的动物。时任研究院的首席科学家Raghu Ramakrishnan就跳出来开玩笑:“在这样下去,我们这儿就变成动物园了!于是,大家都起哄起来:那就叫它动物管理员吧。原创 2024-07-25 14:54:47 · 2175 阅读 · 0 评论 -
不懂这些,面试都不敢说自己熟悉Redis
下面这位就是Redis的创始人,他叫antirez,让我们Java开发者又要多学一门Redis的始作俑者。我们肯定很难想象Redis创始人竟然学的是是建筑专业,而当年antirez是为了帮网站管理员监控访问者的实时行为才开发的Redis。为啥antirez不用MySQL来开发?MySQL并不适用于实时应用程序,存储数据库需要磁盘读写,大量的数据操作会使网站速度过于缓慢。于是Redis的前身LLOOGG就这样诞生了,后期也发展为了Redis。大家好,我是南哥。原创 2024-07-23 17:01:36 · 1596 阅读 · 0 评论 -
可能是最漂亮的Java I/O流详解
大家有什么思路吗?评论区一起讨论讨论。我需要使用 Java 逐行读取大约 5-6 GB 的大型文本文件。我怎样才能快速完成此操作?最高赞的回答是叫Peter Lawrey的老哥回答的。大家好,我是南哥。一个Java学习与进阶的领路人,今天指南的是Java I/O流,跟着南哥我们一起在Java之路上成长。本文收录在我开源的《Java学习进阶指南》中,涵盖了想要学习Java、成为更好的Java选手都在偷偷看的核心知识、面试重点。原创 2024-07-15 16:50:24 · 2047 阅读 · 0 评论 -
我以为我对Spring MVC很了解,直到我遇到了...
所有人都知道Spring MVC是是开发的,却鲜有人知道Spring MVC的理论基础来自于1978 年提出MVC模式的一个老头子,他就是Trygve Mikkjel Heyerdahl Reenskaug,挪威计算机科学家,名誉教授。Trygve Reenskaug的MVC架构思想早期用于图形用户界面(GUI) 的软件设计,他对MVC是这样解释的。MVC 被认为是解决用户控制大型复杂数据集问题的通用解决方案。最困难的部分是为不同的架构组件想出好的名字。模型-视图-编辑器是第一个。原创 2024-07-10 17:22:06 · 2406 阅读 · 1 评论 -
【Apache ShenYu源码】如何实现负载均衡模块设计
整个模块为ShenYu提供了什么功能。我们可以看下上文我们提到的工厂对象。/***/核心方法很清晰,我们传入Upsteam列表,通过这个模块的负载均衡算法,负载均衡地返回其中一个对象。这也就是这个模块提供的功能。原创 2024-03-21 17:20:54 · 2717 阅读 · 1 评论 -
超越源码阅读之shenyu网关-响应参数插件
超越源码阅读之shenyu网关-响应参数插件原创 2024-02-20 22:29:20 · 2280 阅读 · 0 评论 -
【源码阅读最轻松的方法】之shenyu网关-扩展性优化
那我们好奇本次优化的点究竟是什么呢,我们看下旧代码的实现可以找到答案,其实本次优化是为了后续可扩展性,把重复的代码抽象起来。可以看到ZooKeeper、Nacos、Concus的数据同步都有重复的入参,且这3个实现类实现相同的功能竟然没有一个父类来承接。我们回顾AbstractDataChangedInit提到的,这步就是一个优化了,把重复的SyncDataService入参抽象到父类AbstractDataChangedInit,同时让实现相关功能的类都有相同的父类来进行归类。原创 2024-02-21 17:39:48 · 2473 阅读 · 0 评论 -
【想进大厂还不会阅读源码】ShenYu源码-替换ZooKeeper客户端
ShenYu源码阅读。相信大家碰到源码时经常无从下手,不知道从哪开始阅读😭。我认为有一种办法可以解决大家的困扰!至此,我们发现自己开始从大量堆砌的源码中脱离开来😀。ShenYu是一个异步的,高性能的,跨语言的,响应式的 API 网关。原创 2024-02-22 21:31:38 · 3246 阅读 · 0 评论 -
【想进大厂还不会阅读源码】ShenYu源码-接入注册中心发现服务
ShenYu源码阅读。相信大家碰到源码时经常无从下手🙃,不知道从哪开始阅读😭。我们先思考下我们的阅读线索,贡献者是怎么添加发现服务的。这些发现服务是怎么和项目集成的,让ShenYu网关能从注册中心获取节点信息?原创 2024-02-24 17:31:10 · 2783 阅读 · 0 评论 -
【想进大厂还不会阅读源码】ShenYu源码-重构同步数据服务
ShenYu源码阅读📚。我们看下PR的标题和Concersation的头一句,大概意思就是重构注册中心数据同步到ShenYu网关的方式。大家看看重构了有没好处呢?不仅获得了知识,还获得了一次开源贡献,何乐而不为呢原创 2024-02-27 15:37:55 · 2637 阅读 · 0 评论 -
【想进大厂还不会阅读源码】ShenYu源码-支持motan协议
ShenYu源码阅读📚。原来的插件只支持 motan2 协议,并且是硬编码的,本次修改使MotanRpcExt 得到增强。我们可以通过以上的线索来思考我们本次的阅读线索,贡献者是做了什么实现了增强motan插件、这个motan的插件的功能是什么。原创 2024-02-29 22:39:09 · 2247 阅读 · 0 评论 -
【还不会Spring源码】单例创建期间进行同步可能会导致死锁?
通过这个标题我们就可以思考本次的阅读线索了,看起来可以学到不少东西。1. 旧代码的死锁是怎么产生的。2. 贡献者通过改变什么来解决本次PR的问题呢?而阅读线索2的答案也显而易见,就是上文提到的通过后台线程来创建Micrometer单例...原创 2024-03-10 14:41:35 · 2737 阅读 · 1 评论 -
【Apache ShenYu源码】看看贡献者如何实现支持提醒通知设计
在阅读中,还发现了有个html文件忘记加了开源协议,我们提下PR修复下,又收获了一次开源贡献!!PR提交戳这。原创 2024-03-19 17:40:49 · 2633 阅读 · 0 评论 -
【Spring源码】Bean采用什么数据结构进行存储
我们再来看看中间新加入的阅读线索4,不知大家忘记了没。我们可以对照图片1的代码组织结构,发现这些没存储在包里的功能类都是比较杂乱的,想必是Spring觉得目前这些功能类还构不成一个包的体系,可能后面规模更大会统一集成起来管理。原创 2024-03-26 20:19:16 · 2698 阅读 · 0 评论 -
【Spring源码】WebSocket做推送动作的底层实例
我们都知道WebSocket可以主动推送消息给用户,那做推送动作的底层实例究竟是谁?我们先整体看下整个模块的组织机构。可以看到handleMessage方法定义了每个消息格式采用不同的消息处理方法,而这些方法该类并**没有实现**,而是留给了子类去实现。原创 2024-03-29 18:12:46 · 2999 阅读 · 0 评论 -
【Spring源码】JDBC数据源访问实现
我们再来看看阅读线索三,这方面我们从设计模式进行入手。阅读线索三:从这个模块可以学到什么我们看下以下代码,PreparedStatement实例的是由PreparedStatementCreator实现的。再来看看PreparedStatementCreator接口,一共有三个子类实现。也就是说PreparedStatement的三种不同实现被封装到三个子类中,而具体需要哪种实现,只需要传入不同。原创 2024-04-11 17:12:50 · 2845 阅读 · 2 评论 -
你们公司用的限流方案,可以讲讲吗
面试官:听说你是公司技术一号位,那我就考考你吧😊。对于ip的限流,我们是直接使用了Nginx的限流,Nginx的limit_req_zone可以设置每个IP地址在单位时间内所允许发起的请求数。原创 2024-03-18 17:39:31 · 2690 阅读 · 0 评论 -
【产品系列】你们公司产品创造了什么价值?
例如在知识付费领域《极客时间》、《知乎大学》,你会发现大部分讲师都不是该领域最顶尖的专家,反而是最优秀的内容输出者。因为从用户角度来说,他们需要的是能否轻松有效地获取知识。原创 2024-03-30 15:38:31 · 2375 阅读 · 0 评论 -
【产品系列】你觉得一个产品要怎么落地?
面试官:你觉得一个产品要怎么落地?我觉得分三步走吧。一是深刻认知你产品的用户价值、产品价值;二是明确供给侧的价值;三是积极对产品进行迭代升级。原创 2024-04-01 17:06:27 · 2282 阅读 · 0 评论 -
再有人问你WebSocket为什么牛逼,就把这篇文章发给他!
再有人问你WebSocket为什么牛逼,就把这篇文章发给他!2008年6月诞生了一个影响计算机世界的通信协议,原先需要二十台计算机资源才能支撑的业务场景,现在只需要一台,这得帮"抠门"老板们省下多少钱,它就是大名鼎鼎的WebSocket协议。很快在下一年也就是2009年的12月,Google浏览器就宣布成为第一个支持WebSocket标准的浏览器。WebSocket的推动者和设计者就是下面的Michael Carter,他设计的WebSocket协议技术现在每天在全地球有超过的设备在使用。原创 2024-07-05 17:47:03 · 2011 阅读 · 1 评论 -
全网把Kafka概念讲的最透彻的文章,别无二家
消息队列老大哥Kafka在官网的介绍是这么说的,真是霸气:全球财富前100强公司有超过80%信任并使用Kafka。Kafka目前在GitHub目前也已经有star数27.6k、fork数13.6k。大家好,我是南哥。一个对Java程序员进阶成长颇有研究的人,今天我们开启新的一篇Java进阶指南,本期的对象是Kafka。Kafka历史Star趋势图本文收录在我开源的《Java学习面试指南》中,一份涵盖Java程序员所需掌握核心知识、面试重点的Java指南。希望收到大家的 ⭐ Star ⭐支持。原创 2024-07-03 16:23:39 · 2245 阅读 · 0 评论 -
我们后端程序员不是操作MyBatis的CRUD Boy
大家好,我是南哥。一个对Java程序员进阶成长颇有研究的人,今天我们接着新的一篇Java进阶指南。为啥都戏称后端是CRUD Boy?难道就因为天天怼着数据库CRUD吗?要我说,是这个岗位的位置要的就是你CRUD,你不得不CRUD。哪有公司天天能给你搭建高并发、高可用、大数据框架的活呢,一条业务线总要成长吧,慢慢成熟了就要装修工来缝缝补补、美化美化,也就是CRUD的活。不能妄自菲薄CRUD Boy,我们是后端工程师。今天来指南下操作数据库之MyBatis框架。原创 2024-06-29 16:00:56 · 2215 阅读 · 0 评论 -
考考你Redis主从,就知道有没深入Redis
大家好,我是南哥。一个对Java程序员进阶成长颇有研究的人,今天继续给大家带来新的一篇Java进阶指南。如果是单机版的数据库,像MySQL、Redis,看起来实现并不复杂。只要支持保存一条数据,同时要能够查询出来。但如果是多机版的数据库呢,各个节点的配合联调是比较复杂的过程,看起来就不是那么简单喽。要考你对Redis深不深入理解,问问Redis多机版相关的问题就知道了。我们今天就来指南下Redis主从架构。原创 2024-06-24 18:02:46 · 2188 阅读 · 0 评论 -
不懂索引,简历上都不敢写自己熟悉SQL优化
大家好,我是南哥。今天给大家带来MySQL索引相关核心知识。对MySQL索引的理解甚至比你掌握还重要,索引是优化SQL的前提和基础,我们一步步来先打好地基。当MySQL表数据量不大时,缺少索引对查询性能的影响都不会太大,可能都是0.0几秒;但当表数据量逐日递增时,建立一个合适且优雅的索引就至关重要了。原创 2024-06-20 16:03:35 · 2651 阅读 · 0 评论 -
Java大佬必知必会——MySQL主从复制
如果你现在有两台MySQL,一台版本是03年的MySQL5.0,另一台是18年的MySQL8.0.11。新版本可以作为老版本的从服务器,但反过来是不可行的。如果二进制文件包含了已存在的数据,就会造成数据重复了。如果从服务器复制该二进制文件后的数据库状态是混乱无序的,那整个复制的过程就没有意义了。如果主、从服务器存储数据的顺序不一样,就会导致每次执行删除的数据都是不同的。,老版本可能无法解析新版本的新特性,甚至复制的文件格式都差异太大。MySQL从库只会复制它本身缺失的最新数据,利用二进制文件里的。原创 2024-06-17 18:07:16 · 2564 阅读 · 0 评论 -
你能不能手敲出Spring框架?
Spring最成功的地方在于创始人Rod Johnson提出的,反而不是其本身的技术。技术上今天可以有Spring春天,明天就可以有Autumn秋天。核心理念有多重要?就如1871年巴黎公社的失败。公社在对抗法国zf和普鲁士占领军的背景下成立,最初成功掌握了巴黎。然而,,加上对外部威胁的应对不足,公社最终被镇压,存在时间不足可怜的三个月。本文收录在我开源的《Java学习面试指南》中,一份覆盖Java程序员所需掌握的Java核心知识、面试重点。希望收到大家的 ⭐ Star ⭐支持。原创 2024-06-14 16:44:06 · 2809 阅读 · 0 评论