网易Android framework开发岗面试经历分享(附面试题汇总+案例解析)

news2024/9/23 1:38:58

背景

今年可以说是非常难,部门被拆,很多同事都被变相裁员了,虽然说去其他部门工作可以给我们的放宽一点要求,但我还是想在Android开的岗位上发展,所以也提出了离职;离职后的两个月中,投了一些Android开发工程师岗位的简历,发现几乎没有回应,有回应的都是一些工资低的小型企业,就没搭理,后面在一次和朋友吃饭的时候,听朋友讲到了Android framework工程师的岗位,于是第二天早上就试着投了一家,有反馈的挺多,其中包含:小米,网易,滴滴出行这几个大厂,就这样陆陆续续面试了一些地方,收到了部分offer,因为这场裁员经历让我谨慎了许多,前几天胜利拿到我最想去的网易复的offer了,目前顺利入职。

这边文章主要分享我的部门面试经历,当然也将我这几个月的求职过程中碰到的面试题整理成了《Android面试题汇总》,供大家参考。

网易一面(70min)

  • 介绍一下你自己
  • flow为什么能代替livedata,有什么区别,flow怎么进行线程切换
  • 线程、进程、协程的区别,dart的线程模型怎么样的,是线程还是协程 了解过handler吗,说一下 java中启动一个线程有哪些方式
  • 知道synchronized吗?有什么作用?有什么应用场景?synchronized加在实例方法和静态方法上有什么区别?
  • 进程死锁是怎么产生的? 做项目有没有遇到过线程问题,挑一个讲,怎么解决的 http和https区别,https为什么安全
  • tcp和udp区别 解释什么是多态,有什么实际应用 hashmap hashTable concurrentHashMap原理与区别
  • 平时学习新知识怎么学的 写点代码吧,手搓一个快排

二面(60min)

  • 开始问项目,深挖项目的里面提到的内容 包括负责的内容,使用的技术,使用的框架,遇到的问题,怎么解决,最后成果怎么样
  • 一个应用可以在不同进程吗,进程间通信方式 service运行在主线程还是子线程
  • 主进程2个线程调用子进程aidl方有资源竞争之类的吗
  • handler和线程的关系 一个app可以有多个任务栈吗
  • 反问

HR面(15min):

  • 确认目前情况和到岗时间;
  • 自己的优势和契合点,为什么选到了这个岗;
  • 其它厂的投递情况和进展,可能的最终去向;

以上面试题都已整理成PDF文档,有需要的朋友可以访问下方链接免费领取~

《Android面试题集合》 ​docs.qq.com/doc/DWHlTakRsZFpqd0l0

java面试题:

基础知识

  1. 请手写equal方法【String类】,讲讲具体的原理?Object类的equla方法是怎样的?
  2. 请说下String与StringBuffer区别,StringBuffer底部如何实现?String类可以被继承吗,为什么?
  3. String a=““和String a=new String(””)的的关系和异同?String的创建机制如何理解?
  4. 为什么Java中的 String 是不可变的(Immutable)?字符串设计和实现考量?String不可变的好处?

在这里插入图片描述
面向对象知识点

  1. 面向对象编程的四大特性及其含义?封装、继承、多态分别是什么?为何要封装?为什么是单继承而不能多继承呢?

  2. 重载和重写的区别?重载和重写绑定机制有何区别?父类的静态方法能否被子类重写?重写是动态绑定,如何理解机制?

  3. 什么是绑定?静态和动态绑定如何区别?动态绑定编译原理是什么?动态绑定运行原理是什么?

  4. 接口和抽象类的区别是什么?接口的意义是什么?抽象类的意义是什么?如何选择抽象类和接口?



  5. 在这里插入图片描述
    java数据结构

  6. 在arrayList中System.arraycopy()和Arrays.copyOf()方法区别联系?System.arraycopy()和Arrays.copyOf()代码说明?

  7. Collection集合和Map集合的区别?Map集合的特点?说下Map集合整体结构?

  8. Java集合框架中有哪些类?都有什么特点?集合框架用到Collection接口,这个接口有何特点?

  9. ArrayList添加元素时如何扩容?如何添加元素到指定位置,该操作复制是深拷贝还是浅拷贝?


  10. 在这里插入图片描述

Android面试题:

基础知识点

  1. 说下Activity的生命周期?屏幕旋转时生命周期?异常条件会调用什么方法?
  2. 后台的Activity被系统回收怎么办?说一下onSaveInstanceState()和onRestoreInstanceState()方法特点?
  3. 如何避免配置改变时Activity重建?优先级低的Activity在内存不足被回收后怎样做可以恢复到销毁前状态?

在这里插入图片描述

高级知识点

  1. 谈谈消息机制Hander作用?有哪些要素?流程是怎样的?简单说一下你的看法!
  2. Handler的post方法和view的post方法有什么区别?为什么说要避免在子线程中手动创建looper?
  3. 可以在子线程直接new一个Handler吗?会出现什么问题,那该怎么做?

在这里插入图片描述
性能优化面试题:

  1. App启动时候存在白屏或者黑屏是什么造成的?解决的方案有哪些?为何最后要设置setBackgroundDrawable为null?
    2.SharePreference性能优化,可以做进程同步吗?具体是怎么优化的呢?

在这里插入图片描述

Framework 面试题:

  1. 什么是Binder?为什么要使用Binder?Binder中是如何进行线程管理的?总结binder讲的是什么?
  2. Android中进程和线程的关系?什么是IPC?为何需要进行IPC?多进程通信可能会出现什么问题?
    3.Binder的工作流程是怎样的?Binder主要能提供哪些功能?Binder通信机制原理是怎样的?
  3. Android中为何新增Binder来作为主要的IPC方式?Binder运行机制是怎样的?Binder机制有什么优势?
  4. Android中跨进程通讯的几种方式?实际开发中,有哪些场景使用Binder进行数据传输?

    在这里插入图片描述

Android架构面试题:

  1. 谈谈MVC、MVP和MVVM的使用区别,优势分析?
  2. 是否能从Android中举几个例子说说用到了什么设计模式?
  3. Retrofit的实现与原理?什么叫做动态代理?
  4. 谈谈你对Glide和Picasso他们的对比的优缺点?

    在这里插入图片描述

音视频面试:

  1. SurfaceView是做什么?SurfaceView和View的本质区别?SurfaceView优缺点有哪些?
  2. SurfaceView如何保证UI界面的流畅性?如何理解双缓冲机制?
  3. SurfaceView在新的线程中更新画面为何不会阻塞UI主线程?是否跟在子线程中不能操作UI矛盾?

在这里插入图片描述

最后

其实面试过程被问到的问题没有这么多,想必大家都知道,只有全面复习是以备不时之需,这可能就是人们常说的“面试造火箭,工作拧螺丝”吧,最后希望大家都面试顺利,实现涨薪梦!!!
在这里插入图片描述

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

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

相关文章

类ChatGPT逐行代码解读(1/2):从零实现Transformer、ChatGLM-6B

前言 最近一直在做类ChatGPT项目的部署 微调,关注比较多的是两个:一个LLaMA,一个ChatGLM,会发现有不少模型是基于这两个模型去做微调的,说到微调,那具体怎么微调呢,因此又详细了解了一下微调代…

tensorflow GPU训练环境布置

tensorflow GPU训练环境布置 一、显卡驱动安装1.1 如何处理**Failed to initialize NVML: Driver/library version mismatch的问题**1.2 卸载旧的版本1.3 驱动安装 1.3.1 利用apt 安装1.3.2 手动安装 二、安装CUDA2.1 确定CUDA版本2.2 下载文件1. 找匹配版本2. 选合适的平台 2…

微服务---Redis实用篇-黑马头条项目-商户查询缓存功能(缓存穿透,缓存雪崩,缓存击穿问题及解决思路)

1、商户查询缓存 1.1 什么是缓存? 前言:什么是缓存? 就像自行车,越野车的避震器 举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样; 同样,实际开发中,系统也需要"避震…

libcad.so Crack,转换为多种文件格式

libcad.so Crack,转换为多种文件格式 支持所有流行的2D和3D CAD格式。 高速准确的可视化。 轻松访问CAD实体属性,包括坐标、文本、图层等。 转换为多种文件格式。 从DWG和DXF文件生成G代码。 Unicode支持。 libcad.so是一个用于Linux的库。它可以将CAD功能添加到不同…

【笔试强训选择题】Day11.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…

MyBatis--原生的 API--注解的方式和MyBatis--mybatis-config.xml-配置文件详解

目录 原生的 API&注解的方式 MyBatis-原生的 API 调用 为了大家的观看我把基于xml的配置和类也展示了如果你想要详细的观看可以看 连接这个博客 创建Monster 创建MonsterMapper接口 创建MonsterMapper.xml 配置mybits的xml 创建MyBatisUtils 原生的 API 快速入门-代…

《计算机网络—自顶向下方法》 第二章Wireshark实验:DNS协议分析

域名系统 DNS(Domain Name System) 是互联网使用的命名系统,用于把便于大家使用的机器名字转换为 IP 地址。许多应用层软件经常直接使用 DNS,但计算机的用户只是间接而不是直接使用域名系统。 互联网采用层次结构的命名树作为主机的名字,并使…

Pytorch高级训练框架Ignite详细介绍与常用模版

引言 Ignite是Pytorch配套的高级框架,我们可以借其构筑一套标准化的训练流程,规范训练器在每个循环、轮次中的行为。本文将不再赘述Ignite的具体细节或者API,详见官方教程和其他博文。本文将分析Ignite的运行机制、如何将Pytorch训练代码转为…

Kubectl-AI: 一款 OpenAI GPT 自动生成应用 K8s yaml神器

首页: 官网 下载安装 wget https://github.com/sozercan/kubectl-ai/releases/download/v0.0.10/kubectl-ai_linux_amd64.tar.gz tar xvf kubectl-ai_linux_amd64.tar.gz -C /usr/local/bin/kubectl-ai需要OpenAI API密钥或Azure OpenAI服务 API密钥和端点以及有效的Kubernet…

系统移植——linux内核移植——分析内核编译过程

uImage镜像文件 1.进入linux内核源码目录 ubuntuubuntu:~$ cd FSMP1A/linux-stm32mp-5.10.61-stm32mp-r2-r0/linux-5.10.61/ 打开Makefile文件 vi Makefile 搜索include 因为 $(SRCARCH)->arm 所以上述指令为 arch/arm/Makefile 2.进入linux内核源码目录下,arch/arm目录下…

Windows 11 本地部署 Stable Diffusion web UI

Windows 11 本地部署 Stable Diffusion web UI 0. 什么是 Stable Diffusion1. 什么是 Stable Diffusion web UI2. Github 地址3. 安装 CUDA Toolkit 11.84. 安装 cuDNN v8.9.1 for CUDA 11.x5. 配置环境变量6. 安装 Python 3.10.67. 安装 Stable Diffusion web UI8. 启动 Stabl…

吊打面试官的Java项目经验一:物流系统

引言: java面试一般分为两部分,技术面试和项目面试,相信大多数小伙伴们都刷过很多技术性的面试题,连博主本人也刷过很多无聊的面试题,但是对于项目经验的面试,可能很多刚入行小伙伴属于一个空白期&#xff…

【软考|软件设计师】编辑距离算法

目录 编辑距离算法: 步骤: 实例: 题: 完整代码如下: 调试: 代码解析: 具体过程参考: 编辑距离算法: 是一种计算两个自符串之间差异程度的方法,它通过…

现场工程师出马:VMware+LVM卷快速在windows Server上部署Kafka集群

最近遇到的疑难现场问题层出不穷,本次遭遇的挑战是在4台windows Server 服务器上部署Kafka集群。这是一种比较少见的操作,原因是有些依赖的驱动对虚拟化支持不好,只能运行在实体win机上。 原有的上层业务是由B团队开发运维,现在B…

今年的博客数量上两百了

今年的博客数量上两百了 不知不觉在 C S D N CSDN CSDN中写了那么多篇文章。与 C S D N CSDN CSDN相伴的生活中,我过得很充实。

并发编程10:Java对象内存布局和对象头

文章目录 10.1 面试题10.2 Object object new Object()谈谈你对这句话的理解?10.3 对象在堆内存中布局10.3.1 权威定义----周志明老师JVM10.3.2 对象在堆内存中的存储布局 10.4 再说对象头的MarkWord10.5 聊聊Object obj new Object()10.5.1 运行结果展示10.5.2 压…

C++入门(命名空间、缺省参数、函数重载、引用、内联函数)

全文目录 引言C输入与输出命名空间概念使用使用域作用限定符::使用某个成员使用using namespace 引入整个命名空间域使用using引入某个成员 缺省参数概念分类 函数重载定义与调用原理 引用定义需要注意 使用引用作为返回型参数引用作为返回值 引用与指针的区别 内联函数总结 引…

华为OD机试真题 Java 实现【猜字谜】【2023Q2】

一、题目描述 小王设计了一人简单的清字谈游戏,游戏的迷面是一人错误的单词,比如nesw,玩家需要猜出谈底库中正确的单词。猜中的要求如 对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 变换顺序以后一样的&…

np保存数据为txt或者csv格式

目录 1、基础参数 2、参数详解 2.1、fmt 2.2、delimiter 2.3、newline 2.4、header 1、基础参数 numpy.savetxt(fname,arrry,fmt%.18e,delimiter ,newline\n,header,footer,comments# ,encodingNone,) 2、参数详解 fname:要存入的文件、文件名、或生成器。arrry:要存储…

xxl-Job分布式任务调度 入门

1.概述 1.1 什么是任务调度 我们可以先思考一下业务场景的解决方案: 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。 某银行系统需要在信用卡到期还款日的前三天进行短信提醒。 某财务系统需要在每天凌晨0:10结算前一天的…