自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小林coding

公众号:「小林coding」 专注图解计算机基础,期待你的关注!

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

原创 图解计算机基础网站上线了

大家好,我是小林。就在昨天 4 点半,我收到了工信部的短信,通知了我的域名备案完成了!足足等待了一周,域名终于备案完了,久等了各位!心急的小伙伴,可以到末尾见直接看网站域名。在此之间,我先来介绍(吹一吹)网站。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qjl4DVdW-1648020981377)(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgY

2022-03-23 15:38:05 14636 11

原创 更炸裂的来了!腾讯今年招 7000 人!

快接近字节 2 倍了!

2025-02-28 13:59:41 998

原创 字节今年要招 4000+ 人,量大管饱!

字节一面什么难度?

2025-02-26 15:04:35 872

原创 众安保险 Java 面了一小时,给我面吐啦!

双亲委派机制规定了 Java 类加载器在加载类时的层次关系和委托顺序。当一个类加载器收到类加载请求时,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一层的类加载器都是如此,直到委派到最顶层的启动类加载器。只有当父类加载器无法完成该加载请求(在它的搜索范围内没有找到所需的类)时,子加载器才会尝试自己去加载。启动类加载器(Bootstrap Class Loader):它是最顶层的类加载器,由 C++ 实现,负责加载 Java 的核心类库,如java.langjava.util。

2025-02-11 12:07:29 848

原创 好未来 Java offer 拿下,开了 22k 白菜价!

好未来面试难度不算简单,看到一篇同学的好未来的后端开发面经,同学反馈面试官水平挺高的,408基础比他狂背八股的要深多了,最后也有手撕算法代码。

2025-02-09 13:09:44 765

原创 哈啰出行Java 一面,我扛住了!!!

根据 JDK 8 规范,JVM 运行时内存共分为虚拟机栈、堆、元空间、程序计数器、本地方法栈五个部分。还有一部分内存叫直接内存,属于操作系统的本地内存,也是可以直接操作的。元空间:元空间的本质和永久代类似,都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。Java 虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。

2025-02-07 08:50:52 1221

原创 高德地图开奖了,什么水平?

根据 JDK 8 规范,JVM 运行时内存共分为虚拟机栈、堆、元空间、程序计数器、本地方法栈五个部分。还有一部分内存叫直接内存,属于操作系统的本地内存,也是可以直接操作的。元空间:元空间的本质和永久代类似,都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。Java 虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。

2025-02-06 12:05:29 829

原创 4399 薪资开了,要不要去?

大家好,我是小林。4399 小游戏相信都是大家的童年回忆,每次上电脑课,防着老师悄悄打开 4399 网页,玩转上面各种琳琅满目的小游戏,当时最常同学友一起玩的是死神vs火影,两个人在键盘上敲的非常激烈,以至于被老师发现了,老师就直接拔网线了。如果长大之后没有在关注 4399 小游戏的同学,估计都以为 4399 销声匿迹了,其实人家不光活着,而且活得还挺好,并且长期在互联网百强企业名单里,在 2024 年百强企业名单里,4399 排名 46。

2025-01-22 20:11:06 1166

原创 虎牙Java 一面,差点没扛住!

在 JDK 1.7 中它使用的是数组加链表的形式实现的,而数组又分为:大数组 Segment 和小数组 HashEntry。Segment 是一种可重入锁(ReentrantLock),在 ConcurrentHashMap 里扮演锁的角色;HashEntry 则用于存储键值对数据。一个 ConcurrentHashMap 里包含一个 Segment 数组,一个 Segment 里包含一个 HashEntry 数组,每个 HashEntry 是一个链表结构的元素。

2025-01-16 17:12:22 623

原创 偷偷盘点 2025 届互联网校招薪资!

2024 年我给大家分享了很多互联网中大厂/手机大厂/通信大厂/新能源汽车大厂/银行的校招薪资,也针对每个公司的面经都做了详细解析,更重要的是图解网站新增了 20 万字的

2025-01-09 14:36:12 6019

原创 阿里云 Java 后端一面,什么难度?

大家好,我是小林。很多人都有一个疑问,不知道如何在拿到 offer 之后跟 hr 谈薪资。其实谈薪资最重要的是积攒筹码,那什么是筹码呢?就是你手上的 offer。如果你拿到了好几个 offer,那已经说明你在市场上被多家公司认可了,这时候谈薪的时候,你会更优势的,而且成功率也会更大一些。比如你手上拿了 1 个 20k offer,跟下一家谈的时候,就可以喊 23k 的期望薪资,当然还是需要表达一下,你更想加入这家公司。那么,我们来看看 25 届阿里云开发岗的校招薪资情况如下:整体年包在 40w-60w,还是

2024-12-24 14:28:16 4122

原创 虾皮Java岗薪资开了,诚意满满!

大家好,我是小林。虾皮(Shopee)这几天都开奖了,之前有同学谈薪的时候,喊 28k,hr 姐姐劝他大胆一点,看来虾皮还是很舍得给钱。拿到 sp offer 以上的同学,大部分都觉得虾皮诚意确实有的,可惜开的比较晚,先签了其他大厂。25 届虾皮的后端开发岗位的校招情况如下,虾皮办公地点主要在一线城市,上海/北京/深圳年终平均 3 个月,公积金 10%,15 天年假,14 天病假,这带薪假期是真的多,不愧是外企。那么虾皮的面试难度如何?今天就给大家拆解。

2024-12-19 13:39:45 3044 1

原创 得物Java后端一面,扛住了!

在传统的基于会话和Cookie的身份验证方式中,会话信息通常存储在服务器的内存或数据库中。但在集群部署中,不同服务器之间没有共享的会话信息,这会导致用户在不同服务器之间切换时需要重新登录,或者需要引入额外的共享机制(如Redis),增加了复杂性和性能开销。image.png而JWT令牌通过在令牌中包含所有必要的身份验证和会话信息,使得服务器无需存储会话信息,从而解决了集群部署中的身份验证和会话管理问题。当用户进行登录认证后,服务器将生成一个JWT令牌并返回给客户端。

2024-12-18 11:19:53 3436

原创 还得是小红书,校招薪资给的真多啊。。

在 JDK 1.7 中它使用的是数组加链表的形式实现的,而数组又分为:大数组 Segment 和小数组 HashEntry。Segment 是一种可重入锁(ReentrantLock),在 ConcurrentHashMap 里扮演锁的角色;HashEntry 则用于存储键值对数据。一个 ConcurrentHashMap 里包含一个 Segment 数组,一个 Segment 里包含一个 HashEntry 数组,每个 HashEntry 是一个链表结构的元素。

2024-12-17 13:33:01 2912 1

原创 跟腾讯云智谈薪了,在二线城市很满意!

线程切换更快一些,线程切换比进程切换快是因为线程共享同一进程的地址空间和资源,线程切换时只需切换堆栈和程序计数器等少量信息,而不需要切换地址空间,避免了进程切换时需要切换内存映射表等大量资源的开销,从而节省了时间和系统资源。腾讯云智是腾讯的子公司,主要负责是腾讯云相关的业务,所以负责的项目就是腾讯云的项目,在腾讯csig工作的同学也跟我说,经常跟腾讯云智的同事对接工作。,面试风格挺类似腾讯,喜欢问计算机基础多一些,然后每个常用的后端组件拷打几个问题,也是有算法题,所以想冲腾讯云智的同学,算法还是得多刷刷。

2024-12-16 14:22:59 1598

原创 又发现一个国内超好用的 AI 开放平台!

在日常学习中,我经常需要观看大量的教学视频,其中有些是英文的,而且没有中文字幕。对于英语基础不太好的我来说,这无疑是一个巨大的挑战。:这次测评中,无论是文本问答、代码生成和优化,还是文图以及视频内容的分析,智谱AI的大模型都展现出了强大的能力。在开发分布式服务系统时,我经常需要编写算法来模拟服务器的请求调度和处理流程,并最终统计每台服务器在一段时间内处理的请求数量,来分析并优化服务器的负载均衡策略。,因为它不仅整合了多种强大的大模型,而且在性能表现、价格设置以及使用的便捷性上都非常符合我的需求。

2024-09-06 16:25:18 2271

原创 最强Java面试题,共20万字,涵盖多家一线互联网公司面试真题,新鲜出炉!

当然,也可以作为大家自己学完后端开发的知识之后,检验自己的学习成果,看一下面对这些问题的时候,是否能回答出来,如果感觉某个面试题不太模糊,就可以针对性的去翻阅书籍和资料加强,如此往复,你不想变强都难。不整理还不知道,一整理直接下一跳了,竟然共整理出 10 套面试题,共累计 20 万字的面试题,具体有多少个面试题,我已经数不过来了,几百个肯定是有的。当初写图解系列文章也是如此,没想着一开始要写一个很完整的系列,只是每周写一篇,按知识点顺序往下写,坚持一年之后,就慢慢形成了一个体系的图解系列文章了。

2024-08-10 13:32:44 936

原创 执行 select ... for update 语句,如果查询条件没有索引字段的话,是加行锁还是加表锁?

很有争议的问题

2022-12-18 16:37:12 6470 10

原创 MySQL 的 NULL 是怎么存储的?

大家好,我是小林。之前有位读者在面字节的时候,被问到这么个问题:如果你知道 MySQL 一行记录的存储结构,那么这个问题对你没什么难度。如果你不知道也没关系,这次我跟大家聊聊 MySQL 一行记录是怎么存储的?知道了这个之后,除了能应解锁前面这道面试题,你还会解锁这些面试题:

2022-12-01 14:09:10 4068 6

原创 MySQL 是怎么加行级锁的?为什么一会是 next-key 锁,一会是间隙锁,一会又是记录锁?

是不是很多人都对 MySQL 加行级锁的规则搞的迷迷糊糊,一会是 next-key 锁,一会是间隙锁,一会又是记录锁。坦白说,确实还挺复杂的,但是好在我找点了点规律,也知道如何如何用命令分析加了什么类型的行级锁。

2022-11-14 12:08:35 2278 1

原创 TCP 序列号和确认号是如何变化的?

大家好,我是小林。在上回答了很多人的问题,我发现很多人对 TCP 序列号和确认号的变化都是懵懵懂懂的,只知道三次握手和四次挥手过程中,ACK 报文中确认号要 +1,然后数据传输中 TCP 序列号和确认号的变化就不知道了。也有很多同学跟我反馈,希望我写一篇关于 TCP 序列号和确认号变化过程的文章。大家别小看这个基础知识点,其实很多人都不知道的。所以,这次就跟大家聊聊以下过程中,TCP 序列号和确认号是如何变化的?

2022-10-26 16:48:19 5651 2

原创 字节一面:TCP 三次握手,问的好细!

大家好,我是小林。有位读者在面试字节时,被问到这么个问题:TCP 三次握手中,客户端收到的第二次握手中 ack 确认号不是自己期望的,会发生什么?是直接丢弃 or 回 RST 报文?

2022-10-24 10:35:08 8384 1

原创 MySQL 全局锁、表级锁、行级锁,你搞清楚了吗?

大家好,我是小林。最近重新补充些内容,所以,现在内容还是比较全面的,基本把 MySQL 用到的锁都说了一遍,大家可以在复习复习。

2022-10-24 10:33:10 2139

原创 Eolink实践 | 基于DevOps的持续测试策略

可以通过非常简单的 脚本来编写复杂的 API 测试用例,实现自动化测试中复杂的流程跳转、数据加解密、验签等目的。可进行 API 之间参数传递:无需学习变量和脚本语法,通过界面可以直接设置复杂的参数传递规则,如将注册后的 Token 传递给登录 API,将登录后的 Cookie 传递给后续 API 进行 鉴权等。通过实施扩展自动化测试的策略来覆盖更多的平台。但是,当我们使用正确的测试自动化工具时,可以确保在更快的时间内覆盖更多的平台。当我们大规模并行运行,并使用正确的工具时,我们可以加快上线的时间。

2022-10-24 10:26:45 3468 6

原创 贼好用的自动化测试工具:Apipost!

对于一个互联网公司来说,测试人员是公司里不可缺少的一个角色。但从事软件测试的人员不计其数,每年都有很多毕业生卷入互联网的大军。如果一个测试人员的能力还只停留在点点点上,自然是会被新一代的“卷王”们淘汰的。于是掌握自动化测试,便成了很多测试人员提升职场竞争力的一条必经之路。但通常意义的自动化测试,相对门槛较高,需要具备一定的代码能力。比如我们通常使用的 Jmeter,虽然功能强大全面,但也被很多测试人员评价存在上手困难,操作繁琐,测试报告不完整清晰,发现问题不易追溯查找等问题。

2022-09-16 13:54:02 2888

原创 Redis 的大 Key 对持久化有什么影响?

当 AOF 写回策略配置了 Always 策略,如果写入是一个大 Key,主线程在执行 fsync() 函数的时候,阻塞的时间会比较久,因为当写入的数据量很大的时候,数据同步到硬盘这个过程是很耗时的。AOF 重写机制和 RDB 快照(bgsave 命令)的过程,都会分别通过fork()函数创建一个子进程来处理任务。创建子进程的途中,由于要复制父进程的页表等数据结构,阻塞的时间跟页表的大小有关,页表越大,阻塞的时间也越长;

2022-09-13 13:57:42 2719 2

转载 MySQL 单表不要超过 2000W 行,靠谱吗?

但是在一开始生成页的时候,其实并没有 User Records 这个部分,每当我们插入一条记录,都会从 Free Space 部分,也就是尚未使用的存储空间中申请一个记录大小的空间划分到 User Records 部分,当 Free Space 部分的空间全部被 User Records 部分替代掉之后,也就意味着这个页使用完了,如果还有新的记录插入的话,就需要去申请新的页了。但是叶子节点中存放的是真正的行数据,这个影响的因素就会多很多,比如,字段的类型,字段的数量。

2022-09-11 17:20:01 1616

原创 MySQL 可重复读隔离级别,解决幻读了吗?

翻译:当同一个查询在不同的时间产生不同的结果集时,事务中就会出现所谓的幻象问题。例如,如果 SELECT 执行了两次,但第二次返回了第一次没有返回的行,则该行是“幻像”行。T1 时间执行的结果是有 5 条行记录,而 T2 时间执行的结果是有 6 条行记录,那就发生了幻读的问题。T1 时间执行的结果是有 5 条行记录,而 T2 时间执行的结果是有 4 条行记录,也是发生了幻读的问题。MySQL 是怎么解决幻读的?针对快照读(普通 select 语句),是通过 MVCC 方式解决了幻读。

2022-09-11 17:09:55 2205

原创 服务端挂了,客户端的 TCP 连接还在吗?

如果「服务端挂掉」指的是「服务端进程崩溃」,服务端的进程在发生崩溃的时候,内核会发送 FIN 报文,与客户端进行四次挥手。但是,如果「服务端挂掉」指的是「服务端主机宕机」,那么是不会发生四次挥手的,具体后续会发生什么?还要看客户端会不会发送数据?如果客户端会发送数据,由于服务端已经不存在,客户端的数据报文会超时重传,当重传总间隔时长达到一定阈值(内核会根据 tcp_retries2 设置的值计算出一个阈值)后,会断开 TCP 连接;

2022-09-06 13:24:48 3649 1

原创 TCP 三次握手和四次挥手,中间失败了会发生什么?

作者:小林coding大家好,我是小林。之前写过 TCP 三次握手和四次挥手过程中,途中某一步的报文丢失会发生什么的文章。当时,主要是文字描述,可能不太好记忆,所以我针对每一步的异常情况,,方便大家理解和记忆。发车!当客户端想和服务端建立 TCP 连接的时候,首先第一个发的就是 SYN 报文,然后进入到SYN_SENT状态。在这之后,如果客户端迟迟收不到服务端的 SYN-ACK 报文(第二次握手),就会触发「超时重传」机制,重传 SYN 报文,而且。...

2022-08-28 10:03:19 4282

原创 TCP 四次挥手,可以变成三次挥手吗?

当被动关闭方在 TCP 挥手过程中,如果「没有数据要发送」,同时「没有开启 TCP_QUICKACK(默认情况就是没有开启,没有开启 TCP_QUICKACK,等于就是在使用 TCP 延迟确认机制)」,那么第二和第三次挥手就会合并传输,这样就出现了三次挥手。所以,出现三次挥手现象,是因为 TCP 延迟确认机制导致的。完!......

2022-08-27 18:32:17 5566 5

原创 HTTPS 一定安全可靠吗?

大家好,我是小林。这个问题的场景是这样的:客户端通过浏览器向服务端发起 HTTPS 请求时,被「假基站」转发到了一个「中间人服务器」,于是客户端是和「中间人服务器」完成了 TLS 握手,然后这个「中间人服务器」再与真正的服务端完成 TLS 握手。从客户端的角度看,其实并不知道网络中存在中间人服务器这个角色。那么中间人就可以解开浏览器发起的 HTTPS 请求里的数据,也可以解开服务端响应给浏览器的 HTTPS 响应数据。相当于,中间人能够 “偷看” 浏览器与服务端之间的 HTTPS 请求和响应的数据。

2022-08-23 11:50:06 2241

原创 Redis 大 key 要如何处理?

大 key 并不是指 key 的值很大,而是 key 对应的 value 很大。String 类型的值大于 10 KB;Hash、List、Set、ZSet 类型的元素的个数超过 5000个;

2022-08-08 12:14:31 5440

原创 服务端没有 listen,客户端发起连接建立,会发生什么?

TCP 同时打开的情况也类似,只不过从一个客户端变成了两个客户端而已。做个实验。

2022-08-06 15:03:09 3117 2

原创 如何用 Redis 实现分布式锁的?

今天跟大家聊聊两个问题:如何用 Redis 实现分布式锁?Redis 是如何解决集群情况下分布式锁的可靠性问题的?

2022-07-25 15:53:07 2065

原创 三种缓存策略:Cache Aside 策略、Read/Write Through 策略、Write Back 策略

我是小林。今天跟大家聊聊,常见的缓存更新策略。实际开发中,Redis和MySQL的更新策略用的是CacheAside,另外两种策略主要应用在计算机系统里。

2022-07-19 12:41:23 6628

原创 面试官:你确定 Redis 是单线程的进程吗?

这次主要分享 Redis 线程模型篇的面试题。Redis 是单线程吗?Redis 单线程模式是怎样的?Redis 采用单线程为什么还这么快?Redis 6.0 之前为什么使用单线程?Redis 6.0 之后为什么引入了多线程?

2022-07-18 13:26:08 2939 1

原创 面试官:Redis 过期删除策略和内存淘汰策略有什么区别?

大家好,我是小林。Redis 的「内存淘汰策略」和「过期删除策略」,很多小伙伴容易混淆,这两个机制虽然都是做删除的操作,但是触发的条件和使用的策略都是不同的。今天就跟大家理一理,「内存淘汰策略」和「过期删除策略」。发车!Redis 是可以对 key 设置过期时间的,因此需要有相应的机制将已过期的键值对删除,而做这个工作的就是过期键值删除策略。先说一下对 key 设置过期时间的命令。设置 key 过期时间的命令一共有 4 个:当然,在设置字符串时,也可以同时对 key 设置过期时间,共有 3 种命令:如果你

2022-07-04 09:32:53 2503 3

原创 2 万字 + 30 张图 |MySQL 日志:undo log、redo log、binlog 有什么用?

大家好,我是小林。从这篇「执行一条 SQL 查询语句,期间发生了什么?」中,我们知道了一条查询语句经历的过程,这属于「读」一条记录的过程,如下图:那么,执行一条 update 语句,期间发生了什么?,比如这一条 update 语句:查询语句的那一套流程,更新语句也是同样会走一遍:不过,更新语句的流程会涉及到 undo log(回滚日志)、redo log(重做日志) 、binlog (归档日志)这三种日志:所以这次就带着这个问题,看看这三种日志是怎么工作的。我们在执行执行一条“增删改”语句的时候,虽然没

2022-06-21 13:07:26 2684 1

原创 2 万字 + 20张图| 细说 Redis 九种数据类型和应用场景

大家好,我是小林。我们都知道 Redis 提供了丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。随着 Redis 版本的更新,后面又支持了四种数据类型: BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增)。每种数据对象都各自的应用场景,你能说出它们各自的应用场景吗?面试过程中,这个问题也很常被问到,又比如会举例一个应用场景来问你,让你说使用哪种 Re

2022-06-13 14:40:06 3337 2

空空如也

空空如也

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

TA关注的人

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