Android开发究竟该如何学习,Android岗
作者:糖糖菓子 | 来源:互联网 | 2023-06-22 16:56
#面试经验自己大大小小投了也有20多家公司,不过经历简历筛选以及笔试淘汰,最终就经历了7家公司的面试。下面我就把自己面试中问到的问题贴出来供大家参考,一些具体项目相关的就不贴了。#
# 面试经验
自己大大小小投了也有20多家公司,不过经历简历筛选以及笔试淘汰,最终就经历了7家公司的面试。下面我就把自己面试中问到的问题贴出来供大家参考,一些具体项目相关的就不贴了。
# 阿里巴巴
> 阿里是3月初开始投的,是自己第一次面试大型的互联网公司,当时自己的准备也不够充分,表现不是很好,经历了三次技术面,最后挂了。
**一面**
1. 自我介绍
2. hashmap和hashtable
3. jdbc
4. 三次握手
5. http状态码
6. HTTPS加密:对称,非对称,CA证书
7. handler
8. 线程池的使用
9. sychonized,volatile
10. binder
11. activity绘制流程
12. 事件响应流程
13. activity周期,启动模式
**二面**
1. 自我介绍
2. 对自己项目的介绍,架构图呈现
3. 对MVP和MVVM的理解。
4. 四大启动模式,以及场景对应
5. Handler的机制介绍,为什么不能在子线程初始化问题
6. 设计模式中的单例介绍,使用场景(Okhttp的Seesion存储等等),在线编写
7. 快排算法
8. OkHttp的源码分析,及整体架构的流程图绘制
9. 四大引用的问题和MVP框架相结合进行回答
10. View绘制流程问题,如何不使用xml,来实现中间位置的定位
11. 事件分发机制流程讲解,以及如何实现单击事件和长按事件的判定
12. 关于为什么选用mqtt协议的问题,优势,原理
**三面**
1. 自我介绍
2. abstract和interface区别
3. int和Integer区别
4. 四种引用
5. Java里面int、char、long的字节数
6. 线程的创建方式
7. RxJava的优缺点
8. EventBus
9. 从网络上加载一个10M的图片,要考虑哪些
10. http与https
11. http 1.0 和 http 2.0之间的区别
12. 设计模式准则
13. Handler机制
14. 算法:判断一个链表是否回文算法,给定一个数组,将数组里面的每一位向后移动k位
# 携程
> 携程当时投的时候就没抱希望,招聘信息上明确指定只招固定的那几所985高校,就随便投了,没想到笔试都没做就直接打电话面试了,不过问的问题确实很深入,结果显然,一面就挂了。
**一面**
1. 集合
2. concurrenthashmap
3. volatile
4. synchronized与Lock
5. Java线程池
6. wait/notify
7. NIO
8. 垃圾收集器
9. Activity生命周期
10. AlertDialog,popupWindow,Activity区别
# 斗鱼
> 斗鱼是一家直播公司,给出的实习待遇是相当好,经室友推荐就投了简历。最后流程走完,得知挂在了二面上,大概原因就是没有拿得出手的项目,实际项目经验不足。
**一面**
1. 线程同步(五个线程如何顺序执行)
2. GC
3. 内部类特点
4. 四大引用范式
5. 新建线程的方式(三个)
6. arraylist和linkedlist
7. 线程池(使用,种类,参数)
8. hashmap(底层实现,冲突解决方式,扩容方式,线程安全?LinkedHashmap)
9. 自定义VIew(View的绘制,自定义View的方法)
10. 性能优化(布局和代码)
11. sp、dp和px的区别(适配问题)
12. handler(基本原理,ThreadLocal原理和使用)
13. 四大组件(问了生命周期和特点和基本使用)* 计网
14. TCP和UDP
15. HTTP建立过程
**二面**
1. 问的都是一些项目问题,比较宽泛,没问具体技术点
# 字节跳动
> 字节跳动是在三月底投的,当时找了一个月,都没拿到拿得出手的offer,有点心烦意乱,就又海投了一波。3.24接了字节跳动的面试,3.29进行的视频面试。一共进行了3轮视频面试,字节的面试官很好,看得出来字节的技术是很强的,也很注重算法。最终拿到offer。
**一面**
1. 数据结构中堆的概念,堆排序
2. 死锁的概念,怎么避免死锁
3. ReentrantLock
4. synchronized
5. volatile
6. HashMap
7. singleTask启动模式
8. 用到的一些开源框架,介绍一个看过源码的,内部实现过程。
9. 消息机制实现
**二面**
1. synchronized与ReentrantLock
2. ReentrantLock的内部实现
3. 用到的一些开源框架,介绍一个看过源码的,内部实现过程。
4. Java中异常
5. App启动崩溃异常捕捉
6. 事件传递机制的介绍
7. ListView的优化
8. 今日头条推荐新闻去重,推荐的时候去掉用户已经看过的新闻。
9. 二叉树,给出根节点和目标节点,找出从根节点到目标节点的路径。手写算法
10. 模式MVP,MVC介绍
11. 断点续传的实现
**三面**
1. 集合的接口和具体实现类,介绍
2. TreeMap具体实现
3. synchronized与ReentrantLock
4. 手写生产者/消费者模式
5. 逻辑地址与物理地址,为什么使用逻辑地址
6. volatile
7. 一个无序,不重复数组,输出N个元素,使得N个元素的和相加为M,给出时间复杂度、空间复杂度。手写算法
8. Android进程分类
9. 前台切换到后台,然后再回到前台,Activity生命周期回调方法。弹出Dialog,生命值周期回调方法。
10. Activity的启动模式
# 腾讯
> 腾讯大家都知道互联网巨头,我是通过实习僧上简历投递获得的这次面试机会,一共进行了两轮电话面试,挂在了二面。
**一面**
1. 自我介绍
2. APP的启动流程
3. APP的安装流程
4. Rxjava的源码
5. 事件分发机制和多点触控
6. https和非对称加密
7. Retrofit的动态代理
8. 几种IPC方式的优劣,以及Binder的原理
9. 本地持久化储存的方法
10. parcelable和serializable
**二面**
1. 自我介绍
2. 笔试题1:删除无序链表中的重复结点(能否优化)
3. 笔试题2:先说一下二叉树的有哪些遍历方法。写一个二叉树前序遍历的非递归形式。
4. 讲一下Java的内存。
5. 创建一个字符串对象,这个对象分配在哪里?
6. String str = “123” + “456”;会创建几个对象。
7. 问了操作系统的问题,没学过,所以也忘了问了什么。
8. 数据存储有学过吗?数据库和文件保存有什么区别?
9. Activity有哪些启动模式?
10. 有什么要问的?
# 最后
给大家送上我成功跳槽复习中所整理的资料,由于文章篇幅有限,所以只是把题目列出来了,我自己手头上整理的资料均和上面的答案可免费分享,需要这些资料和答案的朋友,**可以[点击这里免费领取](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)。**
![image](http://www.icode9.com/i/li/?n=2&i=images/20210708/1625677161535780.jpg)
![image](http://www.icode9.com/i/li/?n=2&i=images/20210708/1625677161178859.jpg)
![image](http://www.icode9.com/i/li/?n=2&i=images/20210708/1625677161104131.jpg)
推荐阅读
-
一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ...
[详细]
蜡笔小新 2024-11-14 11:01:49
-
本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ...
[详细]
蜡笔小新 2024-11-12 21:51:00
-
-
前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ...
[详细]
蜡笔小新 2024-11-12 14:58:57
-
本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ...
[详细]
蜡笔小新 2024-11-14 12:33:11
-
本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ...
[详细]
蜡笔小新 2024-11-14 10:33:29
-
为了满足项目需求,需要在多个场景中实现左滑删除功能,并且后续可能在列表项中增加其他功能。虽然网络上有很多左滑删除的示例,但大多数封装不够完善。因此,我们尝试自己封装一个更加灵活和通用的解决方案。 ...
[详细]
蜡笔小新 2024-11-13 17:43:59
-
本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ...
[详细]
蜡笔小新 2024-11-13 10:57:24
-
com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ...
[详细]
蜡笔小新 2024-11-13 10:47:33
-
本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ...
[详细]
蜡笔小新 2024-11-13 09:46:25
-
本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ...
[详细]
蜡笔小新 2024-11-12 15:57:04
-
大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ...
[详细]
蜡笔小新 2024-11-11 19:05:59
-
属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ...
[详细]
蜡笔小新 2024-11-11 13:55:43
-
在探讨如何在Android的TextView中实现多彩文字与多样化字体效果时,本文提供了一种不依赖HTML技术的解决方案。通过使用SpannableString和相关的Span类,开发者可以轻松地为文本添加丰富的样式和颜色,从而提升用户体验。文章详细介绍了实现过程中的关键步骤和技术细节,帮助开发者快速掌握这一技巧。 ...
[详细]
蜡笔小新 2024-11-10 15:37:21
-
在 Android 开发中,`android:exported` 属性用于控制组件(如 Activity、Service、BroadcastReceiver 和 ContentProvider)是否可以被其他应用组件访问或与其交互。若将此属性设为 `true`,则允许外部应用调用或与之交互;反之,若设为 `false`,则仅限于同一应用内的组件进行访问。这一属性对于确保应用的安全性和隐私保护至关重要。 ...
[详细]
蜡笔小新 2024-11-10 14:14:26
-
本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ...
[详细]
蜡笔小新 2024-11-10 13:04:42
-