
大厂面试
文章平均质量分 91
无休居士
莫欺中年穷
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一些优秀的布隆过滤器介绍
尽管布谷鸟过滤器在删除操作中存在误删风险,但由于其支持删除操作、高效的查询性能、较高的空间利用率、灵活的误判率控制、实际应用中的误删风险可控、成熟的实现和社区支持以及多样化的应用场景,它仍然是最常用的数据结构之一。在选择数据结构时,需要根据具体的应用需求和场景来权衡各种因素,布谷鸟过滤器在大多数情况下仍然是最佳选择。原创 2024-11-27 03:30:00 · 987 阅读 · 0 评论 -
深入浅出解析布隆过滤器在Java中的高级应用
布隆过滤器是一种高效的空间节省型数据结构,由Burton Howard Bloom于1970年提出,主要用于判断一个元素是否可能存在于一个集合中。它的核心思想是使用一个很长的二进制向量和多个随机映射函数(哈希函数)。当一个元素被添加到布隆过滤器时,它会被多个哈希函数映射到二进制向量的不同位置,这些位置的值被设置为1。查询时,如果所有映射位置的值均为1,则认为该元素可能存在于集合中;反之,则一定不存在。原创 2024-11-26 02:03:26 · 971 阅读 · 0 评论 -
从理论到实践:布隆过滤器的全面解析
本文详细介绍了布隆过滤器的基本概念、工作原理以及实际应用步骤。通过具体的代码示例和应用场景,帮助读者更好地理解和掌握布隆过滤器的使用方法。在实际项目中,合理使用布隆过滤器可以显著提升系统的性能和效率。原创 2024-11-26 01:47:58 · 1179 阅读 · 0 评论 -
业务设计:扫码登录的原理
扫码登录本质上是请求登录方请求已登录方将登录凭证写入特定媒介的过程。这里的请求登录方为 Web 端,已登录方为 APP 端,登录凭证可以是用户信息,也可以是换取用户信息的凭证,而特定媒介是某一张二维码。原创 2024-11-23 23:44:58 · 550 阅读 · 0 评论 -
Mysql没有开启binlog日志还会执行二阶段提交吗?
即使没有开启binlog,InnoDB存储引擎仍然会执行二阶段提交,以确保事务的ACID特性。原子性:通过Undo Log和Redo Log的二阶段提交机制保证。一致性:通过事务管理和二阶段提交机制保证。隔离性:通过锁机制和MVCC保证。持久性:通过Redo Log和配置参数保证。通过这些机制,InnoDB能够在没有binlog的情况下,仍然提供高度可靠和一致的事务处理能力。乐于分享和输出干货的WXGZG:JavaPersons。原创 2024-11-21 23:55:07 · 1639 阅读 · 0 评论 -
Java RPC框架的接口预热原理及无损实现
RPC接口预热是指在服务启动后,通过一系列的操作使服务的接口达到最佳的运行状态,从而提高系统的稳定性和性能。预热的主要目的是确保服务在正式接收流量之前已经完成了所有的初始化工作,避免因为初始化不充分导致的服务不可用或性能下降。🔥通过本文的介绍,我们详细了解了Java RPC框架的接口预热原理及其无损实现。预热机制不仅可以提高系统的稳定性和性能,还能确保负载均衡器更准确地评估各个节点的健康状态。希望本文的内容对你在面试中应对相关问题有所帮助。🌟乐于分享和输出干货的WXGZG:JavaPersons。原创 2024-11-19 23:53:04 · 1425 阅读 · 0 评论 -
并发复习:面试/笔试之多线程面试问题集锦
找工作告一段落,期间经历了很多事情,也思考了许多问题,最后也收获了一些沉甸甸的东西 —— 成长和一些来自阿里、百度、京东(sp)、华为等厂的Offer。好在一切又回到正轨,接下来要好好总结一番才不枉这段经历,遂将此过程中笔者的一些笔试/面试心得、干货发表出来,与众共享之。本文对面试/笔试过程中经常会被问到的一些关于并发编程的问题进行了梳理和总结,包括线程池、并发控制锁、并发容器和队列同步器等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。原创 2024-11-15 05:00:00 · 692 阅读 · 0 评论 -
并发基础:多线程相关最新高频面试题(大厂常见速答)
重量级锁:底层使用的Monitor实现,里面涉及到了用户态和内核态的切换、进程的上下文切换,成本较高,性能比较低。轻量级锁:线程加锁的时间是错开的(也就是没有竞争),可以使用轻量级锁来优化。轻量级修改了对象头的锁标志,相对重量级锁性能提升很多。每次修改都是CAS操作,保证原子性。偏向锁:一段很长的时间内都只被一个线程使用锁,可以使用了偏向锁,在第一次获得锁时,会有一个CAS操作,之后该线程再获取锁,只需要判断mark word中是否是自己的线程id即可,而不是开销相对较大的CAS命令一旦锁发生了竞争都会升原创 2024-11-13 02:15:00 · 1723 阅读 · 0 评论 -
并发应用:DDD实战中应对并发挑战,五个技巧让你轻松应对
并发管理是一个高级话题,也是设计中的难点,一不小心就会出问题。让每个开发人员都成为并发高手又是一件不太现实的事,但好在存在很多并发管理的成熟方案,业务开发者按照场景进行落地即可。在业务开发中,事务一致性核心在于“原子性”,则并发管理的核心在于“隔离性”。原子性:一个业务操作被视为一个不可分割的逻辑单元,要么全部执行成功,要么全部失败回滚;隔离性:并发业务操作之间要相互隔离,不能互相干扰;有些时候,写更新不依赖于之前的数据状态,只需使用最新数据进行覆盖即可,此时,并发管理也就变的非常简单。原创 2024-11-12 02:15:00 · 1664 阅读 · 0 评论 -
集群架构中Lua脚本的限制以及出现的报错
通过上述表格和示例,你应该能够更好地理解在 Redis Cluster 模式下使用 Lua 脚本时需要注意的事项。必须带有至少一个键:确保 Lua 脚本中至少有一个键,以便代理可以根据键将脚本转发到正确的 DB 分片。多个键必须属于同一个槽位:使用哈希标签确保多个键属于同一个槽位,避免跨槽位操作。原创 2024-11-11 03:30:00 · 1304 阅读 · 0 评论 -
面试必备指南 :如何在Redis Cluster模式下高效使用Lua脚本?
综合来看,在redis cluster下使用lua脚本是唯一可以原子化操作序列的方式。为了避免跨slot操作key,可以使用hashtag,也可以用新特性直接操作。但是hashtag无疑是更好的方式,毕竟跨了slot对性能也略有影响,官方也不建议这么操作。原创 2024-11-11 02:45:00 · 1108 阅读 · 0 评论 -
掌握Java线程池:从入门到精通,轻松应对大厂面试
在当今互联网行业的面试中,对Java线程池的理解和应用是考察候选人技术深度的重要环节之一。线程池不仅能够提高程序性能,还能有效管理资源,避免过多线程导致的系统崩溃。本文旨在帮助准备面试的大学生深入理解Java线程池的工作原理及其最佳实践。原创 2024-11-07 03:30:00 · 1037 阅读 · 0 评论 -
如果 MySQL 主库出现了问题,从库该何去何从呢?
这篇文章我们主要介绍了在 MySQL 数据库中两种主从复制的方式。首先我们解释了传统的 MySQL 主从复制的方式在主从切换的过程中很有可能会导致主从数据不一致的问题;为此,MySQL 5.6之后的版本又为我们提供了一个 GTID 的方式,通过判断 GTID 是否存在,进而判断是否执行该事务。一般在生产环境中,强烈建议使用 GTID 的方式部署 MySQL 主从复制集群。原创 2024-11-05 04:30:00 · 1893 阅读 · 0 评论 -
哪些因素导致了 MySQL 数据库的延时呢?
MySQL复制是一种机制,允许一个MySQL实例(主服务器)将数据更改同步到一个或多个其他MySQL实例(从服务器)。这种机制可以用于实现高可用性、负载均衡和备份等多种用途。本篇文章主要介绍 MySQL 主从复制的过程中遇到的问题,当 MySQL 数据库遇到大流量时,很有可能会遇到从库延时更新的情况;如果遇见这种情况,MySQL 数据库为从库提供了针对不同场景下的并发模式。其中,最有效的就是组提交这种模式,它是将不同次的提交分成组,如果该组跟其他组不存在交集则可以并发,如果存在则按照事务的前后顺序进行执行。原创 2024-11-04 04:00:00 · 1006 阅读 · 0 评论 -
揭秘MySQL数据一致性:从原理到实践,助你征服大厂面试官
在当今的互联网世界中,数据是企业最为宝贵的资产之一。而保证数据的一致性、可靠性和可用性则成为了数据库系统设计的核心问题。作为最受欢迎的关系型数据库管理系统之一,MySQL通过其强大的主备复制(也称为Master-Slave复制)机制来确保数据的一致性。本文将深入解析MySQL主备复制的工作原理,并探讨如何利用这一机制应对实际场景中的挑战。原创 2024-11-04 04:45:00 · 1154 阅读 · 0 评论 -
深入浅出MySQL幻读:面试大厂必备知识点
在数据库领域,事务是确保数据一致性和完整性的关键机制。然而,在并发环境下,事务可能会遇到一些复杂的问题,其中之一就是“幻读”(Phantom Read)。本文将深入探讨什么是幻读、它对数据库的影响以及如何解决这一问题。通过本文的学习,你将能够更好地理解和应对互联网大厂的面试考察。原创 2024-11-02 04:30:00 · 1196 阅读 · 0 评论 -
面试官:通过Mysql查询的时候,为什么有时候即使查询一条数据也很慢呢?
导致查询慢的几个方面的原因,一是 MySQL 数据库偶发性地需要flush数据,此时因为redo log空间的问题或者是buffer pool空间的问题导致数据库阻塞,进而导致数据库查询偶发性地变慢。二是锁机制导致的问题,如果上一个事务增加了排他锁而其他事务同时也加上了锁,那么就会导致阻塞,此时也会导致数据查询变慢。可能是死锁了,然后又释放了!三是索引不合理或条件不合理。原创 2024-11-01 04:00:00 · 1589 阅读 · 0 评论 -
阿里面试官:讲讲七层网络模型与TCP三次握手与四次断开?
目前,很多面试场景都开始重视基础知识的考察,比如:操作系统、IO(BIO、NIO、AIO)、网络、数据结构和算法等等。这不,就有小伙伴被面试官问到了网络的七层模型和TCP三次握手与四次断开的问题。原创 2024-10-17 06:00:00 · 1287 阅读 · 0 评论 -
面试官问:如何在十亿级别用户中检查用户名是否存在
不知道大家有没有注意到,大部分的APP在注册的时候,会提示用户名、邮件或手机号已经被占用,需要更换一个。现在我们来逐一看一下各个实现方案的优缺点。Bloom Filter 是一种空间利用率极高的随机数据结构,它用一个位数组简洁地表示一个集合,并能判断某个元素是否属于这个集合。Bloom Filter 的这种高效是有一定代价的:在判断某个元素是否属于某个集合时,有可能把不属于该集合的元素误认为属于该集合(false positive)。因此 Bloom Filter 并不适合“零错误”的应用场景。原创 2024-10-11 06:00:00 · 1589 阅读 · 0 评论 -
面试官:分库分表,真的有必要吗?
如上所述,引入分库分表虽然可以解决数据库瓶颈问题,但是也给系统带来巨大的复杂性,不是非必须不要使用。设计系统我们一向要本着高可拓展去设计,但是不要过度设计和超前设计。适合当前系统的设计才是最好的。原创 2024-09-30 06:30:00 · 985 阅读 · 0 评论 -
面试官:讲讲Java内存分配空间和内存分配策略
在之前的文章中,我们也介绍过,一个Java对象在堆上分配的时候,主要是在Eden区上,如果启动了TLAB的话会优先在TLAB上分配,少数情况下也可能会直接分配在老年代中,分配规则并不是百分之百固定的,这取决于当前使用的是哪一种垃圾收集器,还有虚拟机中与内存有关的参数的设置。Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或多或少的对JVM有一些了解。但是逃逸分析自身也是需要进行一系列复杂的分析的,这其实也是一个相对耗时的过程。原创 2024-09-25 04:00:00 · 748 阅读 · 0 评论 -
面试官:如何处理内存泄漏问题?我:内存泄漏是什么?
当程序未能释放未使用的资源(例如对象、数据库连接或文件句柄)时会发生内存泄漏,而当一个对象保留对另一个对象的引用时会发生引用泄漏,即使后者不再需要。这些非预期的对象引用会阻止内置的 Java 垃圾收集进程清除这些对象获取的内存。在本文中,我们研究了内存泄漏是什么、为什么会发生以及如何防止 Java 中的内存泄漏。原创 2024-09-25 04:45:00 · 868 阅读 · 0 评论 -
知道什么是热key吗?如何排查和处理?
热 key 问题就是突然有几十万的请求去访问 redis 上的某个特定 key,那么这样会造成流量过于集中,达到物理网卡上限,从而导致这台 redis 服务器直接宕机。原创 2024-09-19 01:35:23 · 932 阅读 · 0 评论 -
Redis大key有什么危害?如何排查和处理?
简单来说,如果一个 key 对应的 value 所占用的内存比较大,那这个 key 就可以看作是 bigkey。具体多大才算大呢?人认为:只有影响的查询效率的Key才叫BigKey!原创 2024-09-19 01:08:24 · 1639 阅读 · 0 评论 -
垃圾公司才问八股文?
我最近经常看到很多人吐槽,很多公司的面试喜欢问“八股文”,总是问那些工作中用不到的东西,很多人甚至用这个来评判一个公司的好坏,认为问八股文的公司就是垃圾公司。我今天想从一个面试官的角度来谈谈,面试的时候问八股文这件事儿。八股文:形容面试中问到的一些都是理论性的知识,需要背诵的知识。原创 2024-09-09 13:58:04 · 972 阅读 · 0 评论 -
大厂面试-百度二面-关联查询时为什么建议小表驱动大表?
假如Mysql数据库有两张表,一张表A,里面有10W条数据,一张表B,里面有100W条数据,此时需要你用左连接关联这两个表查询。把哪个表放在左边比较好?为什么?原创 2024-03-18 23:07:04 · 1215 阅读 · 0 评论 -
阿里面试官:讲一讲熔断与降级的区别?
降级是指在系统面临异常情况或高负载时,有意地减少某些非核心功能或服务的质量,以保证核心功能的可用性。熔断这一概念来源于电子工程中的断路器(Circuit Breaker)。在微服务架构中熔断是一种容错机制,当某个服务调用出现异常,如超时、多次失败等情况时,系统会自动切断对该服务的调用,以避免故障传播,确保系统的整体稳定性和可用性。这种牺牲局部,保全整体的措施就叫做熔断。原创 2024-03-10 22:50:12 · 1845 阅读 · 0 评论 -
金三银四,程序员求职季:如何脱颖而出?
金三银四,作为程序员求职的黄金时期,意味着机遇与挑战并存。只有充分准备,展现自己的技术实力和综合素质,才能在激烈的竞争中脱颖而出,获得心仪的职位。愿每一位求职者在这个关键时期都能找到满意的工作,开启美好的职业生涯。在这个金三银四求职季,希望以上建议能够帮助你取得成功。祝愿所有求职者能够斩获理想的工作,开启光明的职业之路!原创 2024-03-02 22:23:12 · 469 阅读 · 0 评论 -
通过底层原理理解Java是值传递还是引用传递?
快手一面,Java基础考察,值传递 or 引用传递?原创 2024-02-25 14:51:16 · 894 阅读 · 0 评论