自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 为什么要把Spring的bean默认成 bean单例的?

熟悉Spring开发的朋友都知道Spring提供了5种scope分别是singleton、prototype、request、session、global session。如下图是官方文档上的截图,感兴趣的朋友可以进去看看这五种分别有什么不同。今天要介绍的是这五种中的前两种,也是Spring最初提供的bean scope singleton 和 prototype。Spring官方文档介绍如下...

2020-04-29 10:46:08 938

原创 这5个常问的Redis面试题你答得出来吗?(详细剖析)

redis 集群模式的工作原理能说一下么?在集群模式下, redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?1、面试官心理分析在前几年,redis 如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有codis,或者 twemproxy,都有。有一些 redis 中间件,你读写 redis 中间件,redis 中间件负责将你的数...

2020-04-28 14:04:06 2911

原创 同事埋了个坑:Insert into select语句把生产服务器炸了

Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了...

2020-04-28 10:59:33 543

原创 阿里巴巴已offer:Java实习五面详细面经(附解答)

岗位Java后台开发实习生时间表2020/3/18 提交简历 & 测评2020/3/23 笔试2020/3/26 简历面2020/4/11 技术一面2020/4/14 技术二面2020/4/17 交叉面2020/4/20 HR面2020/4/22 意向书背景简单说明一下,希望可以给各位一个参考。211本科生,目前大三初中的时候开始学Java初中的时候编写Min...

2020-04-27 16:22:43 1404

原创 被关系数据库建表和升级折磨?因为你没用大道至简的Flyway

六年前Flyway已经是我TDD开发、持续集成工具栈中的重要一环了,作为早期用户,我早就应该为它做个”广告“,可惜对创业者来说时间太宝贵了,现在趁着疫情才有机会在家里总结点东西。虽然现在Flyway已经是Spring-Boot集成工具的一环,但是我发现还是少有人了解它的威力。关系数据库之殇你在使用关系数据库的过程中,是否曾经遇到以下情况,甚至因此一度想要放弃或已经放弃关系数据库?场景一:开...

2020-04-27 11:26:56 1929

原创 超级干货!搞不清equals()与hashCode()方法?看这篇就行了

java.lang.Object类中有两个非常重要的方法:Object类是类继承结构的基础,所以是每一个类的父类。所有的对象,包括数组,都实现了在Object类中定义的方法。一、equals()方法详解equals()方法是用来判断其他的对象是否和该对象相等 equals()方法在object类中定义如下:public boolean equals(Object obj) { ...

2020-04-26 17:10:10 932

原创 阿里面试官:JVM类加载器是否可以加载自定义的String?

曾经有一次,面试官问到类加载机制,相信大多数小伙伴都可以答上来双亲委派机制,也都知道JVM出于安全性的考虑,全限定类名相同的String是不能被加载的。但是如果加载了,会出现什么样的结果呢?异常?那是什么样的异常。如果包名不相同呢?自定义类加载器是否可以加载呢?相信面试官从各种不同的角度出击,很快就会答出漏洞,毕竟咱没有深入研究过虚拟机……接下来笔者就针对上述问题进行一一验证。该篇文章抱着求...

2020-04-26 10:39:46 1533

原创 构建分布式秒杀系统:Disruptor高性能队列

秒杀架构持续优化中,基于自身认知不足之处在所难免,也请大家指正,共同进步。希望可以把阻塞队列ArrayBlockingQueue这个队列替换成Disruptor,由于之前曾接触过这个东西,听说很不错,正好借此机会整合进来。简介LMAX Disruptor是一个高性能的线程间消息库。它源于LMAX对并发性,性能和非阻塞算法的研究,如今构成了Exchange基础架构的核心部分。Disrupto...

2020-04-25 11:21:34 1403 1

原创 五分钟带你聊:泛型之有限通配符

日常琐碎的时间下,不适合看一些长篇高质量的文章,但是琐碎时间也是时间,看一些短小精悍的文章来查缺补漏也是极好的。碎花化的时间,就交给“碎片化的文章”来填充吧。今天“碎片化文章”主题:泛型-有限通配符。关于泛型:,无限通配符:的概念这里就不做累述,咱们直接主题:有限通配符。上限通配符:<? extends Type>下限通配符:<? super Type>本文...

2020-04-25 10:12:29 909

原创 Dubbo面试八连问,这些你都能答上来吗?

面试题总览Dubbo是什么?Dubbo能做什么?Dubbo内置了哪几种服务容器?Dubbo 核心的配置有哪些?Dubbo有哪几种集群容错方案,默认是哪种?Dubbo有哪几种负载均衡策略,默认是哪种?Dubbo默认使用的是什么通信框架,还有别的选择吗?你觉得用Dubbo好还是SpringCloud好?1.Dubbo是什么?Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC...

2020-04-24 16:51:09 858

原创 骚操作!单机下让Java程序支持百万长连接

单机下能不能让我们的Java网络应用支持百万连接?当然可以!但是有很多的工作要做。操作系统首先就是要突破操作系统的限制。在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit...

2020-04-24 10:09:09 1029

原创 接手离职老哥留下来的项目,有个大坑!用springboot处理全局日期格式化

最近部门几位同事受了一些委屈相继离职,共事三年临别之际颇有不舍,待一切手续办妥帖,寒暄过后送他们出公司,几个老哥临别时冲我鬼魅一笑,我顿时心里一紧有种不好的预感,这事绝对没有这么简单。等我接手这几个大佬的项目后,应验了我的预感,此刻我居然有点后悔,为啥送别之时没揍他们一顿!哈哈哈~ 而这种打人的冲动,在我开始优化几位老哥的项目时候,变得越来越强烈。技术部每个月都会组织一下代码走查及优化,以前...

2020-04-23 16:57:58 1041 2

原创 美团面试问我ThreadLocal原理,我这么回答通过了面试!

上周我侥幸通过美团一面,岗位是java后端开发工程师。美团面试官给我进行了二面。面试过程中他问了ThreadLocal原理(上次问线程池,这次问ThreadLocal,美团爸爸这么喜欢线程安全机制么),今天详细讲一讲ThreadLocal原理。ThreadLocalThreadLocal是线程的内部存储类,可以在指定线程内存储数据。只有指定线程可以得到存储数据。/** * This c...

2020-04-23 15:33:51 1801

原创 为什么Java的泛型要用"擦除"实现?

在 Java 中的 泛型 ,常常被称之为 伪泛型 ,究其原因是因为在实际代码的运行中,将实际类型参数的信息擦除掉了 (Type Erasure) 。那是什么原因导致了 Java 做出这种妥协的呢?下面我就带着大家以 Java 语言设计者的角度,带领大家一起了解这里面的辛酸过往。什么是真泛型在了解 Java "伪泛型" 之前,我们先简单讲一讲"真泛型"...

2020-04-22 16:50:21 2036

原创 35道大厂常问的MySQL面试题,你都答得出来吗?

1、MySQL 中有哪几种锁?1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。2、MySQL 中有哪些不同的表格?共有 5 种类型的表格:1、MyISAM2、...

2020-04-22 16:11:47 1759

原创 深度分析:Spring Boot 的接口限流算法

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

2020-04-21 16:22:47 1293

原创 被面试官问算法问到自闭!字节跳动Java一面二面经验分享

一面(各种算法)说一下二叉树,满二叉树, bst avl b+树b树,红黑树的区别说一下数组链表哈希表的使用场景,时间复杂度,优劣说一下操作系统用户态和内核态说一下操作系统虚拟内存说一下Linux fork()系统调用的过程,要求讲到内存过程说一下Linux无名管道命名管道的内存过程,底层原理无名管道产生的过程,原理Java说出你知道创建字符串的方式,比较性能优劣说一下jvm线程...

2020-04-21 11:22:37 2105 1

转载 趣说Redis面试时必问的缓存雪崩+击穿+穿透

提到Redis我相信各位在面试,或者实际开发过程中对缓存雪崩,穿透,击穿也不陌生吧,就算没遇到过但是你肯定听过,那三者到底有什么区别,我们又应该怎么去防止这样的情况发生呢,我们有请下一位受害者。一个大腹便便,穿着格子衬衣的中年男子,拿着一个满是划痕的mac向你走来,看着快秃顶的头发,心想着肯定是尼玛顶级架构师吧!但是我们腹有诗书气自华,虚都不虚。小伙子我看你的简历上写到了Redis,那么我们直...

2020-04-20 17:00:54 1609 1

原创 面试还搞不懂redis,快看看这40道面试题(含答案)

Redis 面试题1、什么是 Redis?2、Redis 的数据类型?3、使用 Redis 有哪些好处?4、Redis 相比 Memcached 有哪些优势?5、Memcache 与 Redis 的区别都有哪些?6、Redis 是单进程单线程的?7、一个字符串类型的值能存储最大容量是多少?8、Redis 的持久化机制是什么?各自的优缺点?9、Redis 常见性能问题和解决方案:...

2020-04-20 15:59:08 1326

原创 运维架构师详解linux cpu负载

本文主要从常用的top命令入手,说明linux下的cpu 负载是怎么回事,以及帮助大家简单判断cpu负载高的原因。top查看机器负载我们在linux下使用top指令将会输出如下图所示页面:这里的load average以及缩写的us、sy、ni、id、wa、hi、si、st都是些什么意思呢?这些值在一个什么样的区间比较合理呢?如果值超过了合理区间,应该怎么处理呢?这篇将来聊聊这些问题。l...

2020-04-18 16:31:51 1139

原创 淘宝购物车是怎么用Spring Boot+Redis 扛住瞬间千次重复提交的?

在实际的开发项目中,一个对外暴露的接口往往会面临,瞬间大量的重复的请求提交,如果想过滤掉重复请求造成对业务的伤害,那就需要实现幂等!我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何保证其幂等性,通常有以下手段:1、数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据2、token...

2020-04-18 15:22:13 1671

原创 面试官最喜欢问的28道ZooKeeper面试题(含答案)

ZooKeeper 常问面试题总览ZooKeeper 是什么?ZooKeeper 提供了什么?Zookeeper 文件系统ZAB 协议?四种类型的数据节点 ZnodeZookeeper Watcher 机制 -- 数据变更通知客户端注册 Watcher 实现服务端处理 Watcher 实现客户端回调 WatcherACL 权限控制机制Chroot 特性...

2020-04-17 16:22:55 831

原创 今天让你搞懂static 静态变量,静态方法,静态块

static 静态变量1、定义格式静态变量由static关键字修饰的变量 public static int staticVariable = 1 ; //定义静态变量 public int normolVariable = 2 ; //普通变量2、调用方法我们现在example27类中写一个普通方法public class example27 { public void test...

2020-04-16 11:47:37 1831

原创 用redis实现分布式锁时容易踩的5个坑

我的业务场景是这样的,我们服务有库存模块,而我的服务又是多节点部署,要高峰期会存在库存差异,后面分析问题之后,打算采用redis实现分布式锁(主要的原因是服务已经集成了redis,不需要做额外的配置)。踩坑1、数据库事务超时不要感觉奇怪,分布式锁怎么会导致数据库事务超时呢?我的代码大概是这样的:伪代码@Transaction(readOnly=false)void update(){...

2020-04-16 11:39:55 1228

转载 不要网上乱拷贝代码了!一段网上找的代码突然炸了!

碰到一个需求,给服某些要求的玩家的发送道具奖励,奖励的数量根据离线的天数计算。这个需求实现起来很简单,只需要在玩家上线的时候计算上次离线时间和当前时间间隔的天数,然后根据策划的算法,计算出道具种类与数量,发一封邮件给玩家就可以了。计算两个时间间隔天数的函数没有现成的,自己又懒得写,就上谷歌搜了下,选了第一条结果,代码如下public static int differentDays(Date...

2020-04-15 13:49:08 4292 6

原创 阿里钉钉4面经验分享(校招)

钉钉一面1、SpringBoot的优点?1)创建独立的Spring应用程序。SpringBoot可以jar包的形式进行独立的运行,使用:java -jar xx.jar就可以成功运行项目,或者在项目的主程序中运行main函数。2)springboot项目不需要单独下载Tomcat等传统服务器,内嵌容器,使得我们可以执行运行项目的主程序main函数,并让项目的快速运行,另外,也降低对运行环境的...

2020-04-15 13:47:23 1475

原创 什么是RPC?RPC好处?常用的RPC框架?

RPC(Remote Procedure Call Protocol)远程过程调用协议。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。比较正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。那么我们至少从这样的描述中挖掘出几个要点:RPC是协议:既然是协议就只是一套规范,那么就需要有人遵...

2020-04-14 11:24:36 5511

原创 并发面试题:java中有几种方法可以实现一个线程?

创建并启动线程的6种方式继承Thread类创建线程实现Runnable接口创建线程使用Callable和FutureTask创建线程使用线程池,例如用Executor框架Spring实现多线程(底层是线程池)定时器Timer (底层封装了一个TimerThread对象)1、继承Thread类创建线程1.1继承Thread类方式创建线程的实现步骤:步骤:1) 定义一个类A继承...

2020-04-14 11:02:37 924

原创 面试官:Redis有哪几种集群方案?原理和优缺点是什么?

在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性、可靠性要求较高,则需要引入Redis的集群方案。虽然现在各大云平台有提供缓存服务可以直接使用,但了解一下其背后的实现与原理总还是有些必要(比如面试), 本文就一起来学习一下Redis的几种集群方案。Redis支持三种集群方案主从复制模式Sentinel(哨兵)模式Cluster模式主从...

2020-04-13 16:34:01 2841

原创 大厂笔试面试,你必须会哪些经典算法题目?

首先,强烈建议采用“题海战术”。我今年面了数十家公司,90%的题目是原题(没办法,就那几个知识点,能有什么新题)。题库在哪里呢?按照循序渐进的原则,一一介绍:1. cc150,全名cracking the coding interview - 150 Programming Questions and Solutions。经典中的经典,曾有人别的啥都不做,刷这本书三四遍,拿了Google...

2020-04-13 16:30:50 3446

原创 阿里面试官:来手写一下Redis的LRU算法 我当场懵了

三个大腹便便,穿着格子衬衣的中年男子,拿着三个满是划痕的mac向你走来,看着快秃顶的头发,心想着肯定是尼玛顶级架构师吧!小伙子你好,之前问过了你基础知识以及一些缓存的常见几个大问题了,那你能跟我聊聊为啥Redis那么快么?哦,帅气迷人的面试官您好,我们可以先看一下关系型数据库跟Redis本质上的区别。Redis采用的是基于内存的采用的是单进程单线程模型的 KV 数据库,由C语言编写,官方提...

2020-04-11 11:29:21 1218

原创 怎么用数据库中间件Mycat+SpringBoot完成分库分表?

一、背景随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈,而一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好的提供数据服务。当用户表达到千万级别,在做很多操作的时候都会很吃力,所以当数据增长到1000万以上就需要分库分表来缓解单库(表)的压力。二、什么是分库分表简单来说,就是指通过某种...

2020-04-11 10:44:38 784

原创 一入职就遇到了 MySQL 亿级大表优化

1、背景XX 实例(一主一从)xxx 告警中每天凌晨在报 SLA 报警,该报警的意思是存在一定的主从延迟。(若在此时发生主从切换,需要长时间才可以完成切换,要追延迟来保证主从数据的一致性)XX 实例的慢查询数量最多(执行时间超过 1s 的 SQL 会被记录),XX 应用那方每天晚上在做删除一个月前数据的任务。2、分析使用 pt-query-digest 工具分析最近一周的 mysql-sl...

2020-04-10 16:43:28 900

原创 喜极而泣!我终于干掉了​if...else

if...else 是所有高级编程语言都有的必备功能,但现实中的代码往往存在着过多的 if...else。虽然 if...else 是必须的,但滥用 if...else 会对代码的可读性、可维护性造成很大伤害,进而危害到整个软件系统。现在软件开发领域出现了很多新技术、新概念,但 if...else 这种基本的程序形式并没有发生太大变化。使用好 if...else 不仅对于现在,而且对于将来,都...

2020-04-10 16:23:15 766

原创 今天二面,我和面试官聊了半天的 MyBatis

​昨天刚刚面完 Spring,根据hr的反馈说面试官对我的整体表现还算满意,然后又通知我今天有空去再聊聊有关的技术。去的路上,我一直在想,今天会问些什么问题,JVM?多线程?还是分布式......真是越想心里越没底。想着想着就到了,尽管还是那个熟悉的面试官,但那张年轻有为的面孔丝毫没有让我放下紧张的情绪。他先开口了:昨天的面试感觉你挺好的,你说你项目中还用的是mybatis框架作为数据库访问,...

2020-04-09 11:15:03 876

原创 Android开发中R资源引用注意事项

我们都知道,在Android打包时进行的aapt是对Android的资源打包,从而生成一个R.java文件,其中包括非assets下的所有资源的id值,同时还生成resource.arsc文件,也就是资源索引表。而我们程序在运行中,就是从R.java获取具体的id值,再到resource.arsc检索获取相对应的资源。这文章不是讲Android资源打包的过程,这在老罗的《Android应用程序...

2020-04-09 11:13:30 1260 1

原创 视频面试蚂蚁金服,本以为石沉大海,没想到被直接录取了

当前环境,很多公司都采取了远程办公,远程面试。有一说一,第一次远程面试,还是比较紧张的。蚂蚁金服面试(视频一面)Java容器有哪些?哪些是同步容器,哪些是并发容器?为什么 Java 要采用垃圾回收机制,而不采用 C/C++的显式内存管理?一个线程的生命周期有哪几种状态?它们之间如何流转的?什么是活锁、饥饿、无锁、死锁?怎么检测一个线程是否拥有锁?如何解决同时存在的对象创建和对象回收问题...

2020-04-08 11:51:49 1660

原创 为什么单线程的Redis能够达到百万级的QPS?

性能测试报告查看了下阿里 Redis 的性能测试报告如下,能够达到数十万、百万级别的 QPS(暂时忽略阿里对 Redis 所做的优化),我们从 Redis 的设计和实现来分析一下 Redis 是怎么做的。Redis的设计与实现其实 Redis 主要是通过三个方面来满足这样高效吞吐量的性能需求高效的数据结构多路复用 IO 模型事件机制1、高效的数据结构Redis 支持的几种高效...

2020-04-08 11:33:31 3729

原创 造轮子的时候不敢用不会用泛型?那你看这篇就够了!

解决许多java开发 或者android开发 在平时写一些基础架构,或者是造一些轮子的时候不敢用泛型,用不好泛型的问题。甚至有些人使用泛型的时候报错都只会用idea提示的方法来修改代码,却不知这样改的原因,也不知道强转泛型会有什么恶果。泛型用来解决什么问题先定义一个模仿List 的泛型list。我们来看看这个乞丐版的list能帮我们做什么事public class CustomList&lt...

2020-04-07 10:57:34 836

原创 面试懵了:StringBuilder 为什么线程不安全?

周五去面试,被面试的一个问题问哑巴了面试官:StringBuilder和StringBuffer的区别在哪?我:StringBuilder不是线程安全的,StringBuffer是线程安全的面试官:那StringBuilder不安全的点在哪儿?我:。。。(哑巴了)在这之前我只记住了StringBuilder不是线程安全的,StringBuffer是线程安全的这个结论,至于StringBui...

2020-04-07 09:48:59 716 1

空空如也

空空如也

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

TA关注的人

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