自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IT技术精选文摘

专注于Java架构知识分享,文章内容主要涵盖Java基础,底层原理,架构设计(高可用,高性能,消息,缓存等),Android移动开发等范围.

  • 博客(615)
  • 收藏
  • 关注

转载 SpringBoot 接口数据加解密实战!

若有收获,请记得分享和转发哦这日,刚撸完2行代码,正准备掏出手机摸鱼放松放松,只见老大朝我走过来,并露出一个”善意“的微笑,兴伟呀,xx项目有于安全问题,需要对接口整体进行加密处理,你这方面比较有经验,就给你安排上了哈,看这周内提测行不...,额,摸摸头上飘摇着而稀疏的长发,感觉我爱了。和产品、前端同学对外需求后,梳理了相关技术方案, 主要的需求点如下: ...

2022-07-26 08:00:54 100

转载 删除链表的倒数第 N 个结点

若有收获,请记得分享和转发哦问题描述来源:LeetCode第19题难度:中等给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:视频分析代码部分解法一 ...

2022-07-25 08:00:12 80

转载 高并发下如何防重?

若有收获,请记得分享和转发哦前言最近测试给我提了一个bug,说我之前提供的一个批量复制商品的接口,产生了重复的商品数据。追查原因之后发现,这个事情没想象中简单,可以说一波多折。1. 需求产品有个需求:用户选择一些品牌,点击确定按钮之后,系统需要基于一份默认品牌的商品数据,复制出一批新的商品。拿到这个需求时觉得太简单了,三下五除二就搞定。我提供了一个复制商品的基础接口,给商...

2022-07-16 08:00:52 96

转载 这个 MySQL bug 99% 的人会踩坑!

若有收获,请记得分享和转发哦这周收到一个 sentry 报警,如下 SQL 查询超时了。select*fromorder_infowhereuid=5837661orderbyidasclimit1执行show create table order_info发现这个表其实是有加索引的CREATETABLE`order_info`(`...

2022-07-15 08:00:17 139

转载 操作系统常用知识总结!

若有收获,请记得分享和转发哦前言大家好,跟大家聊聊操作系统常用知识点。计算机结构现代计算机模型是基于-「冯诺依曼计算机模型」计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去,接下来,再取出第二条指令,在控制器的指挥下完成规定操作,依此进行下去。直至遇到停止指令程序与数...

2022-07-14 08:00:29 138

转载 招银面试官,听说你精通 MySQL,我们来大战 66 回合

若有收获,请记得分享和转发哦总之,MySQL 必须得会,还得“精通”,今天给大家分享一波 MySQL 连环 66 问,2 万字+50 张手绘图,可以啃起来了。日常开发,不会 MySQL,领导都看你不顺眼;当然了,如果你发现领导不会 MySQL,除了可以恶狠狠地鄙视他之外,一定得反思,这家伙不会是老板的亲戚吧?你去面试,不会 MySQL,出门左拐右拐都行,反正就是回去等消息...

2022-07-13 08:00:58 6016

转载 Spring Cloud 如何统一异常处理?写得太好了!

若有收获,请记得分享和转发哦前言在启动应用时会发现在控制台打印的日志中出现了两个路径为{[/error]}的访问地址,当系统中发送异常错误时,Spring Boot 会根据请求方式分别跳转到以 JSON 格式或以界面显示的 /error 地址中显示错误信息。2018-12-1809:36:24.627INFO19040---[main...

2022-07-12 08:00:47 134

转载 教妹学Java:并发编程之 volatile

若有收获,请记得分享和转发哦“三妹啊,这节我们来学习 Java 并发编程中的 volatile 关键字,以及容易遇到的坑。”看着三妹好学的样子,我倍感欣慰。“好呀,哥。”三妹愉快的答应了。volatile 变量的特性volatile 可以保证可见性,但不保证原子性:当写一个 volatile 变量时,JMM 会把该线程本地内存中的变量强制刷新到主内存中去;这个写操作会导致...

2022-07-11 08:00:16 93

转载 教妹学Java:聊聊并发编程的原子性、可见性、有序性,以及内存模型 JMM

若有收获,请记得分享和转发哦“三妹啊,既然放假了,我们就一起来深入学习一下 Java 并发编程吧。”“并发编程太难了,想想都头大。”三妹很不情愿地说。“没关系,我们一步步来。”我说,“今天我们先来学习一下Java 并发编程的基础知识,包括原子性、可见性、有序性,以及内存模型 JMM。”并发编程基本概念原子性一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断...

2022-07-07 08:00:16 102

转载 分库分表索引设计:二级索引、全局索引的最佳设计实践(建议收藏)

若有收获,请记得分享和转发哦分布式数据库架构下,索引的设计也需要做调整,否则无法充分发挥分布式架构线性可扩展的优势。今天我们就来聊聊 “在分布式数据库架构下,如何正确的设计索引?”主键选择对主键来说,要保证在所有分片中都唯一,它本质上就是一个全局唯一的索引。如果用大部分同学喜欢的自增作为主键,就会发现存在很大的问题。因为自增并不能在插入前就获得值,而是要通过填 NULL ...

2022-07-06 08:00:43 280

转载 敢在简历上写消息队列,这几个问题必拿下!

若有收获,请记得分享和转发哦面试官在面试候选人时,如果发现候选人的简历中写了在项目中使用了 MQ 技术(如 Kafka、RabbitMQ、RocketMQ),基本都会抛出一个问题:在使用 MQ 的时候,怎么确保消息 100% 不丢失?这个问题在实际工作中很常见,既能考察候选者对于 MQ 中间件技术的掌握程度,又能很好地区分候选人的能力水平。接下来,我们就从这个问题出发,探...

2022-07-05 08:00:56 181

转载 聊聊接口性能优化技巧

若有收获,请记得分享和转发哦我负责的系统到2021年初完成了功能上的建设,开始进入到推广阶段。随着推广的逐步深入,收到了很多好评的同时也收到了很多对性能的吐槽。刚刚收到吐槽的时候,我们的心情是这样的:当越来越多对性能的吐槽反馈到我们这里的时候,我们意识到,接口性能的问题的优先级必须提高了。然后我们就跟踪了1周的接口性能监控,这个时候我们的心情是这样的:有20多个慢接口,5...

2022-07-04 08:00:13 127

转载 100 行代码搞定了 RPC 原理,大家随便问!

若有收获,请记得分享和转发哦引言本文主要论述的是“RPC 实现原理”,那么首先明确一个问题什么是 RPC 呢?RPC 是 Remote Procedure Call 的缩写,即,远程过程调用。RPC 是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而开发人员无需额外地为这个交互编程。值得注意是,两个或多个应用程序都分布在不同的服务器上,它们...

2022-07-03 08:01:00 92

转载 分布式数据库:如何正确选择分片键?

若有收获,请记得分享和转发哦我们知道分布式数据库是将数据打散到不同节点上存储,从而提升性能与可靠性。那么今天我们来看看在分布式数据库中,一个非常重要的设计:正确地把数据分片,充分发挥分布式数据库架构的优势。选出分片键在对表中的数据进行分片时,首先要选出一个分片键(Shard Key),即用户可以通过这个字段进行数据的水平拆分。对于我们之前使用的电商业务的订单表orders...

2022-07-01 08:00:34 1040

转载 聊聊服务器性能优化~(建议收藏)

若有收获,请记得分享和转发哦我们开发的软件服务需要在服务器上运行,所以服务器性能代表了软件的性能上限,因此服务器性能调优是个十分重要的环节,然而大部分同学对服务器性能调优关注的较少,今天从3个部分对服务器性能调优进行介绍,分别是:服务器配置选择,服务器负载分析,服务器内核参数调优。 ...

2022-06-30 08:00:51 201

转载 MySQL 查询 limit 1000,10 和 limit 10 速度一样快吗? 深度分页如何破解

若有收获,请记得分享和转发哦刷网站的时候,我们经常会遇到需要分页查询的场景。比如下图红框里的翻页功能。我们很容易能联想到可以用mysql实现。假设我们的建表sql是这样的mysql建表sql建表sql大家也不用扣细节,只需要知道id是主键,并且在user_name建了个非主键索引就够了,其他都不重要。为了实现分页。很容易联想到下面这样的sql语句。 ...

2022-06-29 08:00:43 223

转载 中软面试官:听说你精通MQ,我们来大战 30 回合

若有收获,请记得分享和转发哦基础1.为什么要使用消息队列呢?消息队列主要有三大用途,我们拿一个电商系统的下单举例:解耦:引入消息队列之前,下单完成之后,需要订单服务去调用库存服务减库存,调用营销服务加营销数据……引入消息队列之后,可以把订单完成的消息丢进队列里,下游服务自己去调用就行了,这样就完成了订单服务和其它服务的解耦合。消息队列解耦异步:订单支付之后,我们要扣减库存...

2022-06-21 08:00:06 91

转载 高并发架构设计方法:面对高并发,怎么对症下药?

若有收获,请记得分享和转发哦前言我们知道,“高并发”是现在系统架构设计的核心关键词。一个架构师如果设计、开发的系统不支持高并发,那简直不好意思跟同行讨论。但事实上,在架构设计领域,高并发的历史非常短暂,这一架构特性是随着互联网,特别是移动互联网的发展才逐渐变得重要起来的。现在有很多大型互联网应用系统,其用户是面向全球的普通大众,用户体量动辄十几亿。这些用户即使只有万分之一...

2022-06-20 07:55:25 94

转载 腾讯二面:@Bean 与 @Component 用在同一个类上,会怎么样?

若有收获,请记得分享和转发哦疑虑背景疑虑描述最近,在进行开发的过程中,发现之前的一个写法,类似如下:

2022-06-19 08:00:38 142

转载 去 OPPO 面试, 被问麻了。。。

若有收获,请记得分享和转发哦最近有粉丝私信说被 oppo 的后端面试问麻了,所以今天给大家推荐一篇整理了 16 道 oppo 面试真题答案的文章。希望对大家有帮助哈,一起学习,一起进步。聊聊你印象最深刻的项目,或者做了什么优化。你项目提到分布式锁,你们是怎么使用分布式锁的?常见分布式事务解决方案你们的接口幂等是如何保证的?你们的 MySQL 架构是怎样的?常见的索引结构有...

2022-06-18 08:00:38 119

转载 面了个 5 年 Java,两个线程进行数据交换都不会,我真是醉了。。

若有收获,请记得分享和转发哦面试总结最近栈长面试了一个 5 年经验的 Java 程序员,简历和个人介绍都提到了精通 Java 多线程,于是我就问了几个多线程方面的问题:1、实现多线程有哪几种方式,如何返回结果?2、多个线程如何实现顺序访问?3、两个线程如何进行数据交换?4、如何统计 5 个线程的运行总耗时?5、如何将一个任务拆分成多个子任务执行,最后合并结果?大概问了他这...

2022-06-17 08:00:23 160

转载 如何正确的创建和销毁 Java 对象?

若有收获,请记得分享和转发哦一、介绍Java由Sun Microsystems发明并在1995年发布,是世界上使用最广泛的编程语言之一。Java是一个通用编程语言。由于它拥有功能强大的库、运行时、简单的语法、平台无关(Write Once, Run Anywhere - WORA)以及令人敬畏的社区从而吸引了很多的开发者。本系列文章我们我们将会覆盖一些高级的Java概念,...

2022-06-16 08:00:25 91

转载 面试官:MySQL 如何查找删除重复行?我竟然写不出来。。

若有收获,请记得分享和转发哦本文讲述如何查找数据库里重复的行。这是初学者十分普遍遇到的问题。方法也很简单。这个问题还可以有其他演变,例如,如何查找“两字段重复的行”(#mysql IRC 频道问到的问题)如何查找重复行第一步是定义什么样的行才是重复行。多数情况下很简单:它们某一列具有相同的值。本文采用这一定义,或许你对“重复”的定义比这复杂,你需要对sql做些修改。本文要...

2022-06-15 08:00:25 152

转载 面试官:为什么数据库连接很消耗资源?我竟然答不上来。。一下懵了!

若有收获,请记得分享和转发哦背景开发应用程序久了,总想刨根问底,尤其对一些有公共答案的问题。大家都能解释,但是追根究底,都解释不清。凡是都有为什么,而且用数字说明问题是最直观的。本文主要想探究一下连接数据库的细节,尤其是在 Web 应用中要使用数据库来连接池,以免每次发送一次请求就重新建立一次连接。对于这个问题,答案都是一致的,建立数据库连接很耗时,但是这个耗时是都多少呢...

2022-06-14 08:00:41 156

转载 掘地三尺搞定 Redis 与 MySQL 数据一致性问题

若有收获,请记得分享和转发哦Redis 拥有高性能的数据读写功能,被我们广泛用在缓存场景,一是能提高业务系统的性能,二是为数据库抵挡了高并发的流量请求,把 Redis 作为缓存组件,需要防止出现以下的一些问题,否则可能会造成生产事故。Redis 缓存满了怎么办?缓存穿透、缓存击穿、缓存雪崩如何解决?Redis 数据过期了会被立马删除么?Redis 突然变慢了如何做性能排查...

2022-06-13 08:36:57 119

转载 一次SQL查询优化原理分析:900W+数据,从17s到300ms

若有收获,请记得分享和转发哦

2022-06-12 08:00:05 80

转载 Kafka到底有多高可靠?

若有收获,请记得分享和转发哦在聊Kafka高可靠之前,先在评论区来波RNG NB好不好!什么叫可靠性?大家都知道,系统架构有三高:「高性能、高并发和高可用」,三者的重要性不言而喻。对于任意系统,想要同时满足三高都是一件非常困难的事情,大型业务系统或者传统中间件都会搭建复杂的架构来保证。除以上三种模式之外,还有一个指标方向也很重要,那就是高可靠,甚至你可能会将它和「高可用」...

2022-06-11 08:00:55 143

转载 万字长文,聊聊并发编程的12种业务场景~

若有收获,请记得分享和转发哦并发编程是一项非常重要的技术,无论在面试,还是工作中出现的频率非常高。并发编程说白了就是多线程编程,但多线程一定比单线程效率更高?答:不一定,要看具体业务场景。毕竟如果使用了多线程,那么线程之间的竞争和抢占cpu资源,线程的上下文切换,也是相对来说比较耗时的操作。下面这几个问题在面试中,你必定遇到过:你在哪来业务场景中使用过多线程?怎么用的?踩...

2022-06-10 08:00:27 143

转载 面试官:大量请求 Redis 不存在的数据,从而打倒数据库,你有什么方案?

若有收获,请记得分享和转发哦大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景:我们业务后端涉及数据库,当请求消息查询某些信息时,可能先检查缓存中是否有相关信息,有的话返回,如果没有的话可能就要去数据库里面查询,这时候有一个问题,如果很多请求是在请求数据库根本不存在的数据,那么数据库就要频繁响应这种...

2022-06-09 08:00:55 187

转载 闲鱼一面:Thread.sleep(0) 到底有什么用?

若有收获,请记得分享和转发哦我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒?某人的代码中用了一句看...

2022-06-08 08:00:06 93

转载 聊聊分布式算法 Raft

若有收获,请记得分享和转发哦大名鼎鼎的 Paxos 算法可能不少人都听说过,几乎垄断了一致性算法领域,在 Raft 协议诞生之前,Paxos 几乎成了一致性协议的代名词。但是对于大多数人来说,Paxos 算法太难以理解了,而且难以实现。因此斯坦福大学的两位教授 Diego Ongaro 和 John Ousterhout 决定设计一种更容易理解的一致性算法,最终提出了 R...

2022-06-07 08:00:49 138

转载 Redis 面霸绝杀:连环五十二问!三万字 + 八十图详解!

若有收获,请记得分享和转发哦基础1.说说什么是Redis?Redis图标Redis是一种基于键值对(key-value)的NoSQL数据库。比一般键值对数据库强大的地方,Redis中的value支持string(字符串)、hash(哈希)、 list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多...

2022-06-06 08:00:50 274

转载 ThreadLocal 夺命 11 连问,万字长文深度解析

若有收获,请记得分享和转发哦前言前一段时间,有同事使用ThreadLocal踩坑了,正好引起了我的兴趣。所以近期,我抽空把ThreadLocal的源码再研究了一下,越看越有意思,发现里面的东西还真不少。我把精华浓缩了一下,汇集成了下面11个问题,看看你能顶住第几个?1. 为什么要用ThreadLocal?并发编程是一项非常重要的技术,它让我们的程序变得更加高效。但在并发的...

2022-06-05 08:00:52 167

转载 招银面试官:听说你精通 MyBatis,我们来切磋一下

若有收获,请记得分享和转发哦这节我们的主角是MyBatis,作为当前国内最流行的ORM框架,是我们这些crud选手最趁手的工具,赶紧来看看面试都会问哪些问题吧。基础1. 说说什么是MyBatis?MyBatis logo先吹一下:Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、...

2022-06-04 07:55:14 5869

转载 直降千元!抢施华洛世奇项链!经典爆款,美到窒息!

长按下方图片识别二维码关注 “奢物严选” 公众号进入商城立即抢购▼长按下方图片识别二维码关注 “奢物严选” 公众号进入商城立即抢购▼长按下方图片识别二维码关注 “奢物严选” 公众号进入商城立即抢购▼ ...

2022-06-04 07:55:14 114

转载 SpringBoot 生产中 16 条最佳实践

若有收获,请记得分享和转发哦1、使用自定义BOM来维护第三方依赖2、使用自动配置3、使用Spring Initializr来开始一个新的Spring Boot项目4、考虑为常见的组织问题创建自己的自动配置5、正确设计代码目录结构6、保持@Controller的简洁和专注7、围绕业务功能构建@Service8、使数据库独立于核心业务逻辑之外9、保持业务逻辑不受Spring ...

2022-06-03 07:55:38 245

转载 Spring Boot性能太差,教你几招轻松搞定

若有收获,请记得分享和转发哦目录异步执行增加内嵌 Tomcat 的最大连接数使用 @ComponentScan()默认 Tomcat 容器改为 Undertow使用 BufferedWriter 进行缓冲Deferred 方式实现异步调用异步调用可以使用 AsyncHandlerInterceptor 进行拦截异步执行实现方式二种:使用异步注解 @aysnc、启动类:添加...

2022-06-02 08:00:25 256

转载 SpringBoot 如何进行限流?老鸟们还可以这样玩!

若有收获,请记得分享和转发哦今天我们来利用Redis + Lua 来实现分布式限流。Lua 脚本和 MySQL 数据库的存储过程比较相似,他们执行一组命令,所有命令的执行要么全部成功或者失败,以此达到原子性。也可以把 Lua 脚本理解为,一段具有业务逻辑的代码块。实现过程第一步:引入Redis依赖包<dependency><groupId&...

2022-06-01 08:00:08 182

转载 面试官:如何保证用户模块的数据安全?说说你的解决方案!

若有收获,请记得分享和转发哦写在前面在介绍具体方案之前,首先先介绍一下常见的加密算法。加密算法可以分为三大类:对称加密算法非对称加密算法Hash算法对称加密算法加密和解密使用相同的密钥。对称加密算法加密解密速度快,但安全性较差 常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES非对称加密算法加密和解密使用不同的密钥,...

2022-05-31 08:00:56 115

转载 面试官:为什么数据库连接池不采用 IO 多路复用?

若有收获,请记得分享和转发哦今天我们聊一个不常见的 Java 面试题:为什么数据库连接池不采用 IO 多路复用?这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用 DB 时,还是经常性采用c3p0,tomcat connection pool等技术来与 DB 连接,哪怕整个程序已经变成以Netty为核心。这到底是为什么?首先纠正一个常见的误解...

2022-05-30 08:00:38 221

空空如也

空空如也

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

TA关注的人

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