9:00面试,9:05就出来了,问的问题有点出乎意料!

news2024/9/20 22:41:10

从小厂跳槽出来,本以为能在新公司大展拳脚,没想到没多久就再次遭遇困境。

入职初期,加班成了家常便饭,尽管如此,考虑到薪酬还算可观,我并没有过多抱怨。然而,到了六月,一纸通知打破了平静——公司宣布薪资要下调百分之四十。这样一来,连基本的生活开销都成了问题。

这一连串的变故让我措手不及,原本满怀期待的心情瞬间跌入谷底。面对突如其来的挑战,我不得不重新审视自己的职业规划,并思考下一步该何去何从。

原本以为自己会在这家新公司大展拳脚,谁知道还没来得及施展抱负,就遭遇了如此重大的打击。

那是一道关于分布式系统的问题,虽然我之前有所涉猎,但显然准备不足。面试官抛出问题的那一瞬间,我的大脑一片空白,完全不知道如何回答。我努力回想当时的情景,试图找到解决办法,但心里还是忐忑不安。

最近,我开始梳理面试中遇到的知识点。从基础知识到高级应用,我逐条列出需要补足的地方。或许这次失败并不是终点,而是新旅程的起点。

总结下常用面试的知识点汇总,及一些大佬的面试资料:

Java面试:

Spring容器
  • BeanFactory vs ApplicationContext

    • BeanFactory 是Spring IoC容器的基础,用于管理Bean的生命周期,提供Bean的实例化、依赖注入等功能。
    • ApplicationContext 扩展了BeanFactory的功能,提供了国际化支持、资源文件统一读取、事件监听等功能。
  • Bean 生命周期

    • Bean的生命周期包括初始化和销毁两个阶段,Spring提供了多种回调机制来管理Bean的生命周期。
    • 初始化回调方法可以是InitializingBean接口的实现,也可以是配置文件中的自定义方法或使用@PostConstruct注解。
    • 销毁回调方法可以是DisposableBean接口的实现,也可以是配置文件中的自定义方法或使用@PreDestroy注解。
  • IoC 实现

    • Spring IoC容器的基础是org.springframework.beansorg.springframework.context包。
    • BeanFactory接口提供高级配置机制,而ApplicationContext接口提供了更多功能,如AOP集成、事件传播等。
  • AOP 实现原理

    • Spring AOP使用动态代理实现,包括JDK动态代理和CGLIB动态代理。
    • JDK动态代理适用于实现了接口的类,而CGLIB适用于未实现接口的类,通过继承方式实现动态代理。
  • 事务管理

    • Spring支持编程式事务管理和声明式事务管理。
    • 事务管理通过AOP功能实现,使用TransactionProxyFactoryBean生成代理对象,并通过TransactionInterceptor完成事务逻辑。
设计模式
  • Spring框架中运用了多种设计模式,包括但不限于:
    • 代理模式:在AOP和remoting中被广泛使用。
    • 单例模式:Spring配置文件中定义的Bean默认为单例模式。
    • 模板方法模式:如RestTemplateJmsTemplate等。
    • 前端控制器模式:Spring提供了DispatcherServlet来处理请求。
    • 视图帮助模式:Spring提供了一系列JSP标签来辅助视图处理。
    • 依赖注入模式:贯穿于BeanFactoryApplicationContext接口的核心理念。
    • 工厂模式BeanFactory用来创建对象实例。
单例实现原理
  • Spring使用单例注册表的方式创建Bean实例,注册表的缓存是ConcurrentHashMap对象。

Netty 相关内容

  • 为什么选择Netty

    • Netty具有API简单、功能强大、高度定制、高性能、成熟稳定等特点。
    • 社区活跃,版本迭代快,适合各种高性能通信场景。
  • Netty 使用场景

    • 构建高性能中间件(MQ、分布式服务框架等)。
    • 构建WebSocket协议栈等公有或私有协议栈。
    • 应用于大数据、游戏等领域内部通信。
  • 原生NIO存在的epoll bug

    • JDK 1.7版本中存在Selector空轮询问题,可能导致CPU占用率过高。
  • TCP粘包/拆包

    • 描述了TCP粘包和拆包现象及其产生的原因。
    • 提供了三种解决办法:添加包头、固定长度数据包、设置边界字符。
  • Netty线程模型

    • Netty使用EventLoop处理读写事件,保证一个连接的所有事件在一个线程中执行。
    • EventLoopGroup包含多个EventLoop,类似于ExecutorService。
  • Netty的零拷贝

    • 描述了Netty如何减少数据在内存间的拷贝,提高性能。
  • Netty内部执行流程

    • Netty使用堆外直接内存进行Socket读写,减少了内存拷贝。
    • 提供组合Buffer对象,简化多个ByteBuffer的操作。
    • 文件传输使用transferTo方法,直接将文件数据发送到Socket中。

Redis 主从同步机制

  • 全量同步:当从节点第一次连接到主节点时,会执行全量复制过程。具体步骤包括从节点发送SYNC命令、主节点生成RDB快照、发送快照到从节点等。
  • 增量同步:在全量同步完成后,主节点的新写入操作会被同步到从节点,这种方式称为增量复制。

Redis 内存使用和过期数据处理

  • 内存使用策略:根据业务需求评估所需的内存和QPS,可能采取的措施包括增加内存、使用内存淘汰策略或部署Redis集群。
  • 过期数据处理:Redis提供了设置键过期时间的功能,当键过期后,Redis会自动删除不再使用的键。

Streaming 实时推荐项目

  • 使用场景:项目使用Streaming技术进行实时推荐,通过封装Kafka的Consumer来屏蔽不同Kafka版本间的影响,支持消费多种数据源。

Kafka 特性和使用

  • 为何Kafka快速:Kafka通过零拷贝、预先分配磁盘空间等方式优化I/O效率,以及利用内存映射文件提高数据读取速度。
  • Kafka重复消费:项目中遇到过重复消费的问题,可以通过确保幂等性、使用事务等手段来解决。

MySQL 事务和MVCC机制

  • 事务特性:MySQL的事务遵循ACID原则,保证原子性、一致性、隔离性和持久性。
  • MVCC机制:MySQL的InnoDB引擎通过多版本并发控制(MVCC)来支持高并发读写操作,利用undo log和版本号来实现。

JVM 垃圾回收机制

  • 垃圾回收算法:包括标记-清除算法、复制算法、标记-压缩算法、分代收集算法等。
  • 垃圾收集器:文档中提及了CMS垃圾回收器的特点,它分为初始标记、并发标记、重新标记、并发清理四个阶段,适用于需要低延迟响应的场景。

面试内容过多就不一一列举了。感兴趣的同学可以按以下链接进行下载。 

面试宝典:

链接:https://pan.baidu.com/s/1kSXZM4BqjCi5PnocfFcQRQ?pwd=45fl 
提取码:45fl

Java面试:

深度学习面试:

大数据面试:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2075490.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第十二章、 集合

第十二章、 集合 12.1 集合的理解和好处 数组 (1). 长度开始时必须指定,而且一旦指定,不能修改 (2). 保存的必须为同一类型的元素 (3). 使用数组进行增加/删除元素的示意代码—比较…

力扣刷题(复习版)

文章目录 题目:最大重复子字符串题解 题目: 面试题 16.07. 最大数值题解 题目: 最大字符串配对数目题解 题目: 字符串中第二大的数字题解 总结 题目:最大重复子字符串 原题链接:最大重复子字符串 题解 …

JetBrains RubyMine 2024.2 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE

JetBrains RubyMine 2024.2 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE JetBrains 跨平台开发者工具 请访问原文链接:https://sysin.org/blog/jetbrains-rubymine/,查看最新版。原创作品,转载请保留出处。 作者主页&#xff1…

等保测评中的安全测试方法

等保测评,即信息安全等级保护测评,是我国网络安全领域的重要评估机制,用于验证网络系统或应用是否满足相应的安全保护等级要求。在等保测评中,安全测试方法扮演着至关重要的角色。本文将详细介绍等保测评中常用的安全测试方法及其…

自定义@Resource注解功能

文章目录 1.目录2.Resource.java3.MonsterController.java 依赖注入Service调用方法4.SunWebApplicationContext.java1.executeResource方法完成依赖注入,先按照名字再按照类型2.init方法调用 5.测试 1.目录 2.Resource.java package com.sunxiansheng.springmvc.a…

Linux网络配置和系统管理

Linux网络配置和系统管理 1.查看网络IP和网关windows系统主机 IP虚拟机 IP虚拟机网关网络检测命令 ping网络连接模式 2.配置静态IP地址(NAT网络连接模式)前提说明配置主机的VMware Network Adapter VMnet8 网卡静态IP地址注意点虚拟机配置静态ip修改后ping命令测试修改虚拟机静…

选择泛域名证书还是多域名证书?

在选择泛域名SSL证书(也称为通配符SSL证书)和多域名证书时,需要综合考虑多个因素,包括业务需求、成本效益、灵活性以及未来规划等。以下是对这两种证书的比较及选择建议: 一、定义与特点 泛域名SSL证书(通…

智能巡检系统,确保到位管理,提升安全效率新境界

在现代工业生产与设施管理中,巡检作为确保设备安全、预防故障发生的重要环节,其效率与准确性直接关系到企业的运营安全与经济效益。然而,传统的人工巡检方式往往存在巡检周期长、覆盖面有限、数据记录易出错、隐患难以及时发现等痛点&#xf…

大模型分布式训练进阶之路:数据并行、管道并行、张量并行、3D并行

系统化的学习大模型,除了知道大模型是什么,也得知道大模型是如何训练的,对大模型的实际应用有更加定量的认知,该文章也算是一篇分布式训练的学习过程总结,作为循序渐进学习分布式训练的总结。 类似之前写过的LLM文章&…

U盘怎么加密保护?U盘加密软件哪个好?

在工作和生活中,我们经常需要使用U盘来存储数据。而为了避免U盘数据泄露,我们需要加密保护U盘。那么,U盘加密软件哪个好呢?下面我们就一起来了解一下。 BitLocker加密 BitLocker是Windows系统提供的磁盘加密功能,可以…

DevOps实现CI/CD实战(三)- 集成Sonar Qube

七、集成Sonar Qube 1. SonarQube介绍 Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。 Sonar Qube可以与多种软件整合进行代码扫描&#…

大龄程序员转行AI大模型:机遇与挑战解析

前言 对于大龄程序员而言,转行到AI大模型领域是一个既充满挑战又极具吸引力的选择。在这个领域,您将有机会接触到最新的技术趋势,参与到前沿的项目中,并且有可能获得更高的薪酬。下面是一些具体的步骤和建议,帮助您顺…

普通人用 AI 变现的4大方向

前言 AI出现,几家欢喜几家愁。 有人担心受怕恐因AI被裁,有人却早已利用AI躺赚💰。 “利用AI发展副业的方式究竟有哪些?怎么样才能利用AI做到躺赚?” 我相信这是绝大部分人的疑惑点,包括我!&…

【AI大模型】提示词(Prompt)全面解析

文章目录 前言前置准备(非常重要)一、Prompt 提示词介绍1.1 Prompt 的重要性 二、Prompt 提示词元素构成与实践2.1 关键字2.2 上下文2.3 格式要求2.4 实践示例 三、Prompt 提示词编写原理3.1 清晰性3.2 具体性3.3 适应性 四、Prompt 提示词编写常用的分隔…

LLaMA Factory微调Llama3模型

LLaMA Factory是一款开源低代码大模型微调框架,集成了业界最广泛使用的微调技术,支持通过Web UI界面零代码微调大模型,目前已经成为开源社区内最受欢迎的微调框架。 💥GPU推荐使用24GB显存的A10(ecs.gn7i-c8g1.2xlarg…

Stable Diffusion【XL Lora】效果太赞了!AI助力服装设计,让服装拆分设计就是这么高效

今天带了一款 非常适合服装设计的SD XL Lora模型——【服装拆分】绪儿 分类背景 XUER,该模型是由绪儿大佬炼制,非常适合饰品服装分类背景。绪儿大佬其实推出了很多非常棒的模型,比如之前非常受大家喜欢的敦煌飞天、超梦幻场景等模型。 那么我…

如何区分住宅代理与数据中心代理?

随着代理市场的蓬勃发展,不同类型的代理服务应运而生,其中住宅代理与数据中心代理尤为常见。如何区分住宅代理与数据中心代理,成为了诸多用户面临的难题,本文将与大家详细探讨如何区分这二种代理。 首先,我们来看住宅代…

【解压即玩】使命召唤 系列-2,回味经典

《使命召唤2》(英语:Call of Duty 2,香港和台湾译作“决胜时刻2”)于2005年推出,游戏提供了苏军、英军、美军三大阵营的战役,重现了二战中的经典战役,例如莫斯科保卫战、斯大林格勒保卫战、诺曼…

VTK随笔五:VTK数据的读写

VTK应用程序所需的数据可以通过两种途径获取:第一种是生成模型,然后处理这些模型数据(如由类 vtkCylinderSource 生成的多边形数据);第二种是从外部存储介质里导入相关的数据文件,然后在应用程序中处理这些读入的数据(如vkBMPRead…

三网话费充值api接口有哪些优势?你了解多少?

一、话费充值 API 接口定义 话费充值 API 接口是一种专门为实现话费充值业务而设计的接口。通过接入该接口,个人或企业可以搭建话费充值平台,其界面展示与官方平台充值页面相似,可自动配置充值范围并支持三大运营商话费充值。 二、话费接口…