自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(201)
  • 收藏
  • 关注

原创 3W字详解Java集合!这可能是你能看到的最详细的一篇文章了。

数据结构作为每一个开发者不可回避的问题,而 Java 对于不同的数据结构提供了非常成熟的实现,这一个又一个实现既是面试中的难点,也是工作中必不可少的工具,在此,笔者经历漫长的剖析,将其抽丝剥茧的呈现出来,在此仅作抛砖引玉,望得诸君高见,若君能有所获则在下甚是不亦乐乎,若有疑惑亦愿与诸君共求之!本文一共 3.5 W字,25 张图,预计阅读 2h。可以收藏这篇文章,用的时候防止找不到,这可能是你能看到的最详细的一篇文章了。1.集合框架Java整个集合框架如上图所示(这儿不包括Map,Map.

2021-05-20 13:52:55 124 7

原创 重磅 ! Redis+Nginx+JVM+设计模式+Spring全家桶+Dubbo(源码+笔记+PPT+学习视频)

想短时间跳槽的同学,不多说,直接上干货!已经将所有资料整理好(源码,笔记,PPT,学习视频)一、Redis技术整理Redis哨兵、复制、集群的设计原理,以及区别 Spring+Redis+Docker+Dubbo 深入了解redis 如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题二、Nginx技术整理Nginx实战 Nginx教程从入门到精通三、Mysql技术整理深入浅出MySQL数据库开发优化与管理维护四、Dubbo技术整理Dubbo的详细介绍、设计

2021-05-15 21:03:45 146 2

原创 学习5个月,入职龙湖,年薪涨了13w!快来看面试都问了些什么吧

坐标江苏,互联网it行业,一直都觉得自己干的活儿杂、太基础,要升职薪资涨肯定也无望了,去年底9月疫情又严重的时候逆风裸辞,闭关学习了5个月,包括MQ相关、分布式、分库分表、MySQL、Springboot等系列学习。今年4月份成功入职龙湖公司,涨薪40%。没有凡尔赛,其实裸辞空窗的时间都很长,找工作的过程中无数次都觉得,自己可能再也找不到工作了,就是想跟大家说坚持住!技术没问题的情况下,千万不要降低预期,找工作大部分好公司还是看技术的,只要你曾经做过且没有问题的岗位,暂时的失败一定是机遇未到,别因为几个月一

2021-05-13 14:02:48 1319 1

原创 关于Spring注入方式的几道面试题,你能答上么?

前言本章的内容主要是想探讨我们在进行Spring 开发过程当中,关于依赖注入的几个知识点。感兴趣的读者可以先看下以下问题:@Autowired, @Resource, @Inject 三个注解的区别当你在使用@Autowired时,是否有出现过Field injection is not recommended的警告?你知道这是为什么吗?Spring 依赖注入有哪几种方式?官方是怎么建议使用的呢?如果你对上述问题都了解,那我个人觉得你的开发经验应该是不错的????。下面我们就依次对上述问题

2021-06-07 16:05:05 456 5

原创 如果早知道MVCC可以这样学,我也不至于被面试官虐的这么惨!

什么是MVCC?MVCC是Multi-Version Concurrency Control(多版本并发控制)的缩写。MVCC解决了什么问题?我们知道在mysql中有四种事务隔离级别:读未提交、读已提交、可重复读和串行读。在四种隔离级别中,可重复读就是通过MVCC实现的。通过MVCC,能够保证在事务开启后,保证每次读取的数据都是一样的;但是却不能解决幻读的问题,庆幸的是mysql使用间隙锁解决了在可重复读级别下出现的幻读问题。MVCC实现原理 MVCC主要是借助mysql的undo log和一致

2021-06-04 17:38:58 308 2

原创 Kubernetes集群搭建超详细总结(CentOS版)!干货必收藏!

学习Kubernetes的关键一步就是要学会搭建一套k8s集群。在今天的文章中作者将最近新总结的搭建技巧,无偿分享给大家!废话不多说,直接上干货!01、系统环境准备要安装部署Kubernetes集群,首先需要准备机器,最直接的办法可以到公有云(如阿里云等)申请几台虚拟机。而如果条件允许,拿几台本地物理服务器来组建集群自然是最好不过了。但是这些机器需要满足以下几个条件:要求64位Linux操作系统,且内核版本要求3.10及以上,能满足安装Docker项目所需的要求;机器之间要保持网络互通,这是未来容

2021-06-03 17:17:20 777 2

原创 后端开发都应该了解的登陆漏洞!你还不清楚就out了!

前言登录是大部分网站都具备的一个功能,作为用户使用系统的第一步,如果登陆逻辑设计不合理,容易被攻击者利用,造成安全问题。密码泄漏弱口令相信大家都知道弱口令是什么意思,用户为了方便,一般会使用123456、admin、passwd、password、123qwe等这些作为自己的常用密码,方便好记。黑客会对这些人们常用的密码建立破译字典,逐个尝试进行破解。另外,也建议大家不要用生日、手机号、姓名等相关信息作为密码,黑客在进行暴力破解前,会先收集用户的这些相关信息,录入破译字典中。在Have I Bee

2021-06-02 17:11:02 331 5

原创 7种SQL走索引or不走索引的优化,你竟然还不了解?

前言在传统的系统应用程序中我们通常都会和数据库建立连接进行数据的读写操作,为了减少连接数据库造成的资源消耗于是有了数据库连接缓冲池。在此基础上,SQL 语句的优化对于研发人员也是非常重要的,高效的 SQL 语句经常会给使一个业务逻辑的接口响应速度变得非常快。所以本篇将主要从 SQL 语句的优化给出一些建议以及如何使用 SQL 语句里面的关键字等才能使 SQL 的执行效率相对提升,并且分享一份MySQL优化学习笔记,希望给研发人员在编写 SQL 语句时能有一些帮助。一、基础数据准备创建表并初始化一些基础

2021-06-01 16:46:04 712 6

原创 Spring Boot web项目的TDD流程

概述TDD(Test-driven development) 测试驱动开发,简单点说就是编写测试,再编写代码。这是首要一条,不可动摇的一条,先写代码后写测试的都是假TDD。测试驱动开发可以分为三个周期,周而复始,红灯-绿灯-重构。由以下几个步骤构成:编写测试运行所有测试编写代码运行所有测试重构运行所有测试一开始编写测试,肯定通不过,红灯状态,进行代码编写,然后运行测试,测试通不过,测试通过,即变成绿灯。测试不通过,或者需要重构代码,再次运行所有测试代码…接下来通过一个简单的,一个R

2021-05-31 17:18:09 478 5

原创 Spring Boot + Security + MyBatis + Thymeleaf 快速开发平台项目

项目介绍Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速开发平台基于 Layui 的后台管理系统模板,扩展 Layui 原生 UI 样式,整合第三方开源组件,提供便捷快速的开发方式,延续 LayuiAdmin的设计风格,持续完善的样式与组件的维护,基于异步 Ajax 的菜单构建,相对完善的多标签页,单标签页的共存,为使用者提供相对完善的开发方案,只为成为更好的轮子,项目不定时更新,建议 Star watch 一份,如果你需要无组件整合

2021-05-29 18:09:51 119 2

原创 程序员,看完这十本书再谈工资!

为了能让大家有事可做,为“金九银十”跳槽做充足的准备,给大家推荐十本技术书籍,而且这次是有资源的哦!大家先来看看是哪十本吧:1、《JavaEE开发的颠覆者 Spring Boot实战》内容简介在当今Java EE 开发中,Spring 框架是当之无愧的王者。而Spring Boot 是Spring 主推的基于“习惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得Java EE 开发变得异常简单。《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring M

2021-05-28 17:20:57 113 7

原创 用System.currentTimeMillis() 竟然遇到性能问题,有点不相信~

获取当前时间戳,System.currentTimeMillis()是极其常用的基础Java API,广泛地用来获取时间戳或测量代码执行时长等,在我们的印象中应该快如闪电。但实际上在并发调用或者特别频繁调用它的情况下(比如一个业务繁忙的接口,或者吞吐量大的需要取得时间戳的流式程序),其性能表现会令人大跌眼镜。直接看下面的Demopublic class CurrentTimeMillisPerfDemo { private static final int COUNT = 100;

2021-05-27 16:57:50 135 5

原创 MySQL 如何通过 binlog 恢复数据?

通过了解binlog日志的相关配置,简单掌握通过binlog对数据库进行数据恢复操作。mysql 日志文件任何成熟软件都会有一套成熟的日志系统,当软件出现问题时,这些日志就是查询问题来源的宝库。同样,mysql也不例外,也会有一系列日志记录mysql的运行状态。mysql主要有以下几种日志:错误日志:记录mysql运行过程中的错误信息一般查询日志:记录mysql正在运行的语句,包括查询、修改、更新等的每条sql慢查询日志:记录查询比较耗时的SQL语句binlog日志:记录数据修改记录,包括创

2021-05-26 22:25:53 523 8

原创 CRUD玩的这么溜,你知道CQRS吗?

今天主要跟大家分享一下什么是 CQRS,以及在项目中如何去使用。一、CRUD系统我们平常最熟悉的就是三层架构,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体。然后通过业务层来处理业务逻辑,将处理结果封装成DTO对象返回给控制层,再通过前端渲染。反之亦然。这里基本上是围绕关系数据库构建而成的“创建、读取、更新、删除”系统(即CRUD系统)此类系统在一些业务逻辑简单的项目中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现...

2021-05-25 20:16:50 104 2

原创 跨3个城市,找工作51天,总结最新Java版校招学习路线!

说下自己求职过程吧,还没毕业,3月独自一人来到上海。刚来的第一天信心满满直到投了200多份简历,到现在也只收到了两份面试邀请。我是山东普通二本计算机系毕业,之前也在公司实习过。做过几个项目。但是到今天 ,感觉太难了。家里人虽然很支持,但是这每天在上海什么都不干就开销200+压力真的大。女朋友考研,也不怎么找我,很多东西跟她说,她也不懂。说多了我也嫌自己烦。只身上海求职之前面试两家,第一家上来做了个很简单的java题,然后人事面,面完留了份简历就让回去等通知复试,要给项目经理审核。第二家也差不多。现在在b

2021-05-24 13:52:45 634 3

原创 算法,yyds之链表结构!

这篇文章会让你学到什么?因为数据结构和算法这玩意,不仅本身难度大而且还抽象,很多文章说的知识点大都是对的,但是大都过于官方化且缺乏直观演示,故而不利于我们理解学习,所以本篇文章不是一个大而全的文章,它只针对常见的一类数据结构进行解释,我会附上相关代码。一、常见数据结构1.1 数据结构(分类和概述) 数据结构 分类 概述 特点 数组 非线性结构(顺序表) 将具有相

2021-05-23 21:41:09 172 1

原创 JAVA应用运维,线上故障排查全套路!!!

线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。CPU一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使用jsta

2021-05-22 22:35:23 272

原创 阿里技术文档:Redis+Spring全家桶+Dubbo精选+高性能+高并发

最近花了很长的时间去搜罗整理 Java 核心技术好文,我把每个Java 核心技术的优选文章都整理成了一个又一个的文档。今天就把这些东西分享给老铁们,也能为老铁们省去不少麻烦,想学什么技能了,遇到哪方面的问题了 直接打开文档学一学就好了。不多说,直接上干货!一、Redis技术好文精选整理Redis哨兵、复制、集群的设计原理,以及区别 Spring+Redis+Docker+Dubbo 深入了解redis 如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题二、Nginx技术好文精选整理

2021-05-21 15:08:02 169 7

原创 M1和Docker谈了个恋爱!对于M1和Docker的爱情你们怎么看?

出于开源项目的需要,我准备把之前在 Windows 下运行的开源项目移植到 Mac 上跑下试试,但是之前 Mac M1 芯片并不能很好地支持 Docker,这不,发现 Docker 也正式支持 Mac 了,M1 看了 Docker 的芳容,竟悄悄爱上了 Docker。本文主要内容如下:一、官宣1.1 官宣版之前 Docker 只支持在 Intel 芯片的 X86 架构上运行,Docker 已经正式支持苹果 M1 芯片了,而 M1 芯片是 ARM 架构的,所以说 Docker 真的是太强大

2021-05-20 16:36:58 1025 6

原创 如何驾驭MySQL架构设计,实现千亿级数据分库分表?

基础软件三大件:操作系统、中间件、数据库,发展到现在,操作系统在云化、容器化的时代重要性被弱化了,中间件在分布式体系下更容错了,唯独数据库依然是块难啃的骨头,应用广泛的 MySQL 首当其冲。MySQL 不仅在面试环节是被反复考核的考点,在实际工作中更是能够发挥极大价值。但对于很多开发者来说,常常会有一个错觉,面试造火箭、入职拧螺丝…我曾经也有这种感受,后来慢慢理解了这并非 MySQL 的锅!如何驾驭MySQL架构设计,实现千亿级数据分库分表?ps:由于篇幅原因,这里仅展示一些资源截图,文中提到的“m

2021-05-19 15:53:14 341 3

原创 分布式RPC服务调用框架选型:使用Dubbo实现分布式服务调用

Dubbo概念Dubbo是一个高性能,轻量级的RPC分布式服务框架 提供了三核心能力: 面向接口的远程方法调用(@Reference) 智能容错 负载均衡 Dubbo特点:按照分层的方式来架构,可以使各个层之间解耦合 Dubbo的角色:提供方:Provider消费方:ConsumerDubbo的提供非常简单的服务模型,要么是提供方提供服务,要么是消费方消费服务Dubbo的服务治理透明远程调用:调用远程方法就像调用本地方法一样,只需简单配置,没有任何API侵入 负载均...

2021-05-18 14:26:30 182 4

原创 周末肝了一套高并发Netty开源框架,真香!

JDK从1.4版本引入 NIO 的类库,但是其设计有点反人类,使用较为麻烦,需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等很多类库的使用。在用NIO类库开发网络程序时还面临大量复杂问题需要解决,例如客户端断线重连、 网络闪断、心跳处理、半包读写、 网络拥塞和异常流的处理等等。Netty作为现在最流行的网络通信框架,对 JDK 自带的 NIO 的类库进行了良好的封装,解决了上述NIO问题。且Netty拥有高性能、 吞吐量更高、延..

2021-05-17 16:47:11 252 3

原创 Java必备技能:IDEA一定要懂的14条快捷键

一、快速生成main输入psvm二、快速生成System.out.print使用sout三、文件保存IDEA是自动保存的,不需要我们去Ctrl + S保存。四、删除一行Ctrl+Y五、新添,新建,添加的快捷键Alt + lnsert六、切换java程序Alt + 右箭头 或 Alt + 左箭头七、目录显示与关闭Ctrl + Fn + F12八、运...

2021-05-16 21:48:13 137 1

原创 北京工作5年,学习1年回老家跳槽国企,年薪33万,终于不用加班了(内含面经)

29岁人到中年,来北京5年从传统it到互联网,经历过非常不适的挣扎,现在好歹也算是站稳了脚跟,薪酬从月薪5000到年包30,肯定比不过业内牛人,甚至和我司其他非技术级比也就是很普通,但是好在压力不太,知足常乐。从租房到老家1套房子,每次的买点都算正确。但是选择的房子都不算最优,也终于把自己折腾成了负债100万的房奴。从大学分手后的孤单一人,到有了家庭,有了半岁的宝宝,感觉自己的责任和压力都大了很多;从只有一万存款,到现在20万,这一路基本都是被股市割韭菜和重新发芽的不断循环。这5年,收获了很多,也失去了

2021-05-14 13:59:06 219 2

原创 重磅!阿里首推内部“SpringCloudAlibaba项目文档”这细节讲解,神了!

Spring Cloud Alibaba为分布式应用开发提供了一站式解决方案。它包含开发分布式应用程序所需的所有组件,可以轻松地使用Spring Cloud开发应用程序。使用Spring Cloud Alibaba,只需添加一些注解和少量配置,即可将Spring Cloud应用连接到Alibaba的分布式解决方案中,并使用Alibaba中间件构建分布式应用系统。正是基于这些原因,我们有必要来学习SpringCloud Alibaba技术。那如何学习呢?市面上对于SpringCloud Alibaba

2021-05-12 17:12:52 112

转载 霸气!这份清华学霸整理的Java线程池笔记,2小时从入门到入坟

Hello,今天给各位童鞋们分享Java线程池,赶紧拿出小本子记下来吧!​1.为什么使用线程池1.频繁创建和销毁单个线程,浪费资源,并且还会出现频繁GC2.缺乏统一管理,各线程相互竞争2.ThreadPoolExecutorThreadPoolExecutor有四个重载的构造方法,我们这里来说说参数最多的那一个重载的构造方法,这样大家就知道其他方法参数的含义了,如下:public ThreadPoolExecutor(int corePoolSize,

2021-05-11 16:11:30 74 1

转载 Java 数据结构源码探究(二)—— LinkedList

线性表的链式存储结构Java 数据结构源码探究(一)—— ArrayListn 个结点(a1 的存储映像)链接成一个链表,即为线性表 (a1 , a2 ,… , an) 的链式存储结构,因为此链表的每个结点中只包含一个指针域 ,所以叫做单链表。单链表正是通过每个节点的指针域将线性表的数据元素按其逻辑次序链接在一起。结点: 数据域+指针域头结点:头结点是为了操作的统一和方便而设立的,放在第一个元素的结点之前,其数据域一般毫无意义;有了头结点,对在第一元素结点前插入结点和删除第一结点,其操作与

2021-05-10 13:48:55 89

转载 Java 数据结构源码探究(一)—— ArrayList

线性表—— 顺序存储结构线性表 顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。Java ArrayList对象的定义/** * Resizable-array implementation of the List interface */public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, C

2021-05-09 20:31:47 89 1

转载 带你学RocketMq——消息的存储源码分析!

我们设计一个消息的存储服务器,首先会现在内存里一块内存缓冲区,但是内存缓存有限,所以需要定时把消息刷到磁盘或者数据库等持久化介质中。如果存在磁盘中的文件,一个文件肯定是不行的,就算存没问题,那么检索也会超级耗时,过期消息的清理也很麻烦,所以消息需要多文件的存储。 RocketMq就是内存+多文件的存储,每个Broker对应一个MessageStore,专门用来存储接收到的消息。MessageStore只是存储的一个抽象,MessageStore里保存着一个CommitLog,CommitLog维护了一...

2021-05-08 22:05:11 131 2

转载 基于springboot工程做mybatis框架的整合实现

整合MyBatis的初步分析概述Mybatis是一个优秀的持久层框架,底层基于JDBC实现与数据库的交互。并在JDBC操作的基础上做了封装和优化,它借助灵活的SQL定制,参数及结果集的映射方式,更好的适应了当前互联网技术的发展。Mybatis框架的简单应用架构如图所示:在当今的互联网应用中项目,mybatis框架通常会由spring框架进行资源整合,作为数据层技术实现数据交互操作。准备工作第一步:创建项目module,例如:第二步:添加依赖mysql 驱动依赖<dependency

2021-02-06 10:29:48 278

转载 Spring Boot 接口如何做限流?面试官问起如何作答

阅读目录:1. 前言2. 算法介绍-计数器法3. 算法介绍-滑动窗口4. 算法介绍-漏桶算法5. 算法介 绍-令牌桶算法前言在一个高并发系统中对流量的把控是非常重要的,当巨大的流量直接请求到我们的服务器上没多久就可能造成接口不可用,不处理的话甚至会造成整个应用不可用。那么何为限流呢?顾名思义,限流就是限制流量,就像你宽带包了1个G的流量,用完了就没了。通过限流,我们可以很好地控制系统的qps,从而达到保护系统的目的。本篇文章将会介绍一下常用的限流算法以及他们各自的特点。算法介绍计数器

2021-02-05 14:24:26 292

转载 Tomcat配置以及如何在Eclipse中启动

如何安装和配置Tomcat8Apache Tomcat是目前最常见和流行的基于java的web容器。在本文中,我将向您展示如何安装tomcat8并调整配置文件。Tomcat的主要优点是占地面积小,配置简单,社区参与历史悠久。通常,开发人员可以在5到10分钟(包括tomcat下载时间)内启动并运行一个功能强大的Tomcat安装。Tomcat只需要很少的开箱即用配置就可以在开发机器上运行良好,但是它也可以进行显著的调优,以便在高负载、高可用性的生产环境中运行良好。您可以创建大型Tomcat集群来可靠地处理

2021-02-04 14:33:42 4896

转载 面试官:Spring 创建Bean 时是怎样判断条件的?

我们在 Spring/ Spring Boot Starter 或者一些框架的源码里经常能看到类似如下的注解声明,可能作用在类上,也可能在某个方法上:@ConditionalOnProperty(name = "spring.cloud.refresh.enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.atlas", name = "enabled", havingV

2021-02-03 15:15:42 181

转载 JVM类加载与双亲委派机制被打破

前言前文已经讲了虚拟机将java文件编译成class文件后的格式: JVM虚拟机Class类文件研究分析java文件经过编译,形成class文件,那么虚拟机如何将这些Class文件读取到内存中呢?加载的时机JVM 会在程序第一次主动引用类的时候加载该类,被动引用时并不会引发类加载的操作。也就是说,JVM 并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。一个类的生命周期如图所示:上图中的加载、验证、准备、初始化、卸载这几个步骤是相

2021-02-02 15:03:30 197

转载 SpringBoot 如何解决项目启动时初始化资源

前言:在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等。今天就给大家介绍一个 Spring Boot 神器,专门帮助大家解决项目启动初始化资源操作。这个神器就是 CommandLineRunner,CommandLineRunner 接口的 Component 会在所有 Spring Beans 都初始化之后,SpringApplication.run() 之前执行,非常适合在应用程序启动之初进行一些数据初始化的工作。正文:接下来.

2021-02-01 16:40:47 120 1

转载 SpringSecurity实战:分布式对象“可共享对象”

1. 前言我们对 AuthenticationManager 的初始化的细节进行了分析,其中里面有一段代码引起了不少同学的注意:ApplicationContext context = http.getSharedObject(ApplicationContext.class); CaptchaAuthenticationProvider captchaAuthenticationProvider = context.getBean("captchaAuthenticatio

2021-01-28 10:15:46 209

转载 SpringBoot 轻松整合 RocketMq,得劲

前言使用Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以。提示:以下是本篇文章正文内容,下面案例可供参考一、技术介绍1.消息队列是什么?消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。2.RocketMq是什么?RocketMQ 是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式的特点。它是一个采用 Jav

2021-01-27 11:42:15 231

原创 应届双非一本水硕,杭州三面字节,等hr面,虐慌!分享面经和刷过的面试题

头脑发热,四肢发凉,恍恍惚惚,面试字节跳动,base杭州,经过123面,为大家送上半凉面经……作为一名无实习,双非一本水硕的应届生,好不容易求得一个字节的面试,将面试经历分享给大家,焦急等结果中…………前后大概面了一个月,太长了,不按123面的顺序写了,想起什么写什么。(PS:有没有大佬告知一下,三面算法题只给了个思路能过吗…问题基本答上来了)JAVA基础:1. hashMap put的过程2. concurrentHashMap 扩容,为什么是线程安全的3. 线程池,七大参数,底层怎么实现

2021-01-25 17:18:55 270 2

转载 乐观锁这么重要,看我们如何2步手动实现(极其重要,面试必问)

java多线程中的锁分类多种多样,其中有一种主要的分类方式就是乐观和悲观进行划分的。这篇文章主要介绍如何自己手写一个乐观锁代码。不过文章为了保证完整性,会从基础开始介绍。一、乐观锁概念说是写乐观锁的概念,但是通常乐观锁和悲观锁的概念都要一块写。对比着来才更有意义。1、悲观锁概念悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞,直到它拿到锁。比如 synchronized 就是一个 悲观锁&nb

2021-01-25 10:49:07 181

转载 基础必看——深入了解gradle和maven的区别

深入了解gradle和maven的区别gradle和maven都可以用来构建java程序,甚至在某些情况下,两者还可以互相转换,那么他们两个的共同点和不同点是什么?我们如何在项目中选择使用哪种技术呢?一起来看看吧。gradle和maven的比较虽然gradle和maven都可以作为java程序的构建工具。但是两者还是有很大的不同之处的。我们可以从下面几个方面来进行分析。可扩展性Google选择gradle作为android的构建工具不是没有理由的,其中一个非常重要的原因就是因为gradle够灵活。

2021-01-21 11:11:34 1133

空空如也

空空如也

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

TA关注的人

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