自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(183)
  • 资源 (1)
  • 收藏
  • 关注

原创 41. 缺失的第一个正数 原地哈希

41. 缺失的第一个正数 hard难度

2022-11-20 15:15:48 49

原创 【Java】时区时间转换 Instant 和 LocalDateTime类的使用

Java 时间类的使用

2022-11-18 17:25:53 198

原创 leetcode 31. 下一个排列 逆序

leetcode 31 解题思路

2022-11-14 23:22:05 4

原创 拼多多 Java后端开发 社招三年 已拿offer

拼多多 Java后端开发 社招三年 已拿offer

2022-10-23 19:19:14 2025

原创 阿里菜鸟面经 Java后端开发 社招三年 已拿offer

阿里菜鸟Java社招三年面经 已拿到offer

2022-10-22 13:11:40 365

原创 字节面经总结

字节社招面经总结

2022-10-20 00:48:35 585

原创 Mysql、RocketMq 底层存储数据结构对比

Mysql innodob B+树、RocketMq 队列,两种底层存储数据结构对比

2022-08-05 18:03:44 162

原创 四层负载均衡 & 七层负载均衡

四层负载均衡 和 七层负载均衡是什么意思?有什么区别?

2022-07-15 16:07:18 724

原创 leetcode 84. 柱状图中最大的矩形 多次单调栈

leetcode 柱状图中最大的矩形 单调栈

2022-06-26 21:23:23 83

原创 单调栈 题目

单调栈 leetcode 面试题 算法题 字节跳动

2022-06-26 19:26:42 51

原创 leetcode 42. 接雨水

接雨水 单调栈 算法题 leetcode 字节跳动

2022-06-26 19:24:47 1602

原创 【编程场景收集】

编程场景收集

2022-05-05 15:34:01 68

原创 【网络】什么是HTTPS证书?

什么是HTTPS证书先说说什么是HTTPS,根据HTTPS的Wiki页面,HTTPS是Hypertext Transfer Protocol Secure的简写,也是就是HTTP 加上 Secure,即保护HTTP通信的意思。在HTTPS中,TLS(之前也称为SSL,不同的版本,老版本叫做SSL,新版本叫做TLS)用来加密保护通信协议。HTTPS主要的目的就是为了认证被访问的网站,从而保证私密性和传输过程中的数据完好。传递过程中,使用了双向加密的技术保证了数据免受窃听和篡改。HTTPS的认证需要一个受信

2022-02-08 14:17:52 985

原创 腾讯面筋总结

总结腾讯各个面经,按照问题种类分类。来源在文章底部

2022-02-07 00:17:12 1989 2

原创 业务场景案例、业务编程模型收集

常见业务场景案例、业务编程模型

2022-01-28 16:31:57 380

原创 【Redis】Redis中的跳跃表概论

Redis中跳跃表的实现

2022-01-27 14:59:36 1044

原创 【Redis】Redis 字典中的rehash

Redis rehash 实现过程

2022-01-27 14:40:37 956

原创 【Redis】Redis 缓存击穿 & 缓存雪崩 锁和限流的解决思路

通过Redis分布式锁 和 Java Semaphore 两种思路解决Redis缓存击穿 & 缓存雪崩

2022-01-21 17:13:27 1034

原创 【Redis】缓存穿透、缓存击穿、缓存雪崩概论

缓存穿透、缓存击穿、缓存雪崩

2022-01-18 19:04:15 249

原创 【Java】如何看待Full GC

不同情况下,如何看代Full GC

2022-01-13 15:45:34 137

原创 【Java】Spring项目中对线程池的使用

使用到Java线程池的时候,会有一些核心概念,比如说CPU密集型的任务,核心线程数最好设置为和CPU核数一样,IO密集型的任务核心线程数为CPU核数的两倍。但当遇到具体业务场景的时候,还是单独考虑。现在有一个业务场景如下:定期需要处理一批任务,这些任务的数量有多有少,多的时候可能会有5000+,少的时候也能没有。每一个需要做的事情主要有三件,修改数据库的数据,调用RPC请求,变更任务的状态。具体设计的时候有这么些考虑:因为涉及到RPC请求的调用,而RPC请求的调用多为IO型任务,所以最好能够异步执行

2022-01-06 15:49:57 973

原创 Mysql面试话术

简述一下Mysql MVCCMVCC意为多版本并发控制,是保障事务的一种机制,在Mysql中可以解决不可重复读的问题。不可重复读不可重复读是数据库三种事务问题的一种,他的表现为当两个事务交替进行时,A事务对查询出一条结果集时,B事务对上面一条结果集进行了更新,A事务再次查询时发现了结果不对。出现这个问题是由A事务读取到了B事务更新而导致的。如果要防止这个Mysql事务问题,我们可以将Mysql 的事务隔离级别开启到RR(可重复读)。MVCC技术原理当事务第一次进行读操作的时候,会建立一个快照读数据

2021-09-09 22:22:14 66

原创 Java面试话术

简述JVM内存模型可以简单将JVM内存管理模型按照是否线程私有做分类,分成不是线程私有而是每个线程都可以访问的堆内存和方法区,以及每个线程私有的栈、程序计数器和本地方法栈。线程共用堆内存中主要存放了对象的存储数据,每一个线程中如果要拿到对象实际的值最终都要到堆中获取。方法区中存放了常量、静态变量、被JVM加载的代码缓存信息。可以说是如果每一个线程都可以访问、读需要访问的数据就放在了这两块地方。线程私有栈描述的是Java方法线程模型,每一个方法的调用就代表了一个栈帧。栈中主要维护了局部变量表,J

2021-09-08 00:54:28 266

原创 8/18 刷题

Redis为什么快(基于内存,IO多路复用,单线程,使用C语言并有很多优化)Redis数据结构对于内存占用的优化(sdshdr5, sdshdr8, sdshdr16, sdshdr32, sdshdr64, 字符串越短,使用越少的内存存储额外信息;list 和 hash 元素少的时候使用 ziplist 编码)存穿透的原理以及解决方式关于抽象类JDK 1.8以前,抽象类的方法默认访问权限为protectedJDK 1.8时,抽象类的方法默认访问权限变为default关于接口JDK 1.8以前

2021-08-18 23:03:32 77

原创 【Idea】application.yaml中定义的环境变量无法解析

能够正常启动的项目突然报错application.yaml中定义的环境变量无法解析,并有如下报错2021-08-17 11:12:47,623 ERROR [org.springframework.boot.SpringApplication] - Application startup failedorg.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'Acc

2021-08-17 11:35:19 862

原创 【Java】Stream 中 Collectors.groupingBy维护顺序

在使用Stream中提供的Collectors.groupingBy做聚合操作的时候,需要按照一定的规则维护顺序。因为这个terminal operations 最后返回的数据结构是一个Map,所以没有办法直接判断他到底是不是一个有序Map,只能戳到源码里看返回。顺着代码摸索, public static <T, K> Collector<T, ?, Map<K, List<T>>> groupingBy(Function<? supe

2021-08-16 19:33:21 1129

原创 【JVM】类初始化机制

一个类从准备加载到虚拟机的内存中,到从虚拟机中内存卸载这样的一个生命周期中,有以下几个过程:加载 -> 验证 -> 准备 -> 解析 -> 初始化 -> 使用 ->卸载。在《JVM虚拟机规范》中,并没有对加载的时机做严格控制,但是对初始化的时机做了严格的控制。在六种情况下,虚拟机必须对一个类做初始化操作。其中有一种情况是:如果读取或者写入一个静态资源,那么这个静态资源所在的类应该被提前加载。但存在一些边界条件在这类情况中:一个子类继承了父类,那么也可以通过子类去

2021-08-01 23:46:29 65

原创 【动态规划】刷题概览

找出状态变化的规律:爬楼梯 https://leetcode-cn.com/problems/climbing-stairs/编辑距离 https://leetcode-cn.com/problems/edit-distance/

2021-05-16 19:52:21 51

翻译 【Mysql】Mysql Innodb 锁

SELECT ... LOCK IN SHARE MODE

2021-01-31 22:09:33 64

原创 【Mysql】探索Mysql innodb下 索引技术的使用和原理

本篇主要关于Mysql 5.7版本 Innodb引擎下,索引的使用和原理。Innodb 索引的存储结构Mysql提供三种存储引擎,比较常见的主要是Myisam和Innodb两种。不同的存储引擎提供了不同特性,像是Myisam虽然不提供事务特性,但是他的查询速度会比Innodb要快;Innodb的存储数据与主键索引没有分开存储。存储结构索引文件、数据文件,与Myisam的存储结构数据文件、索引文件的区别数据结构B+数 主键索引、辅助索引叶子节点查询算法最左匹配原则回表根据explain优化

2020-12-23 11:54:54 63

原创 【Mysql】较为深入地探索Mysql技术的使用和原理 导览

这篇博客会是一个导览文档,会记录这一个系列将会讲些什么问题。目前打算将这个研究Mysql技术的使用和原理分为三个部分,索引、事务和业务上的使用三块方面,大体参考下面的列表:索引innodb 主键索引和辅助索引的底层数据结构实现细节最左匹配原则explain在解释什么东西事务事务 ACID特性事务隔离级别带来的问题以及怎么解决的问题业务异地多活这一系列文章是我在学习Mysql技术时,所遇到的疑问。一开始很多原理在看的时候,都是草草记忆,后续在使用或者回想起来,就会发现很多记忆的原理存

2020-12-18 10:57:48 71

原创 【Mysql】数据库隔离等级和事务

为什么说在读提交的隔离等级下,可以防止读未提交,但不能防止幻读,可以防止Update但不能防止Inset?各个隔离等下的事务执行的时候,是从哪里读数据,又是把数据写入到哪?

2020-11-03 00:28:53 50

原创 【idea】使用Intellij Idea 画类图 简化报告

最近写报告做ppt的时候需要画图,常见的图有e-r图、类图和架构图。对于架构图而言,是比较抽象的东西。因为会涉及到各方各面,像是技术栈、网络资源、对接的业务组,很难聚合到一个层面,或者说我没发现有一个工具可以同时包含这三个东西。所以架构图是我自己的手画的。对于e-r图,我所使用的工具是Navicat,这个基本点一下也就出来了。平时没怎么画过类图,但为了体现后端系统的复杂性还是使用了类图作为证据。如果要手画一个一个类,那我估计已经凉了。构建项目的时候,不说别的,拿数据库表映射类来说,基本上就是一张表,一

2020-10-18 12:45:37 1198

原创 【Java】多线程内存模型

事先说明本文主要参考 《深入理解Java虚拟机 第二版》和 Jakob Jenkov所写的博文,用Java虚拟机中所提到的概念诠释博文中的多线程内存模型。如有不妥之处,还希望各位老哥不惜指正。概念讲解简单来说,Java虚拟机将内存划分为两大类,一类是每个线程私有的内存区:JVM 栈(JVM Stack)、本地方法栈(Native method Stack)和程序计算器,第二类是所有线程能够共用的:堆(Heap)和方法区(method area)。在多线程变量内存模型中,所要关注的概念就是JVM栈

2020-10-06 21:17:43 81

原创 【Kubernetes】CronJob源码探寻

在我们线上环境,因为CronJob的数量太多(20074个CronJob),导致线上部分CronJob出现了延迟,甚至不再执行。从定性分析上,可以确认是CronJob数量太多导致,因为出现问题是在某一天增加了800 * 6 * 3 = 14400个CronJob之后,我发现原本应该当场执行的CronJob过了两天依然没有执行。现在需要定量确认导致这样现象原因是什么,才能通过某一种方案去优化他,可以通过调参解决?还是需要业务向技术妥协?找到具体做CronJob时间检查的操作 \kubernetes\pk

2020-08-11 20:53:58 130

原创 【Java】从HashMap源码中获得的代码启示

写代码的时候需要讲究一个说学逗唱,不对,增删改查,也不对,需要讲究一个代码规范。因为代码写出来是给人看的,当然机器也是要看的。为了帮助看的人更好的理解,需要讲究一些方式方法。这些方式方法是谁定的,你可以理解为冥冥中的代码之神,有一天突然拍了一下大腿说,“神说,要有代码规范”,然后托梦给了凡间的程序员。我之前的遵循的代码规范来自两部分,一个是《代码整洁之道》(Clean Code),另一个则是阿里的Java手册。其中有一个代码规范是说,如果你的函数传参有很多,那么为了看的人的体验 ,你要把他们整合为一个新

2020-08-09 18:42:32 67

原创 【Java】Java8 HashMap 源码阅读

发现HashMap的源码和自己原本看到的文档不同,所以决定看看到底Java是如何实现HashMap的。本文所使用的环境为利用Idea提供的功能直接跳转到HashMap.put();的源码页面 HashMap<String, String> map = new HashMap<>(); map.put("1", "1");接着往下看,如果说这个HashMap第一次调用了put函数,会有一个resize的操作来初始化实际上存储对象的Node数

2020-08-08 22:44:54 100

原创 【Kubernetes】Prometheus关于内存使用的Metric

今天在翻Prometheus的时候,发现了一个Pod的内存使用居然和另外一个看板显示的不一致。通过查看Prometheus QL发现,两种指标所表示的含义不大一样。上面这张图所使用的Prometheus QL为sum by(container) (container_memory_usage_bytes{pod="istio-tracing-79cfbc6889-vm2vw", container=~".*", container!="POD", container!=""})经过Google一番后.

2020-07-14 22:16:39 1528

原创 【2020年中总结】

2020年上半年也算是神奇的一年,发生了大大小小的事,让我的情绪也受到起起伏伏的冲击。回望半年的时间,感觉在公司工具人的路上越走越远,对于程序的思考越来越少。将上半年的工作笼统地划分为业务和技术:业务部分是在toB业务上做一些公司技术的搬运,把公司原有的技术功能通过现存的接口包装一层部署在我们的集群上,给老外们使用;部分是在修改技术债,把一些以前错误的、不合理的代码逐渐修改成适应当前业务环境的代码。toB业务上,因为对于公司技术架构上比起去年来了解更加深入,各个业务方也混熟了脸,对于功能分析、把握也更

2020-07-10 19:51:29 133

原创 【Istio】1.5.4版本经过Istio sidecar的请求会有部分503 UC upstream connect error or disconnect/reset before headers

在使用Istio1.5.4进行服务编排的时候,发现了一系列问题,这一系列问题中有一个令人匪夷所思的问题。有一个请求比如说叫做www.12dong.com/api/dong/getinfo?type=1&sort=1这个请求会因为Istio的原因报错这个错503 upstream connect error or disconnect/reset before headers,但是当我改变参数为www.12dong.com/api/dong/getinfo?type=2&sort=1的时候,

2020-06-29 20:39:48 600

数据库第一次研讨

关系型数据库与非关系型数据库 sql外键添加与删除带来的影响 如果不添加外键会发生是什么问题

2017-12-20

空空如也

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

TA关注的人

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