自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员囧辉

记录个人在 Java 学习路上的一些学习、思考、经验和总结。

原创 4 年 Java 经验,阿里网易拼多多面试总结、心得体会

4年经验,面试阿里、拼多多、网易的总结和体会。

2019-08-19 21:49:34 5908 30

原创 面试必问的CAS,你懂了吗?

面试必问的CAS,你懂了吗?

2018-03-14 22:29:19 73867 36

原创 史上最详细的 JDK 1.8 HashMap 源码解析

可能是史上最详细的 HashMap 源码解析。

2018-01-07 18:00:41 54560 91

原创 复习2个月拿下美团offer,我都做了些啥
原力计划

目录 前言 正文 咸鱼的现状 咸鱼的自我救赎 1.看面试题 2.源码初探 3.项目准备 咸鱼修炼出山 差点 FirstBlood 几次尴尬的经历 冥冥中注定 幸运女神的眷顾 进大厂的诀窍 写在最后 这是我17年的经历,觉得还挺励志的,希望能帮助到一些正在迷茫的同学。...

2020-06-01 09:27:32 168 2

原创 面试阿里,HashMap 这一篇就够了
原力计划

HashMap 面试中可能问到的知识点,这边全都有

2020-05-25 09:19:32 2189 10

原创 2年6个月11天,外包到阿里的修仙之路
原力计划

屌丝外包的逆袭之路。

2020-05-18 09:05:22 15316 149

原创 Spring AOP源码学习:一次请求调用全流程
原力计划

目录 前言 正文 JdkDynamicAopProxy#invoke 代码块1:ReflectiveMethodInvocation构造函数 代码块2:ReflectiveMethodInvocation#proceed() 代码块3:invokeJoinpoint() 代码块4:E...

2020-05-11 23:48:23 464 2

原创 Spring AOP源码学习:创建 AOP 代理
原力计划

目录 前言 AnnotationAwareAspectJAutoProxyCreator AbstractAutoProxyCreator#postProcessAfterInitialization 代码块1:wrapIfNecessary 代码块2:getAdvicesAndAdvi...

2020-05-11 23:45:22 438 0

原创 面试题:mybatis 中的 DAO 接口和 XML 文件里的 SQL 是如何建立关系的?
原力计划

mybatis 常问的面试题,你懂了吗?

2020-05-05 17:42:44 550 0

原创 Spring AOP源码学习:AOP 注解的解析

前言 上文介绍了 AOP的基本概念,本文开始进入 AOP的源码解析,本文仍以 AspectJ来进行介绍,首先是 AOP注解的解析。 正文 当使用<aop:aspectj-autoproxy />注解开启 AOP功能时。 Spring会从“META-INF/spring.ha...

2019-12-14 22:17:02 2191 0

原创 Spring AOP源码学习:基本概念

前言 之前用十几篇文章介绍了SpringIoC的源码,作为与IoC齐名的 AOP自然也不能错过。同样的,接下去将会通过几篇文章来解析Spring AOP的源码。 如何将Spring源码导入 IDEA,请参考:Spring IoC:源码学习总览 注:本文的内容以 AspectJ来进行介绍。...

2019-11-30 23:50:47 636 0

原创 小白也看得懂的 Spring IoC 核心流程介绍

前言 本文将用最通俗易懂的文字介绍SpringIoC中的核心流程,主要用于帮助初学者快速了解IoC的核心流程,也可以用作之前源码分析文章的总结。本着简单的初衷,本文会省略掉大量流程,只介绍最重要的步骤。 基础概念 1、IoC 和 DI IoC (Inversion of Control...

2019-10-26 21:07:05 977 4

原创 Spring 源码学习系列汇总

Spring 系列的文章目录,后续Spring相关文章都会更新到本文,方便大家查阅。

2019-09-28 16:00:59 1367 0

原创 阿里巴巴招聘-高级Java开发工程师/技术专家

团队介绍 CBU技术部基础平台团队,负责阿里巴巴产地供应链、跨境、交易、支付、会员、物流等业务及技术领域的建设。这里有刚刚起步的产地供应链等你一起建设。这里有跨境业务等你来一起点亮全球。这里有完整的电商基础设施等你来一起建设。期待您的加入。 岗位描述 从事技术架构、核心开发工作,参与...

2019-09-03 09:05:07 1767 7

原创 Spring IoC源码学习:finishRefresh 详解

前言 SpringIoC的核心内容已经介绍完毕,本文将对最后一个方法finishRefresh进行介绍。由于存在上下文关系,本文也会对initApplicationEventMulticaster方法、registerListeners方法进行介绍。 正文 首先,我们回到refresh方...

2019-08-12 11:34:46 644 2

原创 排序算法:归并排序

前言 这篇文章本该发表于2018年4月份末,在排序算法:快速排序之后,但是不知道什么原因,这篇文章忘了在CSDN上发表,今天在看博客的时候突然发现,因此补上。 概述 之前介绍过排序算法中效率很高的“快速排序”。本文将介绍另一个高效的排序算法——“归并排序”。 基本思想 归并排序的...

2019-06-07 13:48:13 277 1

原创 Spring IoC源码学习:@Autowire 详解

前言 在Spring IoC:createBean 详解(上)中代码块4.5和Spring IoC:createBean详解(下)中代码块1、代码块4的 7.1.1我们遗留了一个解析——@Autowire注解的解析。之所以单独提出来,是因为在我现在接触的项目中,使用 @Autowire注解的比例...

2019-03-03 17:14:18 1662 2

原创 Spring IoC源码学习:createBean 详解(下)

前言 接着Spring IoC:createBean详解(上),我们继续解析创建bean实例的剩下内容。 正文 首先,我们回到Spring IoC:createBean详解(上)中的代码块3,doCreateBean 方法。 doCreateBean protected Obj...

2019-03-02 23:18:37 908 2

原创 Spring IoC源码学习:createBean 详解(上)

前言 接着Spring IoC:getBean详解,我们继续解析获取bean实例里的核心内容:创建bean实例。 正文 首先,我们进入createBean方法。 createBean @Override protected Object createBean(String be...

2019-03-02 16:21:30 1255 2

原创 Spring IoC源码学习:getBean 详解

前言 接着Spring IoC:finishBeanFactoryInitialization详解,我们正式开始学习获取bean实例方法,该方法是Spring最核心的方法。 正文 单击 preInstantiateSingletons方法里的getBean(beanName)代码,进入该...

2019-02-27 22:31:02 1974 4

原创 Spring IoC源码学习:finishBeanFactoryInitialization 详解

前言 在介绍了 obtainFreshBeanFactory、invokeBeanFactoryPostProcessors、registerBeanPostProcessors三个重要方法后,我们终于来到了最后一个重要方法:finishBeanFactoryInitialization。fin...

2019-02-26 22:05:27 1397 2

原创 Spring IoC源码学习:registerBeanPostProcessors 详解

前言 在Spring IoC:invokeBeanFactoryPostProcessors解析中我们介绍了invokeBeanFactoryPostProcessors方法,而本文将介绍另一个类似的方法——registerBeanPostProcessors。 invokeBeanFacto...

2019-02-23 13:56:37 1461 0

原创 Spring IoC源码学习:invokeBeanFactoryPostProcessors 详解

前言 随着Spring IoC:context:component-scan节点解析的结束,obtainFreshBeanFactory方法的解析也告一段落,我们通过5篇文章,完整的介绍了obtainFreshBeanFactory方法。本文将介绍obtainFreshBeanFactory方法...

2019-02-22 22:11:36 4706 10

原创 Spring IoC源码学习:context:component-scan 节点详解

前言 在Spring IoC:parseCustomElement详解中,我们介绍了自定义命名空间节点解析的大部分内容,但是还剩下节点解析的具体过程。本文将以 <context:component-scan />节点为例子,介绍自定义命名空间 context的component-sc...

2019-02-17 18:13:46 1388 0

原创 Spring IoC源码学习:parseCustomElement 详解

前言 我们通过Spring IoC:parseDefaultElement详解解析了默认命名空间节点的解析,本文将解析自定义命名空间节点的解析。 正文 首先让我们回到Spring IoC:obtainFreshBeanFactory详解文末的 parseBeanDefinitions方法...

2019-02-16 17:45:30 679 0

原创 Spring IoC源码学习:parseDefaultElement 详解

前言 接着Spring IoC:obtainFreshBeanFactory详解继续往下解析,本文来到 parseDefaultElement 方法。该方法是解析默认命名空间节点的方法,是加载 bean 定义模块的最核心方法。 正文 首先让我们回到Spring IoC:obtainFre...

2019-01-30 22:30:23 716 0

原创 Spring IoC源码学习:obtainFreshBeanFactory 详解

前言 上文Spring IoC:ApplicationContext 刷新前的配置介绍了refresh 方法前的环境准备操作,接下来正式进入 refresh方法。prepareRefresh是refresh里的第一个方法,主要是一些准备工作,比较简单的方法,看一下就了解了。接下来是obtainF...

2019-01-27 00:47:03 1353 3

原创 位图法:判断一个数是否在40亿个整数中?

题目 最近看到一个题目:给40亿个不重复的 unsigned int 的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?   解法 搜了一下资料,该题目是腾讯的一道面试题,目前网上普遍给出的答案有两种。 1.《编程珠玑》给出的方案 我们把40亿个数中的每一个...

2019-01-26 15:28:10 1252 2

原创 Spring IoC源码学习:ApplicationContext 刷新前的配置

前言 在 Spring IoC:源码学习总览中,我们简单介绍了 IoC 过程最重要的一个方法,也就是 AbstractApplicationContext#refresh()方法,在正式学习refresh方法之前,还有一些刷新前的操作比较重要,本文将对这部分内容进行介绍。 正文 web....

2019-01-19 22:34:08 1458 0

原创 Spring IoC源码学习:总览

前言 Spring 作为现在最优秀的框架之一,被广泛的应用于 Java 项目中,但是大多数人都只知道如何使用,而不知其中的原理。对大多数人来说可能知道如何使用已经足够了,但是对于想提升自己的人来说,学习 Spring 的源码是一个不错的选择。在过去的几个月里,我利用空闲时间将 IoC 的相关源码...

2019-01-15 00:12:35 1790 3

原创 Java工具箱

前言 本文类似于一个Java开发的“工具箱”,会记录一些Java开发者常用到的工具,例如:工具的一些环境配置、常用的技术网站等。本文不会一下子就有很多内容,会不断的完善。 一、JDK环境变量配置 Windows环境 1.首先下载一个JDK的exe安装文件,JDK官方下载地址:JDK8、...

2019-01-13 21:19:43 1617 0

原创 使用Guava实现限流器

为什么需要限流?在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。限流可以认为服务降级的一种,限流通过限制请求的流量以达到保护系统的目的。一般来说,系统的吞吐量是可以计算出一个阈值的,为了保证系统的稳定运行,一旦达到这个阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处...

2018-06-17 13:39:09 8899 4

原创 MyBatis根据表结构自动生成PO/Mapper代码的最佳实践

前言当我们新建一个表时,在项目中至少要新建3个文件:实体类*PO.java、接口类*POMapper.java、存放SQL的接口实现类*POMapper.xml。对于字段少的表来说,可能你不会在意,但是如果是一个字段超过几十个的表,那你可能要写的头昏眼花了。并且,当字段多了,手写错误的几率特别大。...

2018-06-04 23:10:42 5481 2

原创 Log4j2与Slf4j的最佳实践

前言 日志对于项目的重要性不言而喻,现在市面上的日志框架多种多样:Log4j、Log4j2、Slf4j、JDKLog、Logback等等,如果没有真正深入了解过,可能会被搞得眼花缭乱。本文将介绍目前Java项目中最常见的Log4j2 + Slf4j的使用组合,这也是我自己项目中目前使用的。 另...

2018-05-07 21:38:30 8949 0

原创 排序算法:快速排序

概述 手写排序算法几乎是程序员面试必问的题目,大多数人都会选择写冒泡排序,如果此时你写的是其他改进过的排序算法,相信会让面试官眼前一亮。本文将介绍常见的排序算法中的“快速排序”。 基本思想 快速排序(QuickSort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在19...

2018-04-24 22:02:57 12017 6

原创 排序算法:选择排序

前言 上一次,我们介绍了排序算法中“龟速三兄弟”的二哥“插入排序”。今天,我们继续介绍“龟速三兄弟”中的小弟——“选择排序”。和二哥“插入排序”一样,由于同样是“龟速三兄弟”中的一员,但是处理过程没有大哥“冒泡排序”那么简单明了,因此有不少人可能都没接触过“选择排序”,本文将通过例子来介绍“选择...

2018-04-12 23:04:49 506 0

原创 排序算法:插入排序

前言 上一次,我们介绍了排序算法中“龟速三兄弟”的大哥“冒泡排序”。今天,我们继续介绍“龟速三兄弟”中的二哥——“插入排序”。“冒泡排序”的过程和代码相信大多数人都比较熟悉,但是“插入排序”就不见得了。由于同样是“龟速三兄弟”中的一员,但是处理过程没有“冒泡排序”那么简单明了,因此有不少人可能都...

2018-04-06 18:09:58 433 0

原创 排序算法:冒泡排序

前言 对于Java程序员来说,一般对于算法没有什么要求,但是有一个算法除外——排序算法。排序算法不仅在日常开发中经常用到,还是面试中几乎必问的题目,并且通常是以“手写代码”的形式出现,因此掌握好排序算法是对每一个程序员的最基本要求。 谈到排序算法,第一个浮现在我们脑中的一定是“冒泡排序”。...

2018-04-05 00:45:55 588 1

原创 关于自增操作,你真的懂了吗?

最近看见一道有意思的面试题,是关于自增操作的,让我回想起以前自己也遇到过,并且曾经也让我困惑过,今天拿出来跟大家分享,希望对大家有帮助。题目我相信有不少人会认为输出是100,但实际运行输出是0。为什么了?要知道其中的原理,我们需要先了解下栈中的局部变量表(本地变量表)和操作数栈。局部变量表和操作数...

2018-03-30 19:34:50 1906 2

原创 0基础Java自学之路

前言 最近逛知乎的时候,经常看到有人在问“0基础如何自学Java”、“干了几年**,想转行干Java靠谱吗”等问题。不禁让我回想起了自己当初自学Java的日子,因此在这个周末花了点时间,整理了这篇文章,希望对这些正打算自学Java的或者打算转行Java的人有点帮助。 我的自学之路 先告诉...

2018-03-25 23:52:08 19825 23

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