自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mikechen的互联网架构

10余年阿里、百度等一线大厂架构技术倾囊相授。

  • 博客(69)
  • 收藏
  • 关注

原创 Java泛型详解,史上最全图文详解

泛型在java中有很重要的地位,无论是开源框架还是JDK源码都能看到它。毫不夸张的说,泛型是通用设计上必不可少的元素,所以真正理解与正确使用泛型,是一门必修课。一:泛型本质Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛.

2022-02-15 08:35:57 58199 30

原创 Synchronized的底层实现原理(看这篇就够了)

谈到多线程就不得不谈到Synchronized,重要性不言而喻,今天主要分享Synchronized的底层实现。标题Synchronizedsynchronized关键字解决的是多个线程之间访问资源的同步性,synchronized 翻译为中文的意思是同步,也称之为”同步锁“。synchronized的作用是保证在同一时刻, 被修饰的代码块或方法只会有一个线程执行,以达到保证并发安全的效果。标题Synchronized的使用方式主要有3种使用方式:1.修饰实例方法:作用于当前实例加锁pu.

2022-01-12 10:59:47 26126 7

原创 Redis集群的三种方式详解(附优缺点及原理区别)

​Redis提供了三种集群方式,下面我重点详解Redis三种集群方式的原理及优缺点等区别@mikechen​

2022-12-22 11:05:48 1573 1

原创 G1 垃圾收集器深入剖析(图文超详解)

G1(Garbage First)垃圾收集器,是目前垃圾回收技术最前沿的成果之一。G1 同 CMS 垃圾回收器一样,关注最小时延的垃圾回收器,适合大尺寸堆内存的垃圾收集。但 G1 最大的特点是引入分区的思路,弱化了分代的概念,合理利用垃圾收集各个周期的资源,解决了其他收集及 CMS 的很多缺陷。官方推荐使用 G1 来代替 CMS。

2022-11-02 15:31:48 3346

原创 Kafka 架构和原理机制 (图文全面详解)

图文详解 Kafka ,一文了解掌握 Kafka 的架构、原理、特性、应用场景、以及 Zookeeper 在 Kafka 中的作用。

2022-11-01 10:24:58 1905

原创 Java 动态代理原理图解 (附:2种实现方式详细对比)

​动态代理在 Java 中有着广泛的应用,例如:Spring AOP 面向切面编程,Hibernate 数据查询、以及 RPC Dubbo 远程调用等,都有非常多的实际应用。本文深入:Java 动态代理原理、JDK 原生动态代理、CGLib 动态代理实现、JDK 动态代理与 CGLib 的区别​。

2022-10-31 17:30:00 2024

原创 微服务 Zipkin 链路追踪原理(图文详解)

一个看起来很简单的应用,可能需要数十或数百个服务来支撑,一个请求就要多次服务调用。当请求变慢、或者不能使用时,我们是不知道是哪个后台服务引起的。这时,我们使用Zipkin 就能解决这个问题。

2022-10-25 17:54:44 1275

原创 5大负载均衡算法 (原理图解)

5大负载均衡算法及其原理最全详解,强烈推荐看这篇。负载均衡是分布式架构的必备技术,也是进阶的必学技术,需要重点掌握。我们先来看张图,下面是一个典型的集群和负载均衡架构图。

2022-10-25 07:15:00 697

原创 Dubbo原理和机制详解(非常全面)

最全图文详解Dubbo的原理机制,彻底搞懂吃透Dubbo核心功能、Dubbo核心组件、Dubbo的架构设计、Dubbo调用流程等重要核心知识点,可以让我们更好地掌握和使用 Dubbo。。

2022-10-24 11:35:36 30617 1

原创 雪花算法详解(原理优缺点及代码实现)

雪花算法详解(原理优缺点及代码实现)

2022-10-13 09:49:42 5036 1

原创 什么是缓存雪崩?服务器雪崩的场景与解决方案

什么是缓存雪崩?服务器雪崩的场景与解决方案

2022-10-10 10:16:00 197

原创 Java线程同步的四种方式详解(建议收藏)

Java线程同步属于Java多线程与并发编程的核心点,需要重点掌握,下面我就来详解Java线程同步的4种主要的实现方式@mikechen

2022-09-28 08:55:34 1488

原创 分布式ID详解(5种分布式ID生成方案)

分布式架构会涉及到分布式全局唯一ID的生成,今天我就来详解分布式全局唯一ID,以及分布式全局唯一ID的实现方案@mikechen

2022-09-27 09:43:28 10556

原创 搞透 IOC,Spring IOC 看这篇就够了!

IOC 与 AOP 属于 Spring 的核心内容,如果想掌握好 Spring 你肯定需要对 IOC 有足够的了解 @mikechen

2022-09-26 09:52:04 323

原创 消息队列MQ核心原理全面总结(11大必会原理)

​无论是 RabbitMQ、RocketMQ、ActiveMQ、Kafka还是其它等,都有的一些基本原理、术语、机制等,总结分享出来,希望大家在使用消息队列技术的时候能够快速理解@mikechen​

2022-09-22 09:42:36 1799

原创 Mybatis一级缓存和二级缓存原理区别(图文详解)

Java面试经常问到Mybatis一级缓存和二级缓存,今天就给大家重点详解Mybatis一级缓存和二级缓存原理与区别@mikechen

2022-09-21 10:08:53 9841 1

原创 Kafka为什么性能这么快?4大核心原因详解

​Kafka的性能快这是大厂Java面试经常问的一个话题,下面我就重点讲解Kafka为什么性能这么快的4大核心原因@mikechen​

2022-09-20 09:44:26 1684

原创 Java 异步编程 (5 种异步实现方式详解)

​同步操作如果遇到一个耗时的方法,需要阻塞等待,那么我们有没有办法解决呢?让它异步执行,下面我会详解异步及实现@mikechen​

2022-09-20 09:24:18 46984 1

原创 Spring AOP全面详解(超级详细)

​如果说 IOC 是 Spring 的核心,那么面向切面编程AOP就是 Spring 另外一个最为重要的核心@mikechen​

2022-08-18 11:16:23 628

原创 Java四大引用详解:强引用、软引用、弱引用、虚引用

​面试官考察Java引用会问到强引用、弱引用、软引用、虚引用,具体有什么区别?本篇单独来详解 @mikechen

2022-08-13 09:58:28 2777

原创 深入详解Mybatis的架构原理与6大核心流程

MyBatis 是 Java 生态中非常著名的一款 ORM 框架,目前在一线互联网大厂中应用广泛,Mybatis已经成为了一个必会框架。如果你想要进入一线大厂,能够熟练使用 MyBatis 开发已经是一项非常基本的技能,同时大厂也更希望自己的开发人员深入了解 MyBatis 框架的原理和核心实现。从这个角度看,理解 MyBatis 原理,阅读 MyBatis核心源码,这样更有利于提高职场竞争力。...

2022-08-12 09:52:10 638 1

原创 JVM 内存模型和结构详解 (五大模型图解)

JVM内存模型和Java内存模型都是面试的热点问题,名字看感觉都差不多,实际上他们之间差别还是挺大的。通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关

2022-08-08 16:45:48 462

原创 如何从0到1设计一个类Dubbo的RPC框架

之前分享了如何从0到1设计一个MQ消息队列,今天谈谈“如何从0到1设计一个Dubbo的RPC框架”,重点考验:你对RPC框架的底层原理掌握程度。以及考验你的整体RPC框架系统设计能力。RPC和RPC框架1.RPC(Remote Procedure Call)即远程过程调用, 主要解决远程通信间的问题,不需要了解底层网络的通信机制。2.RPC框架RPC框架负责屏蔽底层的传输方式(TCP或者UDP)、序列化方式、以及通信细节。实际使用中,并不需要关心底层通信细节和调用过程,让业务端专注于业.

2022-02-17 09:05:36 379

原创 深入详解Mybatis的架构原理与6大核心流程

MyBatis 是 Java 生态中非常著名的一款 ORM 框架,目前在一线互联网大厂中应用广泛,Mybatis已经成为了一个必会框架。如果你想要进入一线大厂,能够熟练使用 MyBatis 开发已经是一项非常基本的技能,同时大厂也更希望自己的开发人员深入了解 MyBatis 框架的原理和核心实现。从这个角度看,理解 MyBatis 原理,阅读 MyBatis核心源码,这样更有利于提高职场竞争力。在深入了解Mybatis的源码之前,我们先了解一下Mybatis的整体架构和工作原理,这样有助于我们在阅读.

2022-02-14 09:34:39 3746

原创 Volatile的实现原理(看这篇就够了)

谈到并发编程就不得不提到并发三要素:原子性、可见性、有序性,而Volatile就会涉及到可见性与有序性,可见Volatile在并发编程的重要的地位。所以需要重点掌握Volatile,为了助大家掌握好Volatile,我会重点讲到以下5点:1.Volatile关键字2.Java内存模型3.Volatile内存模型可见性4.Volatile的工作原理5.Volatile的源码案例在谈Volatile之前,我们先回顾下Java内存模型的三要素:原子性、可见性、有序性,也就是大家常提到的并发编程.

2022-01-17 09:27:28 3062

原创 单点登录SSO的实现原理与方案详解

为什么需要单点登录单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如,阿里旗下有淘宝、天猫等网站,还有背后的成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。所以,单点登录要解决的就是,用户只需要登录一次就可以访问所有相互信任的应用.

2022-01-14 11:37:59 3404

原创 「独家分享」阿里巴巴、腾讯、百度的内部薪资及职级体系

经常有同学问我,想要了解大厂的薪资与职级,我这次就为大家详细介绍腾讯、阿里巴巴、百度内部的薪资等级情况。

2021-12-17 16:45:00 7610 4

原创 Volatile关键字,你真的理解吗?

谈到并发编程,必知晓并发三要素 :原子性、可见性、有序性。而 Volatile 涉及了 可见性与有序性,是轻量级的 synchronized,在并发编程中扮演着极其重要的角色 。本文源码实例、深入剖析 Volatile 的实现原理,帮助快速掌握并正确使用 Volatile 变量 ,本篇【视频详解】见文末。

2021-12-16 17:30:00 886 3

原创 HashMap的实现原理看这篇就够了,图文源码详解,深入浅出简单易懂

HashMap 是一线资深 java工程师必须要精通的集合容器,它的重要性几乎等同于Volatile在并发编程的重要性(可见性与有序性)。本文通过图文源码详解,深度剖析了HashMap的重要内核知识,易看易学易懂,建议收藏阅读,多学一点总是好的,万一面试问到了呢。

2021-12-13 16:14:19 647 1

原创 快速掌握消息队列MQ最内核,图文并茂详解

消息队列MQ是大型分布式系统不可缺少的中间件,也是高并发系统的基石中间件,其重要性不言而喻。本篇通过图文并茂的方式,对消息队列MQ来完整详解,助你快速掌握消息队列 MQ 最内核的东西。譬如:消息队列MQ的主流应用场景、主流产品与选型、以及设计一个消息队列MQ该如何下手等。建议收藏备用!——不啰嗦了,下面进入正文!嘀嘀!准备上车了!!——消息队列MQ概述消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列。消息(Message)是指在应用之间传.

2021-11-14 11:40:15 1765 1

原创 工作几年只会增删改查怎么了,大神们都是从第一行代码开始的!

昨晚12点,Mike收到了一位童鞋私信,大家聊到了许久。经过交流,了解到他大学学的是计算机系,毕业之后进入外包公司,目前已工作两年了,工作内容主要是增删改查,每天有做不完的项目,经常需要加班,就这样日复一日地重复地造着轮子。最近得到了一个互联网公司的面试机会,虽然薪资不高,但急于想改变现状,还是去参加了来之不易的面试机会,在面试过程中被问到了Redis、MQ、kafka、并发编程等技术知识,大...

2019-09-12 11:42:57 1400

原创 远离无效的996

今天下午看到一个视频,某创业公司的一位员工在镜头下缓缓倒下,据说是因为长期007身体扛不住,最终也没能抢救回来。

2019-04-16 18:04:20 513

原创 阿里45K高级Java岗,必备技能清单

相信你可能经历过这些:已经工作两三年了,每个项目都会加班加点全力以赴去完成,薪资增长幅度却不如人意。听说年后离职的老同事,金三刚拿下高薪offer,年薪直奔50万了。由于现在的公司接触不到新技术,对自己的市场竞争力无比焦虑,未来职业道路怎么走?这个凛冽寒冬,你终于明白,现在的工作机会很少,薪资很难有较大涨幅,Java工程师的年薪是技能决定的,是时候去提高技能,提前规划未来职业发展路径了...

2019-04-10 10:52:46 1338

原创 BAT架构技术专题合集500+

Mike创作的完整《BAT架构技术合集500+》,是大型高并发网站架构技术文章合集,内容包括技术选型、架构设计、性能优化、Web安全、系统发布等在内的大型网站开发全景视图。通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,结合架构设计案例,深入讲述大型互联网架构设计的核心原理。给想要了解大型网站解决方案和开发理念、进阶提高技术能力的Java工程师们做个参考。本篇是《BAT架构技术合集5...

2019-04-06 12:02:32 1670 1

原创 7种JVM垃圾收集器特点,优劣势、及使用场景

本系列会持续更新。今天继续JVM的垃圾回收器详解,如果说垃圾收集算法是JVM内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。一、常见的垃圾收集器有3类1.新生代的收集器包括SerialPraNewParallel Scavenge2.老年代的收集器包括Serial OldParallel OldCMS3.回收整个Java堆(新生代和老年代)G1收集器今天我们详...

2019-03-14 11:42:55 506

原创 JVM的4种垃圾回收算法、垃圾回收机制与总结

本系列会持续更新。一、垃圾回收算法1.标记清除标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。在标记阶段首先通过根节点(GC Roots),标记所有从根节点开始的对象,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象。适用场合:存活对象较多的情况下比较高效适用于年老代(即旧生代)缺点:容易产生内存碎片,再来一个比较大的对象时(典型情况:...

2019-03-11 14:19:47 3234

原创 Java岗招聘标准水涨船高,五年Java程序员表示面试太难了

一位从事Java工作五年的朋友最近参加了几场面试,结束之后感概不已,现在互联网公司的用人标准水涨船高,面试机会少了,就连面试的难度都越来越大了。但不管怎样,扎实的基本功、准备的充分程度,都能决定你的Java工程师之路未来能走多远。只有同时掌握两点,才能决胜未来。我一直相信,机会是留给有准备的人的,所以,请提早准备,越早越好。Mike总结的1-5年工作经验Java工程师学习方向与内容,以及最新的...

2019-03-07 14:21:34 867

原创 抢头条offer机会,抖音面试题:网络编程Socket+GC Roots+数据同步+Redis等

又到抢收好offer的季节,最近今日头条寒冬下逆势热招,放出大量offer,base北京、成都都有,据说福利还很不错,成都岗位有租房补贴、免费三餐、带薪年假等。在一家高速发展的互联网公司工作,除了工作稳定、薪水可观、福利丰厚,更难能可贵的是,可能得到更多的工作挑战与晋级机会。对于想要进入一线互联网工作的Java工程师们来说,如果面试前没有准备充分,浪费机会就太遗憾了。分享近期参加头条抖音面试的...

2019-03-06 10:56:38 1382

原创 2019最新蚂蚁金服Java 4面真题

下周开始正式进入金三银四,找好工作的黄金时间。很多同学私信留言,急需BAT的面试题。特别是寒冬清流,阿里巴巴谈到的,2019依然持续开放招聘力度。本周依然持续2019一线互联网公司面试题专场,今天为大家带来最新蚂蚁金服4面题目。文末,依然为大家准备了相关的BAT面试答案专题~一面hashmap源码问题HashMap底层结构 put操作讲一下HashMap、HashMap如何保证线程安全、...

2019-02-28 16:07:17 841

原创 寒冬清流,阿里巴巴

近日,阿里巴巴集团CEO张勇在内部管理会上明确表示,阿里巴巴不会裁员,相反将继续开放招聘,加大对人才的培养培训计划,同时投入更多的平台资源,帮社会创造更多的就业机会。阿里巴巴集团CEO张勇:“今年我们不仅不会裁员,还要大力发挥阿里巴巴平台的作用,全力拉动消费,带动更多的制造业和服务业订单。经济不好的时候,平台经济最大的价值就是创造就业。”凛冽寒冬下,阿里宣布不裁员,并扩大招聘储备人才。与之形...

2019-02-28 16:04:07 448

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除