Java基础
文章平均质量分 92
JAVA基础
左耳君
一个会写代码的工程师,一个热爱生活的普通人
展开
-
搞懂什么是RocketMQ
前言我们在上一篇中给大家介绍了系统中引入消息队列的必要性,也了解了一些消息队列的基础知识,我们也提到了一些比较常见的问题,并且简单聊了下,那我们在实际的开发中,使用频率最高的消息中间件是哪些呢?接下来我们介绍RocketMQ,前身是MetaQ,现在叫RocketMQ,阿里这是希望它像中国的嫦娥一样上天可能,还是挺不错的名字RocketMQ的项目架构由于RocketMQ是Java开发的,我们也便于读懂源码以及解决问题,先来简单看下它的项目结构:rocketmq-broker:接受生产者发来的消.原创 2022-05-15 10:30:58 · 2148 阅读 · 2 评论 -
Redis中的主从复制
震惊!Redis服务器中竟然有搞基的事情,怎么回事呢?一起来看看在Redis中,我们可以将实现高可用技术划分为:持久化、主从复制、哨兵模式和集群(其实也可以不把持久化划分为高可用技术,这都无所谓)在我们的生产环境中,如果只有一台Redis服务器来运行保存数据的话,那灾难可就大了,为啥这么说呢?如果一旦这台服务器宕机了,那是不是意味着线上环境崩了呢?暂时崩了机器没坏还好,我们可以通过前两篇说的持久化来恢复数据,但是机器要是gg了呢那我们通过什么来恢复数据呢?如果恢复不了,那完蛋了,你可以收拾下办公原创 2022-05-04 10:28:36 · 250 阅读 · 0 评论 -
你读完这一篇还不会学Java过来打我
前言我写公众号差不多有一个月多点,也收获了一部分的粉丝,粉丝现在还不算多,也是因为我也没有如何宣传,也可能文章内容还需要改善写公众号这一个多月收到了些留言,都是关于大学期间的迷惑问题,来看下我首先说下我自己的情况吧,读的大学是燕山大学,在美丽的河北秦皇岛,美丽的旅游城市,个人还是很喜欢的,我们学校对面就是美丽的大海,感受一下撒(秦皇岛17年的荧光海,真的美)19年7月份毕业,先是就职于国家某网研发部门,肝了半年多,后跳槽到某厂研发部门。为什么跳槽呢?说个容易挨打的话,太闲了,钱的话,中规.原创 2022-05-04 10:29:16 · 252 阅读 · 0 评论 -
读了这篇JVM,直呼真香,淦(长篇预警)
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动\这篇文章一句废话我也不打算说,建议准备好姿势阅读,收藏关注有利于随时学习!\今天看到一个特别有意思的图,想起以前刚学Java的时候听别人聊JVM的时候,大概就是这个样子,哈哈\\开头就说了废话,啊呸,进入主题,冲冲冲\JVM是Java Virtual Machine(Java虚拟机)的缩写,任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是一次编译,多次运行对于Java程序.原创 2022-05-04 10:30:07 · 172 阅读 · 0 评论 -
一篇搞懂ElasticSearch(附学习脑图)
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动\既然你点进来了,说明你了解过ES或者是对ES感兴趣,这一篇目的在于扫盲,主要以概念理解为主,可能会比较枯燥,但是天将降大任于斯人也,必先…这篇我以ElasticSearch是什么、底层原理、特点和应用场景三部分来让大家入门ElasticSearch\文章末尾白嫖es学习脑图,要个关注不过分吧?了解ElasticSearch先看看排名,很强的位置吧,学起来,让你薪资翻啊翻,一个月因为学会了一门技术多领个几千块薪资难道不香吗?\Elas原创 2022-05-04 10:30:27 · 527 阅读 · 0 评论 -
Redis的哨兵机制你知道多少撒
**小知识,大挑战!本文正在参与“程序员必备小知识”创作活动**有眼光啊,这么多文章你点开了我,缘分,如果我没猜错的话,你是个有梦想的人,是个热爱技术的人,我们一起 手牵手撒 ?(暗示关注~~)捞一下前面的Redis文章,这是一个系列啊,后续还会出更多Redis的面试篇,Redis面试杀器让你驰骋职场,明智的小伙伴早就关注方便以后学习了,你呢?Redis安装和配置(Windows和Linux)\Redis原来不止五种类型啊(含常用命令)\Redis内存模型原来是这样的啊!R原创 2022-05-04 10:30:40 · 2384 阅读 · 0 评论 -
你了解Redis集群中的秘密吗?
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动前言今天早上北京地铁,看见一个正在学习Redis的小姐姐,很优秀在之前的Redis系列文章中,介绍了Redis的持久化、主从复制以及哨兵机制,主从复制+哨兵机制,既可以解决主master和从slave的解耦合实现多服务器备份数据,又可以通过哨兵机制来解决主宕机之后的主从切换,来实现高可用,但是,上面这种方式仍然有不足,最主要的问题就是存储能力受到单机限制,以及无法实现写操作的负载均衡(写操作均由主来完成)****\在Redis3.0在开原创 2022-05-04 10:32:05 · 213 阅读 · 0 评论 -
国庆假期还能这样通知我?
**小知识,大挑战!本文正在参与“程序员必备小知识”创作活动**我替你吐槽一句:这B是个标题党,上当了,快跑别跑,既然来了,就看完这篇文章顺便学个知识,不香吗\关于Spring Ioc和Aop,之前说过也,这是Spring的基础Spring IOC知识点一网打尽\Spring AOP原来这么简单啊我自己都想吐槽我前面文章的排版真烂,虽然现在也不咋地,但是我觉得比之前的好点了,最起码我更用心了不管你是否点赞关注,我都用心给你写!是这样子的,最近公司接了一个老系统,需要.原创 2022-05-04 10:32:22 · 121 阅读 · 0 评论 -
面试官:Java为什么只有值传递?
面试官爱问的一个基础问题:Java是值传递还是引用传递?想必大家都对这个问题都有自己的看法,那到底事实是怎样的,我们又该如何回答面试官这个问题呢?今天咱们就来好好分析一波值传递?引用传递?首先,我们得先知道什么叫值传递,什么叫引用传递,知道这个才能理解Java到底如何做的。若想理解这两种传递需要先理解形式参数和实际参数两个概念形式参数:定义函数时使用的参数,用来接收函数传入参数,比如我们写个函数,函数中的参数为形式参数public void test(String str) { //str为形式原创 2022-05-04 10:32:29 · 402 阅读 · 0 评论 -
面试官问我JVM类加载,我笑了
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动\上一篇聊了JVM的内存管理、垃圾回收、类文件结构三个方面,这一篇我们继续说说JVM有关的类文件结构和类的加载小白读了这篇JVM,直呼真香,淦!(长篇干货预警)类文件结构Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,无空隙存在。对于超过8个字节的数据,将按照Big-Endian的顺序存储原创 2022-05-04 10:32:37 · 149 阅读 · 0 评论 -
八仙过海,四种同步(Java中的四种同步类)
前言苏宁估计是今年最大的黑马了,我们在开始中没有期望能战胜G2小组第一出线,在八进四中我们也没有没想到苏宁能够打赢京东,结果苏宁3:1战胜京东,我们认为苏宁今年的世界赛的成绩已经很好了,或许也就止步于此了,毕竟他作为LPL三号种子,接下来要面对的是一号种子Tes,而且Tes刚经历了一场让二追三的血腥厮杀,状态火热。苏宁用实力告诉你,不,我要追求更高的目标,他们战胜了Tes,成为了LPL唯一的希望。现在我们唯一的期待,10月31号,我们能听到一句恭喜苏宁,恭喜LPL!这波,感谢一波大校,没问题吧!.原创 2022-05-15 10:29:02 · 468 阅读 · 1 评论 -
NameServer、Zookeeper,傻傻分不清楚
前言前面几篇没有看的,建议点赞、收藏、关注三连,因为你可能会把我这个有趣的灵魂丢了,虽然我不想丢了你,但是如果你强行离开我,我也没法沿着网线找到你家去,我只能默默的写下一篇篇文章来继续打动你,继续来卑微的给你要关注消息队列RocketMQ版是阿里云基于Apache RocketMQ构建的低延迟、高并发、高可用、高可靠的分布式消息中间件。这是华丽的分割线我们知道RocketMQ是个消息队列,这个消息队列是分为多个组件的,其中包括broker、producer、consumer等,那么这些个组件.原创 2022-05-15 10:29:14 · 540 阅读 · 0 评论 -
面试官问了我一个消费者,我差点晕过去
前言生产者上一篇大家都读过了吧?没读过赶紧先去上一篇读上一篇我们说了生产者了,既然有生产者总得有消费者吧,就和养鸡一个道理,鸡下了蛋你总得有人吃吧你要反驳我说我可以不吃啊,我可以孵小鸡啊!!那我也得反驳你两句,首先,孵小鸡也是属于消费啊,只是和当成鸡蛋吃掉是不同的消费方式罢了,因为,最后蛋没了!还有,如果全天下的鸡蛋都孵小鸡的话,那岂不是灾难!?哎呦喂,扯远了,回归主题,继续学习,学习才是我的最爱嗯,没错,这是分割线,严肃脸更换ing消息队列RocketMQ版是阿里云基于Apache.原创 2022-05-15 10:29:27 · 210 阅读 · 0 评论 -
我怎么不知道RocketMQ生产者有这么多用法?
前言消息队列RocketMQ版是阿里云基于Apache RocketMQ构建的低延迟、高并发、高可用、高可靠的分布式消息中间件。看过我之前几篇文章的应该都大概队消息队列有个概念了,都明白了,那这个消息从何而来呢?所谓黄河之水天上来,大自然间每一个事物都不是平白无故来的吧?🐒🐒怎么来的,🐒🐒它母亲生产的;香奈儿💄💄怎么来的,机器加原料生产的;就连平时吃的大米,也是有出处的;咱们是怎么来的,咱们当然是伟大的母亲生产下来的了顺便感谢一下伟大的母亲,周日记得给她打个电话哦下面进入主题,这是分割线消息队.原创 2022-05-15 10:29:39 · 461 阅读 · 0 评论 -
消息队列入门
前言消息队列,相信大家在工作中肯定用过或者听说过吧,如果你连消息队列都没听过,我甚至怀疑你是个假的程序猿。一个东西的存在必有它存在的价值,存在即合理。那她到底是什么呢?用于解决哪些痛点呢?是如何工作的呢?我们来揭开她的面纱即使大家对消息队列不熟,但是大家应该对队列这一结构应该都很熟悉了吧。队列就是一种先进先出的数据结构,举几个简单的例子:排队买冰激凌,排队上茅房~在Java中有各种各样的队列供大家选择,那为什么还要引入消息队列这个中间件呢?大家可以思考一下,待会给大家解答消息队列是什么?消息.原创 2022-05-15 10:29:56 · 434 阅读 · 0 评论 -
【HotSpot、G1】垃圾回收算法和垃圾收集器
前言上一篇我们说了如何判断一个对象是否存活,这一篇呢,就是接着前面几篇文章来的,我们知道堆中分为年轻代和老年代,有着不同的特点;每个区域有着不同的特点,也就有了多种垃圾回收算法,每种算法也是根据内存情况进行不同程度的优化就像上一篇提到的打扫屋子,接下来就是需要找到打扫屋子的最合适的方法,比如屋子的哪些东西归为一类,哪些可以扔掉,哪些可以摆放到一起JVM的算法有很多,大鱼这里只说比较常见的四种:标记-清楚算法复制算法标记-整理算法分代收集算法说完了算法,就会介绍下JVM的流行的各种收集器,.原创 2022-05-03 11:19:50 · 954 阅读 · 0 评论 -
面试官再问你如何破坏双亲委派,就把这篇文章扔给他
前言我们每天都在写Java代码,最常见的User.java这种文件,但是这种文件是如何被虚拟机识别的呢,你有没有思考过这个过程首先我们写的Java文件会被编译成class文件,因为机器不认识getName这种,机器只认识010101编译完成的class文件会被加载到虚拟机中,用于完成我们的任务,那这个加载是什么时候开始呢,加载的过程是什么样子的呢类加载时机先来肝个图,类的加载过程类从被加载到虚拟机开始,到卸载出内存为止,它的整个的生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个.原创 2022-05-03 11:08:45 · 202 阅读 · 0 评论 -
new一个对象是个什么过程
前言反正我也不知道这篇讲什么,我就看见这个央视主播,然后冲着女朋友三个字来的,我就是想看看大鱼来如何给大家分配女朋友的一起看看吧,new一个女朋友到底是什么过程在语言层面创建对象(例如克隆、反序列化)通常仅仅是一个new关键字而已,类似于GirlFriend Alen = new GrilFriend(“18”);而在虚拟机中,对象(普通Java对象,不包括数组和Class对象等)的创建时一个怎么样的过程?找女朋友,习惯性思维首先考虑的范围一般就是从自己的认知人群中去定位,定位到了一个,年龄1.原创 2022-05-03 11:04:29 · 3263 阅读 · 0 评论 -
面试官问我:你确定JVM堆内存是共享的?
前言这应该是大鱼写的RocketMQ的第5篇文章了,之前四篇分别是我们在之前一篇关于JVM内存结构中,介绍了两个比较常见的区域是堆内存和栈内存,堆和栈的区别,大家应该也听得耳朵都出茧子了堆是线程共享的内存区域,栈是线程独享的内存区域;堆中主要存放的是对象实例,栈中存放的是各种基本数据类型和对象的引用但是呢,大鱼前几天去面试,面试官也问了我这个问题,而且没有就此罢休,而是问了我很多平时遇不到的问题,不过好在大鱼我曾经在看某一技术博主的文章的时候,跟着多学习了下Java堆的区域都是线程共享的吗?当.原创 2022-05-03 10:57:34 · 227 阅读 · 0 评论 -
JVM如何判断哪些对象可以回收?
前言我们上一篇分析的是JVM的内存分布,分为堆内存、虚拟机栈、本地方法栈、方法区以及程序计数器等主要区域;各个区域的特点我也就不啰嗦了,上一篇已经分析过了大鱼今天在家本来是闲暇的一天,很舒适,结果这个时候,妈妈敲门进来我房间了,咨询我有没有时间帮忙打扫一下父母的房间;(没有时间当然我不能这么说了,我是个炒鸡孝顺的好孩子,当然了,妈妈,当然有时间了啊,now go,我的乖乖,这么乱的屋子,不对啊,平时都是很干净的啊(内心想逃,后悔,想拒绝不对啊,妈,为什么房间这么乱啊,这有的东西我也不知道要不要.原创 2022-05-03 10:45:17 · 186 阅读 · 0 评论 -
面试官问我平时写的Bug的存储位置(逃逸分析、标量替换、锁消除)
前言爱生活,爱技术,更爱左耳君,么么哒😘说到写bug,我们每天都在用Java实现着各种需求,我们实现的Java程序每天都运行在每个机器的虚拟机上,但是你了解你写的代码的具体存储位置吗说实话,这个东西,在我刚开始学Java的时候,我听到JVM虚拟机这个名词的时候,我的感觉是这个样子的(惭愧你们肯定也会有些疑问吧,平时写的代码每一部分都是存储在哪里的?是的,没错,我的内心就像拖着下巴的那位,除了,模样,emmm…虽然现在也不是多么的精通,但是比之前好太多了,不是涉及很底层的东西也算是了解一些,当.原创 2022-05-03 10:44:41 · 244 阅读 · 0 评论 -
傻瓜式Git提交代码流程【写给初学者】
前言Git是程序员工作中最最常用的分布式版本控制系统,为的就是解决那种多人协作、多次修改的问题,虽说Git可以应用于各行各业,但是实际上还是程序员用的最多了,应该说是程序员的必备技能之一了,如果你还不会Git,赶紧学起来吧,否则可能要out了可能很多学生党只是平时使用过Git,自己练习过Git命令,但是并未真实在工作中使用过Git,也就是可能没有遇到过各种需要回滚代码、解决冲突这种场景我这篇文章默认大家对Git是有一定了解的,也就是关于上面这些理论啥的大概应该是懂得,我也就不多啰嗦了,个人操作的.原创 2022-05-03 10:44:09 · 5189 阅读 · 1 评论 -
Git命令行大全
前言其实在很久之前想写这个文章,但是吧,又觉得这个东西大家都是最常用的,应该大家都比较熟悉,但是呢,在实际工作中还是有很多人不太会使用使用Git命令行,或者连Git的客户端工具都不太会使用,可怕其实这个东西如果只是用来工作中的开发使用,倒也是没必要去为之买本书而研究,只需要稍微理解原理,学会使用常用命令即可本文假设的是大家有一定的Git基础,这一篇的作用是介绍Git的命令行,解释每个的命令的作用我这篇文章默认大家对Git是有一定了解的,也就是关于上面这些理论啥的大概应该是懂得,我也就不多啰嗦了,.原创 2022-05-03 10:43:51 · 6440 阅读 · 0 评论 -
面试官问我:分布式事务是什么?
事务事务其实大家应该不陌生,尤其是对于程序员来说,如果你连事务都没听说过,没关系,因为你遇到了聪明和才智于一体的我,事务其实就是为了处理多种混合操作,涉及到多方面业务的情景重点是事务应用的场景就是为了解决多种事务必须要么同时完成,要么同时不能完成的场景,也就是做到真正意义上的"同生共死"严格意义上来说事务其实具有原子性、一致性、隔离性和持久性四种特性,也就是大家老生常谈的ACID原子性(Atomicity),可以理解为一个事务内的所有操作要么都执行,要么都不执行一致性(Consistency),.原创 2022-05-03 10:43:31 · 172 阅读 · 0 评论 -
大厂面试Redis:缓存雪崩、缓存穿透、缓存击穿
眼光不错,小伙子,看到这篇文章了就血赚,这篇文章绝对让你学到开心,这是面试的杀器,其实Redis这个东西吧,我个人认为,真的真的很强大,但是呢,又感觉被吹得有点过头了不过人家也确实有这个资本,人家性能强大,使用操作也很简单,有提供了各种持久化手段来解决断电丢失的问题,而且人家读写速度都是大几万每秒,甚至十几万的速度,性能强大而且使用简单,所以绝大多数的公司都会使用Redis于是乎,Redis的面试的优先级也是被大大的提高了,而Redis中的经典的缓存的各种问题,也是成为了程序员的必备技能之一缓存雪崩.原创 2022-05-03 10:42:51 · 183 阅读 · 0 评论 -
Dubbo的SPI机制是啥啊?
前言之前大致的把Dubbo的运作流程简单的分析了一遍了,Dubbo还有一个很大的优点,就是采用的微内核+SPI扩展设计这又是什么呢,这个可以很好的支持一些有特殊需求的三方的接入,可以自定义扩展,自主定制二次开发,良好的扩展性对于框架来说是很重要的简单了解下SPI,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。这一机制为很多框架扩展提供了可能,比如在Du.原创 2022-05-02 18:17:43 · 755 阅读 · 0 评论 -
和女友聊天:什么是Dubbo服务调用
老实交代,这是不是你们点进来想要的?前言之前有了服务的暴露和服务的引用了,服务提供者暴露出来服务了,服务消费者将其引用进来了,就差最后一步了,消费者和提供者之间的调用了,调用也就是真正的通信RPC过程,既然涉及到通信,就涉及到相应的客户端和服务端之间的交互协议,约定,以及序列化和反序列化机制先说两边的约定其实就是客户端这边需要带着参数、参数类型,以及告诉服务端要调用的是哪个接口,这样服务端就知道要调用的接口了,服务端就可以执行了关于应用层的协议的交互一般有三种形式,分别是:固定长度形式、特殊字..原创 2022-05-02 18:13:12 · 294 阅读 · 0 评论 -
单例模式竟有七种写法?
前言接下来,我们要进入的是设计模式篇,关于设计模式,作为程序员的你,肯定在工作中或者面试中遇到过很多次了吧记得当时18年上大三的时候出去找实习,也问过了解哪些设计模式,不过我个人回答的最多的最详细的大概也就是单例模式了,因为我觉得这个应该是最最好理解的了,虽然有很多种写法,这是为了解决不同环境下的不同问题,当时我应该是把懒汉、饿汉直接都手撕了一遍,也简单的把懒汉和饿汉的区别说了说当时令我吃惊的是面试官告诉我,单例模式其实有七种写法,甚至可以更多,我当时惊得下巴都掉了,当时我就感觉到了这个行业满满的挑.原创 2022-05-02 18:01:04 · 193 阅读 · 0 评论 -
Dubbo服务发现、引用过程
前言前面两篇分别介绍了Dubbo的入门和Dubbo的服务暴露这篇我们要说的服务引用,服务引用是有两种情况的,也可以看做是两种时机,第一个是在Spring容器调用ReferenceBean的afterPropertiesSet方法时引用服务,第二个就是在ReferenceBean对应的服务被注入到其他类中时引用。这两个引用服务的时机区别在于,第一个是饿汉式的,第二个是懒汉式的是不是一说饿汉和懒汉,大家顺便回忆了一波单例模式默认情况下,Dubbo使用懒汉式引用服务。如果需要使用饿汉式,可通过配置 d.原创 2022-05-02 17:53:32 · 1368 阅读 · 0 评论 -
面试官问我:解释一下Dubbo服务暴露
前言上一篇呢,大家应该都看过了吧,带着大家把RPC、HTTP+Restful、Dubbo的来源、以及Dubbo的架构,简单的介绍了下Dubbo的服务暴露、引用和消费,以及Dubbo的SPI机制当然一些技术点,只是蜻蜓点水,比如服务暴露,我们只说了个这玩意啥意思,代表着啥,很多仙子们可能还是处于懵逼状态,别急,你懵逼的点我都会一一详细介绍,带着大家拨开云雾见天明今天我们要分析的就是Dubbo的服务暴露过程,这个过程属于Dubbo的核心过程之一了,因为Dubbo的大体流程就是服务暴露->服务引用.原创 2022-05-02 17:46:16 · 416 阅读 · 0 评论 -
Dubbo起飞
前言Dubbo这项技术其实大家或多或少都听过的,或者是在你以往投简历的时候,划水刷博客、刷论坛的时候,肯定也见到过这一门技术,你要是真的没听过也没见过,去问百度,Dubbo这个技术应该大家都听说过,有的公司可能项目用的也是Dubbo,这个技术面试应该也会属于一个好手,会了Dubbo,关于RPC的调用也就懂个八九不离十了,网络层面的很多知识点也就一并懂了不少了,总之,接下来呢,要开启的Dubbo系列绝对会让你受益匪浅,一起学习吧之前应该也写过不少系列的文章了,我也将这些文章都已经收录到我的https.原创 2022-05-02 17:36:52 · 333 阅读 · 0 评论 -
【请收下这份汇总全网的Java视频资料】
点赞收藏关注,防止下次找不到这一篇主要是给大家收集比较好的Java学习的视频资料,而且这一篇的主要视频来源是B站B站,众所周知,这是一个好大学,我们在上面可以找到很多好的学习资源,相信爱好学习舞蹈的、学习唱歌的各位肯定也在上面学习过不少东西了吧废话少说,直接看干货对了,关注收藏,这么好的东西以后找不到可就可惜了目录:大家善用CTRL+F来搜索本文1、计算机基础 2、Java基础 3、并发和多线程 4、数据结构和算法5、JVM 6、设计模式 7、MySQL 8、Oracle.原创 2022-05-02 11:39:40 · 369 阅读 · 0 评论 -
Docker入门扫盲【进来领取脑图】
开篇眼光不错,点进来就是赚到,这篇文章绝对让你有所收获,让你对Docker的理解更上一层楼Docker这项技术其实大家或多或少都听过的,或者是在你以往投简历的时候,划水刷博客、刷论坛的时候,肯定也见到过这一门技术,你要是真的没听过也没见过,去问百度,问谷歌,问你们公司的运维,这个虽然可以说是属于运维工程师的必备技能之一,但是作为一名专业的程序员,也是需要简单的去了解这项技术的,也是面试利器之一这个念头,360行,行行都内卷,你想啊,你要是把我这篇文章看完了,了解了这项技术,那岂不是可以在面试的时候吹.原创 2022-05-02 11:00:31 · 260 阅读 · 0 评论 -
肝了两万字的springcloud,错过了血亏
前言我们会首先介绍一下网络中的名词,让大家更好的更熟悉的去理解复杂业务系统之间的交互,如果你是一个小萌新,千万不要被网络中的各种名词唬住,你只需要记住,万变不离其宗,这些只是五花八门的名词而已,原理大概率也就那么回事~熟悉我的小伙伴都知道我不是计算机软件专业的,是一个完完全全的自学党,就像我刚刚大三的时候,开始自学Java,因为我专业不学,所以只能自学咯,至于具体的原由,大家移步到我的个人生活篇,来走进我的内心~当时的我,也算是Java界的小萌新,学习spring的过程中听到IOC和AOP这种名词,.原创 2022-05-02 10:53:37 · 246 阅读 · 0 评论 -
面试官最常问的垃圾回收器CMS
前言随着互联网技术的发展,线上用户量的大量增加,性能问题变得尤为重要,我们可以通过增大JVM的各项内存来解决一部分问题,但是这样总是片面的应该双管齐下,既要从硬件方面变得逐渐强大,底层软件方向也不能落下发展,于是乎垃圾收集器的发展也变得很重要熟悉JVM的小伙伴应该都知道JVM的内存结构,大致分为堆、栈、本地方法栈、方法区和程序计数器,简单回忆下各个区域的作用吧堆:用来存储对象本身的以及数组(数组引用是存放在Java栈中的)。堆是被所有线程共享的,在JVM中只有一个堆栈:存放的是一个个的栈帧,每个.原创 2022-05-02 09:18:33 · 435 阅读 · 0 评论 -
我们一起来学习shell
看见女朋友三个字,我想都没想,直接就啪,点进来了也不管博主写的啥,反正我看见这三个字就给个面子,进来亲切的问候一句:您礼貌吗?假设我的女朋友叫小朝(跟我一起读,之一奥zhao),别问我为什么要假设shell的由来?小朝你的家里有电脑吧,你也使用过吧,你知道电脑Windows、Linux、Mac OS等系统吧小朝脸红的点了点头,你不是刚给我买的Mac吗… …这些电脑都是带有图形界面的,我们比较常用的Mac和Windows,对于大家用起来都很方便,大家都可以直接通过点击一个软件的图标去运行一个原创 2022-05-01 19:55:40 · 158 阅读 · 0 评论 -
LeetCode:不用运算符号,计算两个数之和
看到两数之和,我啪一下子就进来了,很快啊,定睛一看,不让我用加减号,我啪一下子就躺下了【今日份算法题】371. 两整数之和给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。示例 1:输入:a = 1, b = 2输出:3示例 2:输入:a = 2, b = 3输出:5提示:-1000 <= a, b <= 1000这道题呢,大家先思考一下解决思路不知道大家的思路是什么,我的第一眼看到的思路其实就是可以通过异或加位与运算来求解先简单给大家原创 2022-05-01 19:44:32 · 378 阅读 · 0 评论 -
JVM 发生 OOM 的 8 种原因、及解决办法
本文原创:JVM 发生 OOM 的 8 种原因、及解决办法小A:xx服务又宕机了小B:歪日,咋搞的,登上去看看咋回事小A:又OOM了,不知道哪个**写的代码,一坨*一样。撸Java的同学,多多少少会碰到内存溢出(OOM)的场景,但造成OOM的原因却是多种多样。堆溢出这种场景最为常见,报错信息:java.lang.OutOfMemoryError: Java heap space原因1、代码中可能存在大对象分配2、可能存在内存泄露,导致在多次GC之后,还是无法找到一块足够大的内存容纳原创 2022-05-01 19:38:50 · 2405 阅读 · 0 评论 -
广播消息、延迟消息、批量消息、过滤消息
大家在之前的几篇文章应该都会消息队列的基础概念有所了解了如果没读过前几篇文章的老铁可以先去读一下,尤其是消息队列入门的各种名词概念好了,大家了解了RocketMQ的基础概念了,我们一起学习一下的消息的各种类型吧,RocketMQ可以发送很多种类型的消息广播消息简单一句话就是一端发送,多端接收处理。对于普通的消息来说,一个消息发送了,只有一个消费者会进行处理,这种属于集群模式,我们来看下源码/** * Message model * 消息模型 */public enum MessageM原创 2022-05-01 18:41:58 · 636 阅读 · 0 评论 -
通过这三个文件彻底搞懂rocketmq的存储原理
前言RocketMQ是阿里开发的一个高性能的消息队列,支持各种消息类型,而且支持事务消息,可以说是现在的很多系统中的香饽饽了,所以呢,怎么使用大家肯定是要学习的我们作为一个有梦想的程序员,在学习一门技术的时候,肯定是不能光知其然,这是远远不够的,我们必须要知其所以然,这样才能在面试的时候侃侃而谈,啊呸,不对,这样我们才能在工作中遇到问题的时候,理性的去思考如何解决问题我们知道RocketMQ的架构是producer、NameServer、broker、Consumer,producer是生产消息的,.原创 2022-05-01 17:54:02 · 1049 阅读 · 0 评论