2 欧阳丰

尚未进行身份认证

我要认证

欢迎加入我的Java架构预备营:749151405

等级
TA的排名 4w+

拿捏了!ConcurrentHashMap!

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题最全面试题新鲜出炉:70+算法题、近30种大厂面试笔试常考知识点概述本文将对JDK8中 ConcurrentHashMap 源码进行一定程度的解读。解读主要分为六个部分:主要属性与相关内部类介绍、构造函数、put过程、扩容过程、size过程、get过程、与JDK7实现的简单对比。希望对读者学习ConcurrentHashM

2020-09-03 16:28:27

Redis中Srting类型的底层实现-SDS

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题最全面试题新鲜出炉:70+算法题、近30种大厂面试笔试常考知识点1、什么是SDS?sds是c中的一个数据结构,如下:struct sdshdr{ //buf数组中已使用的字节数,即字符串长度 int len; //buf数组未使用的字节数 int free; //存储字节的数组

2020-09-02 21:04:04

什么是分布式锁?为什么要用分布式锁?

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题最全面试题新鲜出炉:70+算法题、近30种大厂面试笔试常考知识点什么是分布式锁?在回答这个问题之前,我们先回答一下什么是锁。普通的锁,即在单机多线程环境下,当多个线程需要访问同一个变量或代码片段时,被访问的变量或代码片段叫做临界区域,我们需要控制线程一个一个的顺序执行,否则会出现并发问题。如何控制呢?就是设置一个各个线程

2020-09-01 20:36:29

SpringBoot 整合 MyCat 实现读写分离

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题最全面试题新鲜出炉:70+算法题、近30种大厂面试笔试常考知识点MyCat一个彻底开源的,面向企业应用开发的大数据库集群。基于阿里开源的Cobar产品而研发。能满足数据库数据大量存储;提高了查询性能。文章介绍如何实现MyCat连接MySQL实现主从分离,并集成SpringBoot实现读写分离。MySQL配置主从关系说明

2020-08-31 16:14:25

JSON 字符串是如何被解析的?JsonParser 了解一下

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题最全面试题新鲜出炉:70+算法题、近30种大厂面试笔试常考知识点版本约定Jackson 版本:2.11.0Spring Framework 版本:5.2.6.RELEASESpring Boot 版本:2.3.0.RELEASE小贴士:截止到本文,本系列前面所有示例都只仅仅导入jackson-core而已,后续

2020-08-28 11:19:07

Mybatis接口Mapper内的方法为啥不能重载?我懵了

作者:祖大俊来源:my.oschina.net/zudajun/blog/666223动态代理的功能:通过拦截器方法回调,对目标target方法进行增强。言外之意就是为了增强目标target方法。上面这句话没错,但也不要认为它就是真理,殊不知,动态代理还有投鞭断流的霸权,连目标target都不要的科幻模式。注:本文默认认为,读者对动态代理的原理是理解的,如果不明白target的含义,难以看懂本篇文章,建议先理解动态代理。1. 自定义JDK动态代理之投鞭断流实现自动映射器Mapper首先定义一.

2020-08-25 18:04:38

神奇的 SQL,为什么 GROUP BY 之后不能直接引用原表中的列,原来是这样!

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题最全面试题新鲜出炉:70+算法题、近30种大厂面试笔试常考知识点GROUP BY 后 SELECT 列的限制标准 SQL 规定,在对表进行聚合查询的时候,只能在 SELECT 子句中写下面 3 种内容:通过 GROUP BY 子句指定的聚合键、聚合函数(SUM 、AVG 等)、常量。我们来看个例子我们有 学生班级表(tb

2020-08-24 10:59:52

四面支付宝:容器+线程池+HashMap+红黑树+算法+分布式架构

蚂蚁花呗一面(一个小时):Java容器有哪些?哪些是同步容器,哪些是并发容器?线程池的工作原理,几个重要参数?给了具体几个参数,分析线程池会怎么做?ArrayList和LinkedList的插入和访问的时间复杂度?HashMap push方法的执行过程?java反射原理, 注解原理?说说一致性 Hash 原理HashMap在什么情况下会扩容,或者有哪些操作会导致扩容?HashMap检测到hash冲突后,将元素插入在链表的末尾还是开头?1.8还采用了红黑树,讲讲红黑..

2020-08-21 15:53:26

谈谈设计模式:建造者模式在jdk中的体现,它和工厂模式区别?

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题最全面试题新鲜出炉:70+算法题、近30种大厂面试笔试常考知识点背景建造模式(Builder模式)假如有一个需求:盖房子,盖房子过程是一致的:打桩、砌墙、封顶。但是房子是各式各样的,最后盖出来的房子可能是高楼或别墅。根据直接的思路,不用设计模式思想,我们也许会:写一个 CommonHouse 抽象类,然后里面规定了

2020-08-21 14:48:28

老板:要是还继续再用Log4j,你就收拾东西回家吧!

之前一段时间,为我们发现的一个SaaS应用程序会间歇性地卡顿、变慢,因为很长时间都没有定位到原因,所以解决的办法就只能是重启。这个现象和之前我们遇到的程序变得卡顿不太一样,因为我们发现**这个应用程序不仅在高流量期间时会变慢,有时在低流量时期也会变慢。**所以这令大家都很奇怪。这类应用程序的变慢,重新启动之后就可以维持一段时间,但是过段时间又有可能会再次出现。故障排除当我们准备排查这个问题的时候,我们在应用程序速度很慢的时候,尝试着捕获了这个应用程序的线程Dump。有很多种方式来捕...

2020-08-19 16:00:46

总结多线程与设计模式+synchronized+性能+高吞吐+死锁+线程安全

Java线程Java语言的线程何谓线程线程启动线程的暂时停止线程的共享互斥线程的协调线程的状态转移跟线程有关的其他话题多线程程序的评量标准安全性生存性复用性性能评量标准的总结SingleThreaded Execution模式,能通过这座桥的,只有一个人非线程安全的Gate类UserThread类线程安全的Gate类synchronized生存性与死锁可复用性和继承反常临界区的大小和性能其他相关设计模式原子操作Immutable模式

2020-08-18 17:18:25

简直无敌!火遍全网的“多线程核心技术”(金九银十突击版),他来了

进程和线程的提出极大的提高了操作提供的性能。进程让操作系统的并发性成为了可能,而线程让进程的内部并发成为了可能。多进程的方式也可以实现并发,为什么我们要使用多线程?多进程方式确实可以实现并发,但使用多线程,有以下几个好处:进程间的通信比较复杂,而线程间的通信比较简单,通常情况下,我们需要使用共享资源,这些资源在线程间的通信比较容易。进程是重量级的,而线程是轻量级的,故多线程方式的系统开销更小。由此可见多线程的学习对程序员来说是至关重要的,这也是为什么不论是大大小小的公司面试官都会问到的问题。金

2020-08-14 21:51:16

从一道面试题说起:GET 请求能传图片吗?

前言忘了在哪里看到的这个题目,觉得挺有意思,来说下我的答案及思考过程。首先,我们要知道的是,图片一般有两种传输方式:base64 和 file 对象。base64 图片图片的base64编码想必大家都见过:base64 的本质是字符串,而 GET 请求的参数在 url 里面,所以直接把图的 base64 数据放到 url 里面,就可以实现 GET 请求传图片。input 输入框拿到的图是 file 对象,图片 file 对象转 base64 :// img参数: file文件或者blobc

2020-08-13 17:12:23

666!Alibaba内部传出的面试神技,秋招offer尽收囊中

2019 已经够难的了,2020 开局就遇上了新型冠状病毒,就更难了。相信不少人都有这样的感叹。因为疫情的影响,各家公司的春招事项一再延后,2020年互联网市场全都受到了疫情影响,存在人才发展跟不上市场的需求的现状,相对应的给优秀Java人才开出的薪资待遇随之水涨船高。最近很多小伙伴找我要一些金九银十的面试资料,今天,它来了!下面的资料是以图片展示,篇幅原因只能出示一小部分,需要完整版的超清笔记的,可以帮忙点个赞,快速入手通道:(点这里)下载!,就可以拿到完整版的了!资料也按目录进行编排,每一章

2020-08-11 17:33:34

关于线程池的五种实现方式,七大参数,四种拒绝策略

1 池化技术之线程池什么是池化技术?简单来说就是优化资源的使用,我准备好了一些资源,有人要用就到我这里拿,用完了就还给我。而一个比较重要的的实现就是线程池。那么线程池用到了池化技术有什么好处呢?降低资源的消耗提高响应的速度方便管理也就是 线程复用、可以控制最大并发数、管理线程2 线程池的五种实现方式其实线程池我更愿意说成四种封装实现方式,一种原始实现方式。这四种封装的实现方式都是依赖于最原始的的实现方式。所以这里我们先介绍四种封装的实现方式2.1 newSingleThreadExecu

2020-08-08 21:47:31

面试时被问到MySQL怎么递归查询,我当场就懵了

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题最全面试题新鲜出炉:70+算法题、近30种大厂面试笔试常考知识点前言最近在做的业务场景涉及到了数据库的递归查询。我们公司用的 Oracle ,众所周知,Oracle 自带有递归查询的功能,所以实现起来特别简单。但是,我记得 MySQL 是没有递归查询功能的,那 MySQL 中应该怎么实现呢?于是,就有了这篇文章。文章

2020-08-07 20:50:43

揭秘JMM、Synchronized、Volatile之间的关系

Volatile可以说是我们Java虚拟机给我们提供的一个轻量级的同步机制,与Synchronized类似,但是却没有它那么强大。关于Volatile最主要的特点呢就是它的三大特性:保证可见性不保证原子性禁止指令重排而要了解Volatile的话,我们就需要有JMM的基础,所以我们要介绍JMM的相关知识。1 初步了解JMM1.1 什么是JMM呢?JMM是Java内存模型的缩写(Java Memory Model),是一种逻辑的东西,物理上不存在的。可以说是一种概念或者约定。比如关于约定有以下

2020-08-07 15:05:57

强势来袭!Spring进阶思路精髓,打破你对Java框架的一切认知!

Spring简介Spring它是一个框架,轻量级javaEE这个概念,也是由Spring框架衍生出来的Spring 甚至没有太多新东西,它只是提取了javaEE应用中的常用代码,将其抽象成为了框架Spring 创始人 :Rod Johnson,他的专业不是计算机,而是音乐学,但他也是一个计算机博士Spring的框架里充满了各种设计模式,spring框架的用法,源码设计更是一套丰富的java大餐Spring的组成如上是Spring的七个模块,每个模块都是独立存在,模块与模块可以相互组合使用

2020-08-03 15:54:23

半吊子架构师,一来就想用Kafka取代RabbitMQ?

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题最全面试题新鲜出炉:70+算法题、近30种大厂面试笔试常考知识点作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差

2020-07-23 14:32:25

超牛的MySQL索引知识点详解,不用再去找别的了

数据库索引,相信大家都不陌生吧。索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。作为辅助查询的工具,合理的设计索引能很大程度上减轻db的查询压力,db我们都知道,是项目最核心也是最薄弱的地方,如果压力太大很容易产生故障,造成难以预计的影响。所以,不管是日常开发还是面试,索引这一块知识体系都是必须掌握的。当然,虽说是必须掌握,但索引的知识点很多,很多初学者经常会遗漏,这也是我为什么想写这篇知识点总结的原因,既是给读者的分享,也是给自己一次全面的复习,希望对你们.

2020-07-21 11:35:46

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。