3 面蚂蚁,一路过关斩将 成功拿到 offer 定级 P6,大厂面试雀食有点难

news2024/12/26 20:55:01
  • 线上服务 CPU 很高该怎么做?有哪些措施可以找到问题

  • JDK 中有哪几个线程池?顺带把线程池讲了个遍

  • 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描

  • SQL 索引的顺序,字段的顺序

  • 查看 SQL 是不是使用了索引?(有什么工具)

  • TCP 和 UDP 的区别?TCP 数据传输过程中怎么做到可靠的?

  • 说下你知道的排序算法吧

  • 查找一个数组的中位数?

二面

==

你有什么问题想问我的吗?(常规问询)

  • 自我介绍、工作经历、技术栈

  • 项目中你学到了什么技术?

  • 微服务划分的粒度?

  • 微服务的高可用怎么保证的?

  • 负载均衡与反向代理,隔离,限流,降级,超时与重试,回滚,压力测试与应急预案

  • 常用的负载均衡,该怎么用,你能说下吗?

(技术问)

  • http 重定向

  • DNS 负载均衡

  • 反向代理负载均衡

  • IP 负载均衡(LVS-NAT)

  • 直接路由(LVS-DR)

  • IP 隧道(LVS-TUN)

  • 网关能够为后端服务带来哪些好处?

  • Spring Bean 的生命周期

  • xml 中配置的 init、destroy 方法怎么可以做到调用具体的方法?反射的机制

  • Object 类中的方法

  • 对象比较是否相同

  • hashmap put 方法存放的时候怎么判断是否是重复的

  • Object toString 方法常用的地方,为什么要重写该方法

  • Set 和 List 区别?

  • ArrayList 和 LinkedList 区别

  • 如果存取相同的数据,ArrayList 和 LinkedList 谁占用空间更大?

  • Set 存的顺序是有序的吗?

  • 常见 Set 的实现有哪些?

  • TreeSet 对存入对数据有什么要求呢?

  • HashSet 的底层实现呢?

  • TreeSet 底层源码有看过吗?

  • HashSet 是不是线程安全的?为什么不是线程安全的?

  • Java 中有哪些线程安全的 Map?

  • HashTable 你了解过吗?

  • 如何保证线程安全问题?

  • synchronized、lock

  • volatile 的原子性问题?为什么 i++ 这种不支持原子性?从计算机原理的设计来讲下不能保证原子性的原因 happens before 原理

  • cas 操作

  • lock 和 synchronized 的区别?

  • 公平锁和非公平锁

  • Java 读写锁

  • 读写锁设计主要解决什么问题?

  • 你项目除了写 Java 代码,还有前端代码,那你知道前端有哪些框架吗?

  • MySQL 分页查询语句

  • MySQL 事务特性和隔离级别

二、事务的并发问题

=========

  • 不可重复读会出现在什么场景?

  • sql having 的使用场景

  • 前端浏览器地址的一个 http 请求到后端整个流程是怎么样?

  • http 默认端口,https 默认端口

  • DNS 你知道是干嘛的吗?

  • 你们开发用的 ide 是啥?你能说下 idea 的常用几个快捷键吧?

  • 代码版本管理你们用的是啥?

  • git rebase 和 merge 有什么区别?

你们公司加班多吗?(题外话)

举例回答:

=====

项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理

答:(1). IoC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。 对于 Spring 而言,就是由 Spring 来控制对象的生命周期和对象之间的关系;IoC 还有另外一个名字——“依赖注入(Dependency Injection)”。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,即由容器动态地将某种依赖关系注入到组件之中。

(2). 在 Spring 的工作方式中,所有的类都会在 spring 容器中登记,告诉 spring 这是个什么东西,你需要什么东西,然后 spring 会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring 来控制,也就是说控制对象生存周期的不再是引用它的对象,而是 spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被 spring 控制,所以这叫控制反转。

(3). 在系统运行中,动态的向某个对象提供它所需要的其他对象。

(4). 依赖注入的思想是通过反射机制实现的,在实例化一个类时,它通过反射调用类中 set 方法将事先保存在 HashMap 中的类属性注入到类中。 总而言之,在传统的对象创建方式中,通常由调用者来创建被调用者的实例,而在 Spring 中创建被调用者的工作由 Spring 来完成,然后注入调用者,即所谓的依赖注入 or 控制反转。 注入方式有两种:依赖注入和设置注入; IoC 的优点:降低了组件之间的耦合,降低了业务对象之间替换的复杂性,使之能够灵活的管理对象。

AOP(Aspect Oriented Programming)

(1). AOP 面向方面编程基于 IoC,是对 OOP 的有益补充;

(2). AOP 利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了 多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的 逻辑或责任封装起来,比如日志记录,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。

(3). AOP 代表的是一个横向的关 系,将“对象”比作一个空心的圆柱体,其中封装的是对象的属性和行为;则面向方面编程的方法,就是将这个圆柱体以切面形式剖开,选择性的提供业务逻辑。而 剖开的切面,也就是所谓的“方面”了。然后它又以巧夺天功的妙手将这些剖开的切面复原,不留痕迹,但完成了效果。

(4). 实现 AOP 的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。

(5). Spring 实现 AOP:JDK 动态代理和 CGLIB 代理 JDK 动态代理:其代理对象必须是某个接口的实现,它是通过在运行期间创建一个接口的实现类来完成对目标对象的代理;其核心的两个类是 InvocationHandler 和 Proxy。 CGLIB 代理:实现原理类似于 JDK 动态代理,只是它在运行期间生成的代理对象是针对目标类扩展的子类。CGLIB 是高效的代码生成包,底层是依靠 ASM(开源的 java 字节码编辑类库)操作字节码实现的,性能比 JDK 强;需要引入包 asm.jar 和 cglib.jar。 使用 AspectJ 注入式切面和 @AspectJ 注解驱动的切面实际上底层也是通过动态代理实现的。

(6). AOP 使用场景:

  • Authentication 权限检查

  • Caching 缓存

  • Context passing 内容传递

  • Error handling 错误处理

  • Lazy loading 延迟加载

  • Debugging 调试

  • logging, tracing, profilin

g and monitoring 日志记录,跟踪,优化,校准

  • Performance optimization 性能优化,效率检查

  • Persistence 持久化

  • Resource pooling 资源池

  • Synchronization 同步

  • Transactions 事务管理

另外 Filter 的实现和 struts2 的拦截器的实现都是 AOP 思想的体现。

阿里面试场景以及面试答案(文档总结)

==================

阿里经典面试题,里面的相关技术点基本上都会问到~

  • Performance optimization 性能优化,效率检查

  • Persistence 持久化

  • Resource pooling 资源池

  • Synchronization 同步

  • Transactions 事务管理

另外 Filter 的实现和 struts2 的拦截器的实现都是 AOP 思想的体现。

阿里面试场景以及面试答案(文档总结)

==================

阿里经典面试题,里面的相关技术点基本上都会问到~

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

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

相关文章

缓存一致性解决方案

文章目录常见的缓存一致性解决方案双写模式失效模式两种模式的总结上述模式的改进常见的缓存一致性解决方案 这里的缓存一致性其实就是缓存中的数据和数据库中的数据如何保持一致. 这个问题根据具体的业务场景和需要解决起来略有差异,但是总体看以分为两类,双写模式和失效模…

C-Frost安装及Cassie计算样例

本文运行环境为&#xff1a;Matlab2021b/Mathematic 13/Ubuntu18.04 matlab安装mathematic安装 一、 C-Frost安装 1、安装ipopt 安装参考 2、执行NLP例子验证是否安装成功 官方步骤 1&#xff09;修改create_problem.m文件中的 FROST_PATH路径 2&#xff09;修改CMakeL…

写代码时记录的小技巧

本文是记录自己写代码时候遇到的一些感觉比较有用/有意思的技巧&#xff0c;怕自己忘了记录一下。如果有想要分享的思路/纠正改进的地方欢迎交流。 如何输出结果 (Verbose Trick) 有关类的输出 1. 如果想在**模型的 forward 中输出相关变量**&#xff0c;但又不希望反复输出影…

Oracle如何删除归档日志文件?

Oracle如何删除归档日志文件&#xff1f; Oracle启用归档日志的状态下&#xff0c;会在指定的归档日志目录生成大量的日志文件&#xff0c;而且这些日志文件默认是不会定期清理。长时间运行下&#xff0c;会占用大量的存储空间&#xff0c;最终可能导致Oracle没有足够的空间维持…

Linux集成环境部署tomcat+Linux

Linux环境部署 tomcat redisTomcat 安装配置Redis安装配置Tomcat 安装配置 下载tomcat安装包&#xff0c;将安装包上传至自己的linux服务器中&#xff0c;将安装包传到linxu环境中的/usr/local/tomcat下&#xff0c;使用tar -xvf 命令解压 2. 进入到bin目录下&#xff0c;给所…

Allegro如何查找和高亮PAD Stack类型操作指导

Allegro如何查找和高亮PAD Stack类型操作指导 Allegro可以在板子上查找并且高亮PAD的类型,查找的范围包括器件的pad,以及过孔的pad,具体操作如下 用Allegro的was performance L模式下,并且勾选Allegro Productivity Toolbox选项 选择Tools-padstack finder 会出现padsta…

数字图像处理 - 图像采样和量化

1、 目标 获取图像的方法有很多种&#xff0c;但最终的目标是一致的&#xff1a;从传感数据生成数字图像。大多数传感器的输出是连续的电压波形&#xff0c;其幅度和空间行为与被感测的物理现象有关。要创建数字图像&#xff0c;我们需要将连续感测数据转换为数字格式。这就需要…

扩散模型的源码学习diffusion_model

1.diffusion_model有几个主要的部分&#xff0c; &#xff08;1&#xff09;Unet&#xff0c;主干网络。 &#xff08;2&#xff09;GaussianDiffusion&#xff0c;也就是主要的训练策略。 2. 生成一个测试用的tensor来进行实验。 3.进入到高斯模型的内部&#xff0c;发现…

(六) Redis缓存读写策略

一 引言 缓存的引入后极大的提高了服务器的访问速率,但是当持久化数据发生变化时,如何更新缓存成为了研发中不可规避的问题,不同的方案决定缓存的最终的一致性,本文就redis的缓存读写策略,以及其他的缓存读写策略做简要概述 二 Cache Aside Pattern&#xff08;旁路缓存模式&…

Vue学习:键盘事件

input表单占位符-显示输入先的提示文本-placeholder属性 键盘事件keydown——按下 不需要松手 keyup&#xff1a;按下松手 根据按键编码进行判断 --输出event上有一个属性-keyCode -按键编码--回车13 <!-- 准备容器 --><div idroot> <input type"text&quo…

Docker安装和使用

一&#xff1a;docker安装 链接: https://pan.baidu.com/s/1A1g7rSOMoV4__Me_zJoB3Q?pwd6bqi 提取码: 6bqi 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 --来自百度网盘超级会员v4的分享。 二&#xff1a;docker使用 1.docker和虚拟机的区别&#xff1a; …

Word文档如何设置成不可编辑的模式?

把Word文档设置成“不可编辑模式”&#xff0c;也就是“限制编辑”&#xff0c;可以防止意外更改文档内容&#xff1b;对于只想给他人读阅&#xff0c;禁止复制和更改的情况&#xff0c;也能起到一定的保护作用。 Word文档里自带设置限制保护的选项&#xff0c;在菜单中选择【…

【Uni-App】uniapp使用uview实现弹出键盘输入密码/验证码功能

目录&#xff08;一&#xff09;效果图&#xff08;二&#xff09;使用组件说明keyboard属性&#xff1a;keyboard事件&#xff1a;&#xff08;五&#xff09;js代码实现&#xff08;一&#xff09;效果图 &#xff08;二&#xff09;使用组件说明 组件使用的是uview组件&…

MATLB|多微电网及分布式能源交易

目录 一、概述 二、数学模型 三、结果可视化 四、Matlab代码实现 一、概述 在人类、工业和电动汽车的能源需求的推动下&#xff0c;全球能源需求预计将在未来几年稳步增长&#xff1b;更准确地说&#xff0c;预计到 2030 年增长将达到 40%。这种需求是由人类日益依赖能源的…

Linux配置网络,增添网络会话,Wget下载,yum仓库配置

配置网络 从RHEL7开始引入了一种新的“一致网络设备命名”的方式为网络接口命名&#xff0c;该方式可以根据固件、设备 拓扑、设备类型和位置信息分配固定的名字。网络接口的名称的前两个字符为网络类型符号。如: en——表示以太网(Ethernet)、wl表示无线局域网(wlan)、ww表示无…

[附源码]Python计算机毕业设计SSM基于的高校在线办公系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【玩转ChatGPT |OpenAI超级对话模型】手把手带你玩转ChatGPT

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;喜欢编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;小新爱学习. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc…

【深度学习】PyTorch深度学习实践 - Lecture_10_Basic_CNN

文章目录一、CNN基础流程图二、CNN的两个阶段三、卷积的基本知识3.1 单信道的卷积3.2 三信道的卷积3.3 N信道卷积3.4 输入N信道-输出M信道卷积3.5 卷积层的常见参数3.5.1 Padding3.5.2 Stride3.5.3 下采样&#xff08;MaxPooling&#xff09;四、实现一个简单的CNN4.1 网络结构…

【案例教程】气象数值预报WRF-DA资料同化系统理论、运行与变分、混合同化新方法技术

【视频教程】WRF DA资料同化系统理论、运行与与变分、混合同化新方法技术应用https://mp.weixin.qq.com/s?__bizMzAxNzcxMzc5MQ&mid2247518760&idx1&snddbc45296acc595402434b88bc179a27&chksm9be39538ac941c2eabab2492e997827d0e1269de3b229fadee72f1223bbcd…

机器学习实战教程(三):决策树实战篇

一、前言 上篇文章机器学习实战教程&#xff08;二&#xff09;&#xff1a;决策树基础篇之让我们从相亲说起机器学习实战教程&#xff08;二&#xff09;&#xff1a;决策树基础篇_M_Q_T的博客-CSDN博客机器学习实战教程&#xff08;二&#xff09;&#xff1a;决策树基础篇之…