开发2-3年,成功入职华为od,从12w涨薪到26w,分享一下其面试题

2023-11-22 06:51

本文主要是介绍开发2-3年,成功入职华为od,从12w涨薪到26w,分享一下其面试题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

面试经历

分享一位面试了五家二线互联网公司的朋友,成功从12w涨薪到26w,其面试的公司为:网易云音乐、华为od、货拉拉、扇贝、途牛,我记录了他面试华为od部分面试真题。答案也放在下面了,还有更多大厂面试题可以去文末领取。

1、 有一个线程池,核心线程数5个,最大线程数10个,阻塞队列最大存放10个数据,如何快速加载完100Kbitmap没答出来

答案:重写拒绝策略,在拒绝策略里调用阻塞队列的阻塞的添加方法

2、一个函数里面有个异步调用, 异步调用有返回值,如何使这个函数变成同步的,返回异步执行的返回值

回答的wait和notify
答案:当时紧张没get到点,面完想想不就是join吗

3、Android里面的Drawable用过吗 ,说说系统常见有哪些drawable ,然后问了Drawable里面的callback. mutate函数的作用

没答出来
答案:常见的有ColorDrawable. BitmapDrawable、 ClipDrawable. AnimationDrawable.

Callback作用:当drawable触发属性更新的时候,希望把更新的操作丢给外部处理就用到callback

Mutate作用:当加载资源文件里的相同的drawable的时候,会共用里面的ConstantState对象,也就是说我修改某个drawable的state里的某个属性,因为共用,所以其他的drawable也会对应更改, mutate是新建了只属于自己当前drawable的ConstantState,所以这个只属于自己,而且不可主动替换为用哪个ConstantState

drawable讲解: hts://ww.jianshu.com/p/578125001dc2

4、 现在有一个纵向的RecyclerView ,里面的item是一一个横向的RecyclerVview ,请问如何优化提高RecyclerView的性能

(我回答了共用缓存池,重写getitemld ,面试官提示我可以从绘制方面入手,如何减少绘制)

https://blog.csdn.net/hxl517116279/article/details/107058425/

https://blog.csdn.net/smileiam/article/details/88396546

5、sp是进程不安全的,如何保证进程安全(我回答的contentprovider ) ,那如何跨进程监听到sp的改变呢(没有回答上来)

hts://juejin.cn/post/6844903476569325581

6、jetpack组件用过吗,说说livedata如何实现生命周期的监听的,就是在activity不在前台为啥就不会通知到数据改变,等到到了前台才通知呢(我不太清楚这边, jetpack还没怎么学)

答案:在添加observer的时候会把当前的生命周期对象lifecycleowner-并传入 ,也会把这个observer添加到生命周期对象的LifecycleRegistry对象里的map里面,在发送事件的时候会判断一下, observer所在的生命周期对象的状态是至少否为started (前台可见) , 不然就不通知它,当生命周期对象生命周期发生改变的时候,会挨个调用lifecycleRegistry里面的observer,会发生多次调用observer ,但是observer的activeStateChanged函数会判断是否是状态没变,没变就不会往下走

7、 事件分发中,有哪些会发送canceI事件(我回答触发父容器的拦截条件时会发送,其他的我不太知道)

搜罗的答案:1、父容器拦截了事件。2、 viewgroup移除当前view。3、 window移除当前view

htps://ww.jianshu.com/p/0a8ec531d5fb

8、glide源码有看过吗 ,怎么复用里面的bitmap的
(这边复用缓存我不太清楚,有些问题我没明白,所以没抓到问的点)

9、networkInterceptor和普通的用户自定 义的拦截器区别在哪里
(我回答的是network拦截器是在获取到网络数据时使用的,这时候的数据是完全服务端返回的,可以在这里监听分析网络的状态之类的,面试官说还有就是重定向的时候,这个拦截器会执行两次,普通的只会执行一-次) 这边我还说了普通拦截器可以额外统一处理添加请求头之类的, network拦截器这边不好加,实我想表达的是network拦截器这边不太好加,因为到这里已经拼接成完整报文了,面试言就反驳说这边也可以加的,当时被前面的问题搞懵了,没表达清楚

10、http2.0与11的区别
(我回答的是2.0可以多路复用,而且是基于流传输的,而且可以几个请求同时进行)

那2.0是如何传输数据的呢(我回答的是,把请求头简化,改成代号来指代,然后将整个报文数据分割传输,到了对面拼接起来)

那如何区分是谁的请求呢(这个我还真忘了, 我说好像是给数据进行标号)

如何知道该不该用2. 0的通道连接这个请求呢(我回答的是先尝试发个h2c请求头,看服务器返回,面试官说如何一开始知道呢,我不是很清楚,然后问了面试官,他说进行证书验证的时候会携带这些信息,我猛然想起扔物线里面是有说到的,我疏忽了,忘了这个了)

1、如果我现在在电梯里面,怎么进行弱网下的网络请求优化呢(我先回答的是通过android api获取到当前网络状态,然后发给服务端,服务端根据参数返回不同数据,我这边虎了虎了, 这是解决图片在弱网下的一一个方法 ,和这个题目不搭嘎,面试官说如果数据不减少呢,就是这么多,我回答不上来)

后来思考的答案: 1、是否可以改变数据的存储格式为protobuf ,再用gzip压缩。2、该请求支持分段获取的话,我们可以按顺序分段获取数据,按部分展示给用户。3.复用连接.4、开启缓存

12、讲-讲dns优化呢 (我回答的是httpdns ,说了dns解析的话可能会被运营商劫持,而且可能会运用网速很慢的ip进行解析, httpdns是直接用ip请求的,而且会返回优质ip。面试官问还有别的吗 ,超出我的知识范围了,有其他大厂应该也做了类h似httpdns的东西)

如何保证dns不被劫持,不会给你返回别的ip呢(我说可以使用https请求,里面的证书会验证域名,面试官说运营商还是会进行dns劫持的,比如你要访问百度,我不给你访问,我给你跳到google ,我就不会了,超出我的知识范围)

13、如何进行冷启动优化的呢(我回答,有adbshell命令可以统计app启动速度,在androidstudio里面有工具可以抓取ap启动所执行的操作,查看火焰图、topdown那些图可以找到耗时函数,然后做对应优化,我尝试过把三方sdk放到子线程或者延迟初始化,然后根据layout inspector工具减少布局的嵌套之类的,然后看看有没有过度绘制什么的,面试官说这些都是常规优化,还有别的吗,好吧,超出知识范围)

14、kotlin rified关键字讲一讲(我回答我只是运用了基础的kotin语法开发过,这个不清楚)

15、一个按钮我点击了, 这个view如何第一时间刷新重绘的呢(我回答的是,如果是surfaceview主动调用刷新会立即重新刷新,但是普通的不会的啊,它只会订阅下一帧,等下一帧到来的时候才会重绘)

那如何确保下一帧到来的时候就重绘呢(我回答的是,通过handler的同步屏障知识,当订阅下一-帧重绘的时候 ,设置同步屏障,确保只有这个view会第一时间被执行,等这个view执行完毕,再撤销同步屏障)

16、canvas 与surface的区别(我回答canvas继承自surface ,然后最终是通过surfaceflinger进行绘制的,其他不是很清楚)

17、时间差不多了,你有什么想问的吗(我虽然基本没答上来,但是还是厚着脸皮问了: 我想问下,万-有幸能进入网易的话,我想问问项目中大概用到了哪些技术,我去学习或者复习下。面试官回答我: kotlin要好好学下, flutter也学下,我们这边是以绘制view为主,用mwm和jetpack全家桶的,因为的确好用,也要学下。因为我还说了这次好难,我太菜了,面试官还安慰不要灰心.上面很多问的是细节,好好加油)

更多面试题以及答案可以点击文末的卡片,扫码免费领取哦。

在这里插入图片描述
在这里插入图片描述

这篇关于开发2-3年,成功入职华为od,从12w涨薪到26w,分享一下其面试题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/408314

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧