小红书Java后端一面,被问麻了

news2025/1/17 0:57:15

今天分享一篇小红书 2 年社招 Java 后端一面的面经,面试的风格是从一个知识一层一层深入问到底层。

从 Java IO,问到 socket 底层。从 Java 内存,问到操作系统内存。所以学习知识的时候,不要只看八股文,还是需要从点到面一层层去掌握, 才能比较好应对这类的面试场景。

问题记录

  1. 自我介绍

  2. 讲一下BIO,NIO,AIO的区别

    1. 回答:IO分为两个阶段:数据准备阶段和数据拷贝阶段;BIO需要等待数据准备和数据拷贝;NIO会轮询数据是否准备完成,需要等待数据拷贝;AIO会在数据准备完成和数据拷贝完成后收到通知,然后执行异步处理逻辑

  3. 了解Ngnix原理吗,Ngnix IO模型是什么

    1. Review:Reactor模型包含单Reactor单进程/线程,单Reactor多进程/多线程,多Reactor多进程/多线程

    2. 回答:这块讲得比较乱,讲了一下Reactor模型,把多Reactor和多进程搞混了

    3. 追问:Reactor和NIO的关系

    4. 回答:。。。

    5. 追问:为什么netty要拆成boss和worker,把accept和read/write分开的好处是什么

    6. 回答:对于单线程模型,read事件需要等待IO,会阻塞后续连接的建立;

    7. 追问:A进程建立连接后怎么交给B进程去读写

    8. 回答:讲了一些进程间通信的方式,管道,共享内存,信号量;对于socket,A进程建立好连接后,把socket的引用传递给B进程,B进程根据这个socket引用去拿到socket对象

    9. 追问:能否让主进程不创建连接,让子进程去创建连接

    10. 回答:讲了一下半连接队列和全连接队列

    11. 追问:能让子进程去负责创建连接,和各自的数据读写,知道惊群效应吗

    12. 回答:不了解

  4. java是怎么做内存分配的,堆区怎么做内存管理的

    1. 回答:堆内存会分成young区和old区,young区又分成eden区和两个surviver,new对象时,会分配在eden区,对象经过gc后分代年龄增加,达到阈值进入old区

    2. 追问:操作系统是怎么做内存管理的

    3. 回答:了解过jemalloc,内存会被分成不同大小的块,比如16KB,32KB,64KB等;用户申请内存时,会找到比申请内存大小大的第一个2次幂KB,如果对应内存大小的没有空闲块,会找更大的块,并进行拆分

    4. 追问:怎么向操作系统申请内存空间

    5. 回答:brk和mmap系统调用,brk申请堆内存,mmap分配文件映射区和匿名映射区

    6. 追问:jvm分代内存管理和操作系统内存管理的区别

    7. 回答:操作系统需要具备各种需求的内存分配,具备更细致的内存分配;JVM的内存管理是为java应用服务的,不需要像操作系统那样进行过于细致的内存管理

  5. 事务的隔离级别有哪些

    1. 回答:读未提交,读已提交,可重复读和序列化

    2. 追问:MVCC在哪个级别

    3. 回答:可重复读

    4. 追问:MVCC实现原理

    5. 回答:利用Read View结构和数据记录中的txn_id和roll_pointer,在事务开启时,记录Read View,并通过其中的数据找到可见的数据版本

    6. 追问:undo_log和redo_log的功能

    7. 回答:undo_log是用来做事务回滚,redo_log是用来做数据恢复

    8. 追问:了解MySQL多机高可用方案

    9. 回答:针对读多写少的场景,主机器负责写操作,从机器负责读操作,数据由主机器同步到从机器;针对写多读少的场景,可以进行分库分表

  6. 编程:有序数组循环位移之后,查找target数字的索引,不存在返回-1

最后

以上,就是这位朋友的部分面试总结,整体看下来,现在的面试已经不仅限于八股了,但你也不能不背八股,面试的岗位年限不同、公司不同的话,项目+八股+算法+场景问的占比也都不一样。

借此机会也向大家推荐一份我亲身整理的2023Java面试八股文大全

其内容涵盖:计算机基础、Java、JVM、spring、算法、微服务、分布式、大厂面经、技术脑图等等...共1700+页 质量非常高!!!

不管最近要不要去面试,建议大家都保存一份!!学完之后不论是 厂内晋升 还是 跳槽涨薪 都不在话下!

内容如下:

  • 大厂面试题真题解析(38页)

  • JVM(183页)

  • 多线程(221页)

  • Mysql(216页)

  • Spring(338页)

  • Spring Boot(41页)

  • 经典面试题(35页)

  • Spring Cloud(50页)

  • Dubbo(55页)

  • Mybtis+Redis(27页)

  • Linux+网络(66页)

  • MQ+Kafka+Zookeeper(40页)

  • Netty(21页)

  • 大数据+hadoop(31页)

  • 算法(38页)

  • 设计模式+项目+高并发(41页)

注:篇幅有限,资料已整理成文档,文末获取

一、算法(大厂必备)2023版

含:红黑树,B+树,贪心算法,哈希分治法,七大查找算法,动态规划,一致性算法,数据结构等...

二、设计模式(工欲善其事必先利其器)2023版

含:单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式,适配器模式,装饰器模式,代理模式等23种设计模式...

三、Netty + MQ + kafka(底层原理+面试题)2023版

含:Netty常用场景,高性能设计,架构设计,经典面试题等...

四、zookeeper + Dubbo(技术干货+面试题)2023版

含:zookeeper集群,应用场景,分布式锁,Dubbo核心功能,集群配置,负载均衡,常见面试题等...

五、Mybtis + Redis (底层原理+面试题)2023版

含:mybtis缓存,运用原理,分页,Redis事务,主从架构,缓存,穿透,穿击,降级面试题等...

六、Http协议 + Linux (底层原理+面试题)2023版

含:TCP/IP协议详细笔记,网络层架构,三四次握手,Linux概述,磁盘,目录,文件,安全,经典面试题等...

七、Mysql (底层原理 + 面试题)2023版

含:数据库基础,数据类型,引擎,索引,事务,锁,视图,sql语句,优化,mysql锁,面试题等...

八、Spring +SpringMVC +SpringBoot(底层原理 + 技术干货)

含:spring原理,周期,ioc原理,MVC事务,AOP原理,Boot配置,安全,监视器,面试题等...

九、经典面试题 + SpringCloud(大厂常见面试题)2023版

含:面试必考21问,SpringCloud熔断,cap原理,设计目标优缺点,版本关系等...

十、Java基础+JVM(技术干货+底层原理)2023版

含:Java基础,异常,NIO,HashMap,Tomcat,JVM堆栈,内存模型,调优,GC,老年代,新生代,垃圾回收,面试题等...

十一、多线程 (底层原理 + 技术干货)2023版

含:多线程基本概念,线程安全,线程出,volatile,ThreadLocal,使用场景,并发量,阻塞列队,面试题等...

十二、实战项目(Github爆火)2023版

该项目是一款标准且已上线的“网约车”应用。符合我国交通部对网约车监管的技术要求。通过了交通部对网约车线上和线下能力认定。项目原型曾在杭州上线运行。

项目中核心功能包括:账户系统,订单系统,支付系统,地图引擎,派单引擎,消息系统等 网约车核心解决方案

项目中完全采用微服务架构设计,应用了成熟的接口安全设计方案,采用分布式锁保证了分布式环境中的数据同步,用分布式事务解决了分布式环境中的数据一致性等。

前置技能:Git,Maven,Spring Boot,Spring Cloud,Redis,MySql ,RabbitMQ,ActiveMQ等

项目架构图:

注:篇幅有限,资料已整理成文档,点击下方小卡片获取

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

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

相关文章

【算法 -- LeetCode】(019)删除链表的倒数第 N 个结点

1、题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2: 输入:head [1], n 1 输出:[] 示例 3…

excel常用操作备忘

excel操作: 1、快速填充多列公式:选中多列后,按ctrlD填 充。 2、快速删除空行:全选行,按ctrlG,空值项前边打上钩,点确定,针对选中的空行,鼠标右击,点删除&…

20230710~20230714周报

本次周报主要用于巩固和总结在DL-FWI培训中学到的知识。 基础知识 全波形反演(FWI:Full waveform inversion):通过检测到的地震数据直接推测地下结构。 速度模型:由于波在不同介质中的传播速度不同,所以可…

计算联合体大小的测试demo

两个规则&#xff1a; 1.联合体大小必须能容纳联合体中最大的成员变量2.通过规则1 计算出的联合体大小必须是联合体中占内存大小最大的成员类型的整数倍 #include<stdio.h>typedef union {char a[7];int b; }test_union_1;typedef union {char a[6];char b; }test_un…

氢辉能源|[4GW]质子交换膜产线投产发布会暨[3MW]PEM电解槽正式交付

2023年7月12日下午&#xff0c;氢辉能源&#xff08;深圳&#xff09;有限公司&#xff08;以下简称氢辉能源&#xff09;质子交换膜产线投产发布会暨12台50标方3MW电解槽交付仪式在深圳市龙岗区国际低碳城成功举办。 此外&#xff0c;氢辉能源与远景能源、润世华集团、宏洲新能…

005-NULL和NOT NULL

通过desc命令获取数据表结构&#xff0c;当NULL column 字段为YES时&#xff0c;表示列表字段可以为空&#xff08;可以不插入数据&#xff09;&#xff0c;如&#xff1a; 可以设置Null 列表字段不能为空&#xff08;字段后面添加 not null&#xff09;&#xff0c;如&#xf…

StringBuffer类 StringBuilder 类

StringBuffer类 介绍 StringBuffer是一个容器&#xff0c;代表可变的字符序列&#xff0c;可以对字符串内容进行增删。 StringBuffer是可变长度的。 实现了序列化接口&#xff0c;可实现串行化&#xff08;可以将内容保存至文件或者网络传输&#xff09;&#xff1a; Serial…

吴恩达机器学习2022-Jupyter-机器学习实例

1 可选实验: 特征工程和多项式回归 1.1 目标 在这个实验室里: 探索特征工程和多项式回归&#xff0c;它可以让你使用线性回归机制来适应非常复杂&#xff0c;甚至非常非线性的函数。 1.2 工具 您将利用在以前的实验中开发的函数以及matplotlib和NumPy。 2 特征工程与多项式…

Linux内核模块开发 第 9 章 谈及设备文件

The Linux Kernel Module Programming Guide Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang译 断水客&#xff08;WaterCutter&#xff09;源 LKMPG 9 谈及设备文件 设备文件被用于表示物理设备。多数物理设备既被用于输入&#xff0c;也被用…

【使用机器学习和深度学习对城市声音进行分类】基于两种技术(ML和DL)对音频数据(城市声音)进行分类(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

OpenCV开发实战 --(C++/Python) 进行视频中的简单背景估计-附源码

在许多计算机视觉应用中,您可以使用的处理能力较低。在这种情况下,我们必须使用简单但有效的技术。 在这篇文章中,我们将介绍一种这样的技术,用于在相机静态且场景中存在一些移动物体时估计场景的背景。这种情况并不少见。例如,许多交通和监控摄像头都是固定固定的。 时间…

Python爬虫——urllib_请求对象定制

UA介绍&#xff1a; User Agent中文名为用户代理&#xff0c;j简称UA&#xff0c;它是一个特殊字符串头&#xff0c;使得服务器能够识别客户使用的操作系统及版本&#xff0c;cpu类型&#xff0c;浏览器及版本&#xff0c;浏览器内核&#xff0c;浏览器渲染引擎&#xff0c;浏览…

【编译之美】【4. 代码优化:为什么你的代码比他的更高效】

什么是代码优化 代码优化是编译器后端的两大工作之一&#xff0c;弄懂它&#xff0c;你就掌握了一大块后端技术。 代码优化的目标 代码优化的目标&#xff0c;是优化程序对计算机资源的使用。 代码优化的对象 大多数的代码优化都是在 IR 上做的&#xff0c;而不是在前一阶段…

wvp-GB28181-pro /ZLMediaKit 部署学习

前言&#xff1a; 请认真阅读作者提供的文档&#xff01;认真阅读&#xff01;认真阅读&#xff01;认真阅读&#xff01; 背景&#xff1a; 公司项目需要对接不同地方的监控设备&#xff08;海康、大华、火星等等未知设备&#xff09;。由于本人对于海康设备不太了解出现一大…

CAD Exchanger SDK 3.20.0 for Linux Crack

引入新格式 Autodesk Revit&#xff0c;支持 BIM 特定数据模型以及 CAD Exchanger 3.19.0 中的原生格式 CDXBIM 独立于 Revit 软件读取 RVT 文件&#xff0c;使用 BIM 特定数据模型探索 BIM 属性&#xff0c;并利用我们专有的 BIM 友好 CDXBIM 格式更快地加载大型模型。 BIM数…

运维自动化前三阶段

运维自动化前三阶段 纯手工阶段&#xff1a;手工操作重复地进行软件部署和运维&#xff1b; 脚本阶段&#xff1a;通过编写脚本、方便地进行软件部署和运维&#xff1b; 工具阶段&#xff1a;借助第三方工具高效、方便地进行软件部署和运维。 这几个阶段是随着运维知识、经验…

tcn介绍

tcn 介绍 背景 对于大多数深度学习从业者来说&#xff0c;序列建模是递归网络的代名词。 然而&#xff0c;最近的结果表明&#xff0c;卷积架构在音频合成和机器翻译等任务上可以优于递归网络。给定一个新的序列建模任务或数据集&#xff0c;应该使用哪种架构&#xff1f;我…

Apple visionOS UI设计规范

果发布首款 MR 设备 Vision Pro&#xff0c;正在倡导用于Vision Pro在真实空间中显示应用程序窗口和内容“空间用户界面设计”&#xff0c;苹果的设计团队解释了开发人员应该知道的空间用户界面设计的原则。visionOSUI设计规范 支持&#xff1a;sketch Vision Pro中安装的visio…

无线电音频-BPA600蓝牙协议分析仪名词解析

1 介绍 2 Baseband基带分析 (1)Delta 是什么含义? "Delta" 有多个含义,取决于上下文。以下是常见的几种含义: 希腊字母:Delta&#x

“layui助力博客管理升级!用增删改查功能打造优质博客体验“

目录 引文1.前置条件2.数据接口2.1 UserDao(CRUD)2.2 R工具类 3.HTML 结构3.1 主界面的HTML3.2 用户的查询所有界面的HTML3.3 新增修改通用的的HTML 4.JavaScript 代码4.1 用户的CRUD javaScript 代码(userManage)4.2 新增修改的javaScript代码(userEdit) 5. 运行截图总结 引文…