Java四大引用详解:强引用、软引用、弱引用、虚引用
面试官考察Java引用会问到强引用、弱引用、软引用、虚引用,具体有什么区别?本篇单独来详解 @mikechen
深入详解Mybatis的架构原理与6大核心流程
MyBatis 是 Java 生态中非常著名的一款 ORM 框架,目前在一线互联网大厂中应用广泛,Mybatis 已经成为了一个必会框架。 如果你想要进入一线大厂,能够熟练使用 MyBatis 开发已经是一项非常基本的技能,同时大厂也更希望自己的开发人员深入了解 MyBatis 框架的原理和核心实现。 从这个角度看,理解 MyBatis 原理,阅读 MyBatis 核心源码,这样更有利于提高职场竞争力。
Java多线程超级详解(只看这篇就够了)
多线程能够提升程序性能,也属于高薪必能核心技术栈,本篇会全面详解Java多线程。
什么是幂等性?四种接口幂等性方案详解!
幂等性在我们的工作中无处不在,无论是支付场景还是下订单等核心场景都会涉及,也是分布式系统最常遇到的问题,除此之外,也是大厂面试的重灾区。 知道了幂等性的重要性,下面我就详细介绍幂等性以及具体的解决方案,希望对大家有所帮助 @mikechen
JVM内存模型和结构详解(五大模型图解)
JVM 内存模型和 Java 内存模型都是面试的热点问题,名字看感觉都差不多,实际上他们之间差别还是挺大的。通俗点说,JVM 内存结构是与 JVM 的内部存储结构相关,而 Java 内存模型是与多线程编程相关 @mikechen,。目录什么是 JVM为什么需要 JVM?JVM 内存模型堆(Heap)方法区(Method Area)虚拟机栈 (JVM Stack)本地方法栈 (Native Stac
JVM性能调优的6大步骤,及关键调优参数详解
JVM性能调优是一个非常重要的技能,大厂也特爱问,属于高薪必备技能@mikechenJVM内存调优对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。1.Full GC会对整个堆进行整理,包括Young、Tenured和Perm。Full GC因为需要对整个堆进行回收,所以比较慢,因此应该尽可能减少Full GC的次数。2.导致Full GC的原因1)年老代(Tenured
Java注解最全详解(超级详细)
Java注解是一个很重要的知识点,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。掌握好Java注解有利于学习框架底层实现。@mikechenJava注解定义Java注解又称Java标注,是在 JDK5 时引入的新特性,注解(也被称为元数据)。Java注解它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行
如何从0到1设计一个类Dubbo的RPC框架
之前分享了如何从0到1设计一个MQ消息队列,今天谈谈“如何从0到1设计一个Dubbo的RPC框架”,重点考验: 你对RPC框架的底层原理掌握程度。 以及考验你的整体RPC框架系统设计能力。RPC和RPC框架1.RPC(Remote Procedure Call)即远程过程调用, 主要解决远程通信间的问题,不需要了解底层网络的通信机制。2.RPC框架RPC框架负责屏蔽底层的传输方
彻底搞清楚ConcurrentHashMap的实现原理(含JDK1.7和JDK1.8的区别)
ConcurrentHashMap 的实现原理基本都是大厂面试必考内容,深入探讨HashMap的底层结构、原理、扩容机制,深入谈过hashmap的实现原理以及在JDK 1.8的实现区别,今天主要谈ConcurrentHashMap的实现原理,以及在JDK1.7和1.8的区别。为了彻底搞清楚ConcurrentHashMap的实现机制,我会先从它的底层数据实现:哈希表谈起。内容目录:1.哈希表2.C
Java泛型详解,史上最全图文详解!
泛型在java中有很重要的地位,无论是开源框架还是JDK源码都能看到它。毫不夸张的说,泛型是通用设计上必不可少的元素,所以真正理解与正确使用泛型,是一门必修课。一:泛型本质Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,
深入详解Mybatis的架构原理与6大核心流程
MyBatis 是 Java 生态中非常著名的一款 ORM 框架,目前在一线互联网大厂中应用广泛,Mybatis已经成为了一个必会框架。如果你想要进入一线大厂,能够熟练使用 MyBatis 开发已经是一项非常基本的技能,同时大厂也更希望自己的开发人员深入了解 MyBatis 框架的原理和核心实现。从这个角度看,理解 MyBatis 原理,阅读 MyBatis核心源码,这样更有利于提高职场竞争力。在
JVM完整详解:内存分配+运行原理+回收算法+GC参数等
不管是BAT面试,还是工作实践中的JVM调优以及参数设置,或者内存溢出检测等,都需要涉及到Java虚拟机的内存模型、内存分配,以及回收算法机制等,这些都是必考、必会技能。JVM内存模型JVM内存模型可以分为两个部分,如下图所示,堆和方法区是所有线程共有的,而虚拟机栈,本地方法栈和程序计数器则是线程私有的。1. 堆(Heap)堆内存是所有线程共有的,可以分为两个部分:年轻代和老年代。下图中的Perm
HashMap的实现原理(看这篇就够了)
HashMap 是一线资深 java工程师必须要精通的集合容器,它的重要性几乎等同于Volatile在并发编程的重要性(可见性与有序性)。本篇通过图文源码详解,深度剖析 HashMap 的重要内核知识,易看易学易懂。建议收藏,多学一点总是好的,万一面试被问到了呢。我是Mike,10余年BAT一线大厂架构技术倾囊相授。本篇重点:1.HashMap的数据结构2.HashMap核心成员3.HashMap
Volatile的实现原理(看这篇就够了)
谈到并发编程就不得不提到并发三要素:原子性、可见性、有序性,而Volatile就会涉及到可见性与有序性,可见Volatile在并发编程的重要的地位。所以需要重点掌握Volatile,为了助大家掌握好Volatile,我会重点讲到以下5点:1.Volatile关键字2.Java内存模型3.Volatile内存模型可见性4.Volatile的工作原理5.Volatile的源码案例在谈Volatile之
Java反射详解:入门+使用+原理+应用场景
反射非常强大和有用,现在市面上绝大部分框架(spring、mybatis、rocketmq等等)中都有反射的影子,反射机制在框架设计中占有举足轻重的作用。所以,在你Java进阶的道路上,你需要掌握好反射。怎么才能学好反射,我们需要弄懂以下几个问题:1.反射是什么?2.反射有什么用?3.反射的实现原理?4.怎么用反射?下面我就针对以上的疑问,一一来讲解。反射是什么?反射是java语言的一个特性,它允