《升职加薪系列》
文章平均质量分 95
Mysql原理,索引底层,JVM优化,并发编程,源码剖析,三高架构剖析,中间件源码,微服务源码剖析,一系列深入底层,源码技术文章,跟着一步步学习,吊打面试官,跳槽涨薪5K不成问题
墨家巨子@俏如来
EasyJF开源团队成员,10 年Java开发及项目管理经验,在企业中承担项目经理、架构师等职位,喜欢研究技术,执着于对技术底层的探索及源码的剖析;喜欢写文章,享有阿里云专家博主、CSDN博客专家、Java领域优质创作者、华为云开发者联盟成员/技术博主(CSDN搜索-墨家巨子@俏如来)代表作《SpringCloud入门到精通》,《SpringCloud源码深度剖析》,《SpringBoot入门到精通》,《Spring源码深度剖析》等等
展开
-
十九.升职加薪系列-JVM优化-解决JVM性能瓶颈的JIT即时编译器
在很多年以前,做C或者C++的程序员经常说Java语言的运行速度不如C或C++,Java运行速度慢主要是因为它是解释执行的,而C或C++是编译执行的,解释执行需要通过JVM虚拟机将字节码实时翻译成机器码(边翻译边执行),才能运行在操作系统上,这个过程会比编译执行慢。但现在再说这个结论就不太对了,随着JIT即时编译技术的发展,性能差距正在逐步缩小,甚至在某些情况下,执行速度是优于C或C++的。原创 2024-07-11 08:49:07 · 551 阅读 · 0 评论 -
十八.升职加薪系列-JVM垃圾回收器-开天辟地的ZGC
随着Java的发展,JVM的GC垃圾回收器也在跟着升级,从早起的单线程垃圾回收器Serial,到多线程的垃圾回收器Parallel Scavenge,再到并发垃圾回收器CMS,G1等。它们在某些对延迟要求比较高的系统来说都有些力不从心,比如:12346,股票,基金等业务。JVM垃圾器的STW机制(Stop The World)让程序的性能始终没法达到最优。原创 2024-07-11 08:48:48 · 921 阅读 · 0 评论 -
十七.吊打面试官系列-JVM优化-阿里Arthas解决线上问题
在生产环境通常是不允许远程连接的,一是因为性能问题,二是因为安全性问题。而如果使用JVM监控命令的话又不是很直观,因为没有可视化界面,阿里巴巴开源了一款JVM开源神器Arthas可以帮我们方便快捷的帮助我们定位JVM的问题从而进行调优。原创 2024-06-19 09:10:25 · 1026 阅读 · 2 评论 -
十六.吊打面试官系列-JVM优化-JVM性能调优实战
在Java应用的开发和运维过程中,JVM的性能调优是一项至关重要的工作。随着业务的增长和复杂度的提升,线上问题排查、内存监控、参数优化以及压力测试成为每一位开发者和运维人员必须面对的挑战。本篇文章将带您走进JVM性能调优的世界,通过系统讲解线上问题的快速定位与解决、JVM内存的实时监控与分析、关键参数的精细调优策略以及如何进行有效的压力测试,让您掌握一套完整的JVM调优方法论。JVM调优一个很大的原则就是避免频繁的Full GC,导致Full GC的情况有下面这几种。原创 2024-06-19 09:10:07 · 1180 阅读 · 0 评论 -
十五.吊打面试官系列-JVM优化-JVM垃圾回收器详解
继上篇文章《JVM垃圾回算法详解》,我们本篇文章来讲解一下JVM垃圾回收器。垃圾标记算法是标记哪些对象是垃圾,垃圾回收算法是回收的理论算法,垃圾回收器才是真正回收垃圾的组件。不同的垃圾回收器使用了不同的垃圾回收算法。原创 2024-05-29 23:22:42 · 1291 阅读 · 2 评论 -
十四.吊打面试官系列-JVM优化-JVM垃圾回算法详解
说到JVM不可避免的会聊到垃圾回收器,(Garbage Collection,简称GC)。它负责跟踪哪些对象仍然在使用,哪些对象已经不再被引用,并释放那些不再被引用的对象所占用的内存空间。这一过程涉及到对象的标记、清除、压缩等多个阶段,每个阶段都有其特定的算法和策略。随着Java技术的不断发展,JVM的垃圾回收机制也在不断地优化和完善。原创 2024-05-29 23:22:07 · 948 阅读 · 1 评论 -
十三.吊打面试官系列-JVM优化-深入JVM对象创建流程
在Java中,对象的内存分配主要由Java虚拟机(JVM)的堆内存管理器负责。当使用new关键字创建对象时,JVM会在堆内存中为对象分配内存。原创 2024-05-23 17:10:38 · 1087 阅读 · 0 评论 -
十二.吊打面试官系列-JVM优化-深入JVM内存模型
需要注意的是,虽然永久代已经被去掉,但方法区(Method Area)的概念仍然存在。,运行时数据区由: 方法区,虚拟机栈,本地方法栈,程序计数器,堆 五部分组成,其中堆和方法区是线程共享的,其他区域是线程隔离的,也就是线程私有,比如:程序计数器在每个线程执行的时候都有一个私有的程序计数器。操作数栈(用于计算的临时数据存储区):操作数栈(Operand Stack)也常称为操作栈,它是一个后入先出栈(LIFO),当一个方法刚刚开始执行时,其操作数栈是空的,随着方法执行和字节码指令的执行,会。原创 2024-05-15 16:43:52 · 705 阅读 · 0 评论 -
十一.吊打面试官系列-JVM优化-深入JVM类加载机制
从本篇文章开始我们来探讨JVM相关的知识,内容附带JVM的启动,JVM内存模型,JVM垃圾回收机制,JVM参数调优等,跟着文章一步一步走相信你对JVM会有一个不一样的认识,如果觉得文章对你有所帮助请给个好评吧。原创 2024-05-15 16:43:24 · 1278 阅读 · 0 评论 -
二.吊打面试官系列-数据库优化-Explain索引分析
通过explain命令我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的顺序增长的。name列没有索引,那么在去重的时候会使用一个临时表来存储name列的值然后去重。这里我们需要一个常识,索引就是以空间换时间的打法,索引本身会占用磁盘空间,且索引会降低DML操作(增删改)的性能,当我们。原创 2024-04-16 19:49:51 · 224 阅读 · 0 评论 -
一.吊打面试官系列-数据库优化-认识MySql索引
索引(Index)是帮助DBMS(数据库)高效获取数据的数据结构,索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。如果数据库没有索引就会走表进行全表扫描,一旦数据量上来,简直就是灾难。原创 2024-04-16 19:47:09 · 491 阅读 · 0 评论 -
六.吊打面试官系列-数据库优化-深入Mysql日志机制
在Mysql中有三个非常重要的日志文件:Undolog ,Redolog,Binlog。Undolog是用作原子性保证的日志文件,MVCC多版本快照也是存储在Undolog日志文件中。Redolog是Mysql持久化日志文件,如果Mysql宕机数据丢失可以通过Redolog还原数据,Binlog也可以用作数据还原以及实现主从复制。本篇文章我们一起来研究一个下三种日志文件底层的执行原理以及相关参数配置。原创 2024-04-21 17:06:55 · 1184 阅读 · 1 评论 -
八.吊打面试官系列-Tomcat优化-深入源码剖析Tomcat如何打破双亲委派
上篇文章《Tomcat优化-深入Tomcat底层原理》我们从宏观上分析了一下Tomcat的顶层架构以及核心组件的执行流程。本篇文章我们从源码角度来分析Tomcat的类加载机制,且看它是如何打破JVM的ClassLoader双亲委派的Tomcat 并没有完全打破 Java 的双亲委派模型,而是对其进行了扩展和补充,以适应 Web 应用程序的特殊需求。原创 2024-05-07 19:10:17 · 986 阅读 · 0 评论 -
三.吊打面试官系列-数据库优化-索引优化实战
mysql主要分为Server层和存储引擎层,Server层:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binglog日志模块。原创 2024-04-16 19:51:28 · 234 阅读 · 0 评论 -
七.吊打面试官系列-Tomcat优化-深入Tomcat核心架构
作为一个名Java程序员,对于Tomcat肯定是很熟悉的,平时可能我们只是在Tomcat容器中部署项目,并不会去了解Tomcat底层架构,或者是对Tomcat做性能优化。然而在大型在高并发的项目中对Tomcat的优化确实必不可少的。接下来我讲带你一步一步去了解Tomcat的底层的奥秘,掌握Tomcat性能优化技能让面试官或者同事对你刮目相看。原创 2024-04-29 00:57:20 · 1331 阅读 · 0 评论 -
五.吊打面试官系列-数据库优化-Mysql底层执行原理
InnoDB存储引擎主要就是包含了一些buffer pool、redo log buffer等内存里的缓存数据,同时还包含了一些undo日志文件,redo日志文件等东西,同时mysql server自己还有binlog日志文件。在你执行更新的时候,每条SQL语句,都会对应修改buffer pool里的缓存数据、写undo日志、写redo log buffer几个步骤;但是当你提交事务的时候,一定会把redo log刷入磁盘,binlog刷入磁盘,完成redo log中的事务commit标记;原创 2024-04-16 19:56:14 · 205 阅读 · 0 评论 -
十.吊打面试官系列-Tomcat优化-通过压测Tomcat调优实战
上一篇文章我们讲解了一下Tomcat底层的结构和执行原理,我们需要重点去掌握的是Tomcat的高内聚低耦合的设计,以及责任链模式,以及Tomcat NIO编程模式,这些是Tomcat比较核心的点,本篇文章我们将对Tomcat的参数做一些了解,然后通过Jemeter压测来对Tomcat进行调优。原创 2024-05-10 15:55:28 · 1479 阅读 · 0 评论 -
四.吊打面试官系列-数据库优化-Mysql锁和事务原理
本篇文章主要讲解两块内容:Mysql中的锁和ACID原理,这2个部分是面试的时候被问的蛮多的看完本篇文章之后相信你对Mysql事务会有更深层次的理解,如果文章对你有所帮助请记得好评事务: 指作为单个逻辑工作单元(Service方法)执行的一系列操作(数据库操作。),要么完全地执行,要么完全地不执行.事务可以看做是一组任务,通常对应了一个业务方法,这些任务要么全部成功,要么全部失败。在实际的业务开发中我们通常在Service层通过@Transcational注解来指定事务。原创 2024-04-16 19:52:12 · 1869 阅读 · 8 评论 -
九.吊打面试官系列-Tomcat优化-深入源码剖析Tomcat启动流程
Tomcat的启动流程入口是 Bootsrap#main方法,他会先执行 init 进行初始化类加载器和实例化Catalina对象。它通过自定义WebAppClassloader类加载器来实现不同APP应用的加载隔离,从而打破了传统JVM的双亲委派机制。原创 2024-05-10 15:54:35 · 1022 阅读 · 0 评论