当前位置: 首页 > news >正文

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来改变内部实现,但是接口还是一样的,程序中使用的时候还是一样调用的。

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PyEcharts知识点详解(每张图都有!)(巨详细!!)
  • BGP路由反射器
  • Apache Doris + Paimon 快速搭建指南|Lakehouse 使用手册(二)
  • mysql字符类型字段设置默认值为当前时间
  • react配置代理的3中方法
  • 9. 机器学习汇总(数据、模型、流程、心血管疾病预测)
  • 编程类精品GPTs
  • 05 循环神经网络
  • Webpack 5 Tree Shaking与Module Federation
  • 【管控业财一体化】
  • k8s核心知识总结
  • 构造函数的详解和new操作符
  • 项目架构知识点总结
  • 计算机网络(四)数字签名和CA认证
  • C#使用Clipper2进行多边形合并、相交、相减、异或的示例
  • [数据结构]链表的实现在PHP中
  • CentOS7简单部署NFS
  • CSS3 变换
  • Debian下无root权限使用Python访问Oracle
  • git 常用命令
  • iOS 系统授权开发
  • Rancher如何对接Ceph-RBD块存储
  • spring security oauth2 password授权模式
  • Vue UI框架库开发介绍
  • Vue.js源码(2):初探List Rendering
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 构建二叉树进行数值数组的去重及优化
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 问题之ssh中Host key verification failed的解决
  • 学习笔记:对象,原型和继承(1)
  • 怎样选择前端框架
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (11)MATLAB PCA+SVM 人脸识别
  • (4)logging(日志模块)
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转)jQuery 基础
  • (转)程序员疫苗:代码注入
  • (转)可以带来幸福的一本书
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • ./和../以及/和~之间的区别
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET8使用VS2022打包Docker镜像
  • .so文件(linux系统)
  • @RequestBody与@ModelAttribute
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [BZOJ4566][HAOI2016]找相同字符(SAM)
  • [C#]C# winform实现imagecaption图像生成描述图文描述生成
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计