2022.11.17 阿里钉钉数据开发岗位一面

       今天晚上和阿里钉钉面试官聊了一面,整个过程持续45分钟,还是相当持久的。前面先让我自我介绍,包括自身背景、工作经历和项目经验,在介绍的时候面试官几次打断,让我停下来,然后他提问,我很纳闷还能这样,不让我连续地讲完么。不过我也能接受,因为也面过阿里很多次了,面试过程还是比较easy的。

       讲完自我介绍后就进入技术问答环境。面试官首先一问,了解Spring bean的声明周期吗?我心里一乐,这不就是一直以来有所准备的么。于是我从bean一开始从配置文件中解析到beanFactory,到中间填充属性等操作,最后到创建成功,一一列出来了。大概过程如下: 配置文件中定义->经过reader对象解析加载到beanfactory的beandefinitionmap->初始化->如果实现了aware接口就调用对应的set方法->如果实现了BeanPostProcessor接口就调用前置方法->如果实现了InitializingBean会调用afterPropertiesSet方法->调用自身init方法->调用beanpostprocessor的后置方法->创建完成->使用->调用destroy方法销毁。

       接着面试官二问,redis有使用过吧?有什么使用场景?我大概讲了一下几种场景,分别是作为缓存、轻量级消息队列、排行榜(使用sortedset)、分布式锁。

        面试官三问,缓存的三种常见问题缓存穿透、缓存击穿和缓存雪崩分别是什么以及怎么解决?这个也是常见的面试考点,我也不知道我背得怎样,大概是这样说的。缓存穿透是大量不存在的key落到了数据库上,解决的方式有两种,一种是预设空值也就是缓存中预设置不存在的key值为null,另一种是使用布隆过滤器,简单地介绍下布隆过滤器就是通过哈希计算存储合法的值到布隆过滤器中,这样可以过滤掉不合法的值。缓存击穿是热key失效,解决的方案可以是定时判断热key是否要过期是的话延长过期时间。缓存雪崩是大量key同时失效,解决的方案可以是给不同的key尽量设置不同的过期时间,使不同的key不至于同时失效。

      面试官四问,什么是星型模型,和传统数据库的ER模型有什么区别?我了解星型模型是一个事实表和多个维度表相关联的一种数据仓库表的设计方法,传统的ER模型应该是满足了数据库三范式的表设计原则。我这里没回答出来两者的具体区别。

    面试官五问,对哪个组件熟,有什么处理线上问题的经验?因为我过往项目经验中大数据相关经验比较多,所以我说了Hive。介绍完Hive的原理之后,我讲了之前做数据统计分析的时候使用Hive做离线分析的经验,以及线上处理配置不合理或服务器资源不足导致OOM问题的过程。每次面试需要讲到实际项目中遇到的问题时,我就有点不好意思和羞愧,因为确实没涉及到比较难的问题!

   最后本来面试要结束了,面试官又发一问,说一下桥接模式。我说桥接模式就是抽象和实现的分析,接口可以是一致的,然后通过方法可以改变内部的实现,例如java中的数据库连接JDBC,可以通过设置不同数据库的Driver来改变内部实现,但是接口还是一样的,程序中使用的时候还是一样调用的。

 

 

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

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

相关文章

59 阻塞和非阻塞IO

阻塞式io 一个简单的用户输入回显功能&#xff0c;在用户未输入内容时&#xff0c;会一直阻塞住 #include <iostream> #include <unistd.h>using namespace std; int main() {char buff[1024];while (true){cout << "please enter ";fflush(stdo…

VAD: 向量化场景表示,用于高效的自动驾驶

VAD: Vectorized Scene Representation for Efficient Autonomous Driving VAD: 向量化场景表示&#xff0c;用于高效的自动驾驶 https://github.com/hustvl/VAD Abstract Autonomous driving requires a comprehensive understanding of the surrounding environment for …

英语单词终极记忆

你应当知道一个专业术语&#xff0c;叫COCA。 这个单词很好记&#xff0c;但你可能记不住。 你应当这样记&#xff1a; 你记住了 可口可乐&#xff0c;也就记住了 coca &#xff08;谐音&#xff1a;可口&#xff09;。 从而记住了 COCA。 无论如何&#xff0c;你这辈子&…

react版本判断是否面包含

react-admin: react版本 import { useState,useEffect } from react import ./Secene.css import { Checkbox } from "antd"; import* as turf from turf/turf; import type { CheckboxProps } from antd; // const onChange: CheckboxProps[onChange] (e) >…

机械硬盘更换判断方法

1. 频繁出现坏道&#xff1a;通过硬盘检测工具检测到硬盘存在大量坏道&#xff0c;且修复后仍不断出现&#xff0c;这可能意味着硬盘即将损坏。 2. 数据读写错误增多&#xff1a;在读写数据时频繁出现错误提示&#xff0c;文件损坏或丢失的情况频繁发生。 3. 异常噪音&#xff…

Spring Boot + Spring Batch + Quartz 整合定时批量任务

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 前言 最近一周&#xff0c;被借调到其他部门&#xff0c;赶一个紧急需求&#xff0c;需求内容如下&#xff1a; PC网页触发一条设备升级记录&#xff08;下图&#xff09;&#xff0c;后台要定时批量设备更…

宝塔/Linux/docker安装zincsearch

安装步骤 创建zincsearch目录 mkdir -p /www/wwwroot/zincsearch/data 修改目录权限 chmod arwx /www/wwwroot/zincsearch/data 创建实例 mkdir data docker run -v /www/wwwroot/zincsearch/data:/data -e ZINC_DATA_PATH"/data" -p 4080:4080 \-e ZINC_FIRST…

第15周 Zookeeper分布式锁与变种多级缓存

Zookeeper **************************************************************

Filebeat安装部署及入门应用

前言 后续开发项目要用到 Filebeat 对日志做收集和处理。本文介绍了 ELK 技术中的 Filebeat&#xff0c;用于轻量级的日志收集和分析 参考资料&#xff1a; 视频教程&#xff1a;Elastic Stack&#xff08;ELK&#xff09;从入门到实践 官方文档&#xff1a;Filebeat overv…

Linux定时同步系统时间到硬件时间

Linux定时同步系统时间到硬件时间 1. 系统时间、软件时间 系统时间 &#xff08;System Time&#xff09;&#xff1a; 一般说来就是我们执行 date命令看到的时间&#xff0c;linux系统下所有的时间调 用&#xff08;除了直接访问硬件时间的命令&#xff09;都是使用的这个时…

Python客户端操作Elasticsearch

一.Python与Elasticsearch交互示例 这段代码是使用Python的elasticsearch模块与Elasticsearch进行交互的示例&#xff1a; from elasticsearch import Elasticsearch# 一.创建连接 # 建立到Elasticsearch的连接&#xff0c;指定主机和端口&#xff0c;设置请求超时时间为3600…

【C语言篇】C语言数据类型和变量

文章目录 C语言数据类型和变量1. 数据类型介绍1.1 字符型1.2 整形1.3 浮点型1.4 布尔类型1.5 各种类型数据长度1.5.1 sizeof操作符1.5.2 数据类型长度1.5.3 sizeof表达式不计算 2. signed和unsigned3. 数据类型的取值范围4. 变量4.1变量的创建4.2 变量的分类 5.强制类型转换 C语…

【C语言】【数据结构】二分查找(数组的练习)

目录 一、什么是二分查找 二、算法思想 2.1、概述 2.2、举例 &#xff08;1&#xff09;查找3&#xff08;数组里面存在的数&#xff09; &#xff08;2&#xff09;查找12&#xff08;数组里面不存在的数&#xff09; 三、代码实现 四、计算mid公式的优化 一、…

从零开始的Python开发日记(6):如何使用SQLAlchemy

SQLAlchemy ORM 使用教程 SQLAlchemy 是 Python 生态系统中非常流行的 SQL 工具包和对象关系映射&#xff08;ORM&#xff09;库。它提供了一种高效的方法来处理数据库操作&#xff0c;使开发者能够通过 Python 对象与数据库进行交互。本文将详细介绍 ORM 的定义和含义&#x…

【03】Java虚拟机是如何加载Java类的

从class文件到内存中的类&#xff0c;按先后顺序需要经过加载、链接以及初始化三个步骤 一、加载 加载就是查找字节流&#xff0c;并且据此创建类的过程。 除了启动类加载器&#xff08;所有类加载器的祖师爷&#xff0c;由C实现&#xff0c;没有对应的Java对象&#xff09;之外…

大话成像公众号文章阅读学习(二)--- 下一代 AI-ISP会更好

系列文章目录 文章目录 系列文章目录前言一、AI-ISP1.1 定义与工作原理1.2 应用场景 二、展望总结 前言 这篇是 下一代 AI-ISP会更好 文章地址&#xff1a;https://mp.weixin.qq.com/s/N3YnkXF_stvP6k3jRTKCpQ 一、AI-ISP 1.1 定义与工作原理 定义&#xff1a;AI-ISP&#…

GEE:多面板同步缩放查看多源数据,并实现交互选点构建NDVI曲线

一. 目标 ①构建三个面板&#xff0c;分别显示不同来源数据&#xff1b; ②面板1显示哨兵数据面版2显示谷歌高清数据面板3实现用户任意交互选点&#xff0c;并以该点为中心构建正方形&#xff0c;随后生成该正方形的区域NDVI平均值长时序曲线&#xff1b; ③保证前两个面板可…

19.延迟队列优化

问题 前面所讲的延迟队列有一个不足之处&#xff0c;比如现在有一个需求需要延迟半个小时的消息&#xff0c;那么就只有添加一个新的队列。那就意味着&#xff0c;每新增一个不同时间需求&#xff0c;就会新创建一个队列。 解决方案 应该讲消息的时间不要跟队列绑定&#xf…

ANR分析及解决方案

ANR分析及解决方案 首先&#xff0c;什么是ANR&#xff1f;那么&#xff0c;为什么会发生ANR&#xff1f;哪些场景会造成ANR&#xff1f;ANR触发机制如何避免ANR&#xff1f;发生ANR异常怎么处理? 首先&#xff0c;什么是ANR&#xff1f; ANR(Application Not responding)&…

27、美国国家冰雪中心(NSIDC)海冰密集度月数据下载与处理

文章目录 一、前言二、数据下载三、使用Ponply查看数据结构四、代码一、前言 处理美国国家冰雪中心(NSIDC)的海冰密集度月度数据时,坐标转换是一个重要的步骤。NSIDC提供的数据通常采用极地球面坐标系,需要将其转换为常用的地理坐标系(如经纬度)以便进行分析和可视化。 坐…