一个小菜鸡的春招面试记录

文章目录

  • 前言
  • 1.君海游戏
  • 2.同花顺
  • 3.微派
  • 4.桌动
  • 5.尘原
  • 6.亿联
  • 7.虎牙
  • 8.步步高
  • 9.东方蓝深
    • 9.1 初试
    • 9.2 复试
  • 10.华为
  • 11.浩鲸
    • 11.1 初试
    • 11.2 复试
  • 12.中科传达
    • 12.1 初试
    • 12.2 复试
  • 13.吉利
  • 14.南天
  • 15.Insta360
    • 15.1 初试
    • 15.2 复试
  • 16.4399
    • 16.1 初试
    • 16.2 复试
  • 17.长海
  • 18.联通

前言

作为大四的应届生,曾经在2019年9月份记录了秋招时遇到的一些面试,文章地址:
一个小菜鸡的秋招面试记录。由于对原公司的一些制度感到不满,决定离职并参加第二年的春招。经过一段时间的学习后,在三月上旬的两个星期的密集面试中(几乎一天平均三场面试),也算是成功上岸了,这里将面试的经历通过博客记录下来,分享给即将要参与2020年下半年秋招的读者参考。
如果没有特别提及,可以把以下公司中我申请的职位都默认为软件工程师(Android方向)
先说说本人的情况:双非普通一本,计算机学院的大四学生,专业为网络工程。从3月开始系统地学习Java,直到9月开始正式参加秋招。秋招中找到了一家大数据公司并签署了三方,后觉得公司的一些制度不太合理再加上对于Android方向要更有兴趣些,所以才决定参加春招。
相比于Java,Android方向的岗位更多是看中计算机网络以及数据结构这些,基本的知识点较多,深入的知识点也有一些,多集中在自定义控件,框架的深入理解等。由于疫情原因,所有的面试都是基于线上进行的。为了节省篇幅,这里直接贴出面试中遇到的问题,就不再详细描述其他情况了。
最后,由于部分面试仅仅是询问基本情况,没有涉及到技术方面的问题,就不一一列出了。

1.君海游戏

操作系统

  1. 进程和线程的特性,区别
  2. 进程和线程的优缺点
  3. 操作系统的死锁,如何处理?
  4. 银行家算法的细节

计算机网络

  1. 三次握手为什么必须是三次
  2. Https协议和Http协议的区别,SSL加密协议的具体内容
  3. 网站的证书了解吗

Linux

  1. 现在在Linux系统中有个需求:查找Linux系统中某个包含有特殊字符串的文件,有什么方法?

Android

  1. View的绘制流程
  2. 某一个第三方框架的底层源码了解吗
    Java
  3. 保证变量在多个线程之间的可见性该怎么做

逻辑题

  1. 假设在你面前摆放着4张长方形卡片,每张都是一面写有字母且另一面写有数字,这4张卡片中有两张是字母朝上,两张是数字朝上,朝上的一面分别是A、K、8、5。你的任务是选择翻开一张或多张卡片,以检查下述规则是真还是假:如果卡片的一面是元音字母,那么,它反面的数字是偶数。现在请指出哪张卡片是必须翻开的。
    在这里插入图片描述

2.同花顺

  1. JNI和NDK的区别
  2. RPC和Http请求的区别
  3. Android NDK的调用流程
  4. OpenCV库的目录结构

3.微派

  1. 算法题,动态规划,数组中的数实现跳跃
  2. 算法题,实现一个简单的计算器,有()、+、-
  3. Activity的启动模式
  4. Handler的传递机制
  5. 写服务器用到了什么框架
  6. 觉得计算机有什么比较厉害的设计

4.桌动

  1. 谈谈OSI和TCP/IP
  2. 谈谈TCP和UDP的区别
  3. Android的四大组件
  4. Service的工作流程,与线程的区别
  5. Handler的传递机制
  6. ANR问题
  7. App混淆
  8. App的签名机制
  9. JVM的类加载机制

5.尘原

  1. 描述四大组件
  2. Activity的启动模式
  3. Activity的生命周期
  4. Service的两种绑定模式
  5. BroadCastReceiver有哪两种注册方式
  6. RecycleView和ListView的区别
  7. 常见的布局
  8. OkHttp是怎么使用的
  9. Glide是怎么使用的
  10. Android NDK有用过吗?
  11. 有没有用过自定义View
  12. 简单聊聊项目
  13. 熟悉的设计模式
  14. 工厂模式的作用
  15. 单例模式的两类
  16. 常用的框架有哪些
  17. 工作中遇到的难题
  18. 学习上遇到的难题

6.亿联

基本上就是聊聊使用过的技术栈和相关项目,不算是太正式的技术面试

7.虎牙

  1. 找到无序数组中第n大的数,说的是快排的思想。
  2. 两根绳子,一根烧完要1小时,表示出45分钟
  3. Http和Https的区别
  4. SSL协议所使用的加密方式(AES)
  5. TCP保证数据传输的可靠性
  6. Object类方法,详细说说equals和hashCode(这里把对应关系说反了,凉凉)
  7. Java线程安全手段
  8. Java内存模型
  9. 内部类有哪些,内部类为什么可以访问外部类的成员
  10. Handler的消息传递机制
  11. 一个线程可以有几个Looper,几个Handler
  12. Error和Exception的区别,常见RunTimeException。

8.步步高

  1. Service平常是怎么使用的
  2. Service的启动模式
  3. Fragment的生命周期
  4. 怎么创建一个线程
  5. 怎么保证线程同步,并发场景:对象A能同时获取加了锁的B方法和C方法吗
  6. TCP和UDP的区别,应用场景,UDP丢包怎么解决
  7. Http和Https的区别,SSL协议怎么保证安全性
  8. ContentProvider的底层实现(即为什么可以保证数据安全传输)
  9. 谈谈单例模式
  10. 谈谈代理模式
  11. 设计模式平常是怎么使用的
  12. 子父类的构造方法的调用关系,场景:如果子父类都有无参和有参的构造方法的调用关系
  13. 为什么选择xUtils来做网络缓存,而不是用OkHttp这些
  14. 有没有遇到过ANR?怎么解决
  15. 有没有遇到过OOM?怎么解决
  16. Handler消息传递机制
  17. View的事件绘制流程
  18. 有没有自定义过第三方View
  19. 怎么解决滑动冲突
  20. 三级缓存的使用原理
  21. ViewPager怎么实现和Fragment联合使用
  22. List,Set,Map的区别和联系
  23. 详细谈一下HashMap
  24. Set怎么保证底层数据不会重复
  25. 有没有了解过Android的插件化和热修复这些技术
  26. 有没有对代码进行过重构
  27. 项目里用到的动画是哪一种,动画有哪几类
  28. 有没有了解过性能优化的一些步骤,比如说过度绘制应该怎么优化
  29. 解决if嵌套应该用什么方法
  30. HashMap怎么解决哈希冲突
  31. 有没有使用过泛型?一般用来做什么?

9.东方蓝深

9.1 初试

  1. 说说面向对象的三大特征
  2. 说说Java的基本数据类型
  3. 谈谈ArrayList和Vector
  4. 谈谈Cookie和Seesion
  5. 谈谈线程
  6. 谈谈servlet的生命周期
  7. JS了解地如何?
  8. 谈谈Spring
  9. 谈谈Oracle
  10. Android这块的了解深度

9.2 复试

  1. 自我介绍
  2. 项目的整体流程
  3. 介绍一下云计算
  4. 简单讲解一下三层架构(MVC)
  5. 常用的技术栈是什么
  6. 开发项目中遇到的最大挑战是什么

10.华为

  1. 说说树的遍历模式,如何使用代码进行实现
  2. 说说堆是哪种类型的排序,选择排序
  3. 信号量实现了什么功能,分为哪几种
  4. 死锁的必要条件
  5. 代码量主要在哪里
  6. Linux了解得怎么样
  7. 算法题:大字符串包含小字符串

11.浩鲸

11.1 初试

  1. 介绍一下四大组件
  2. 有没有做过屏幕适配
  3. 介绍一下常用的View控件和Layout布局
  4. 网络连接用的什么框架来实现
  5. 有没有了解过MVP框架?有做过什么项目吗
  6. 了解过Kotlin语言吗?
  7. 介绍一下Java中的集合类
  8. 介绍一下LinearLayout的布局属性,layout_weight属性是用来做什么的
  9. 有没有自定义过泛型?
  10. 了解过React Native吗?

11.2 复试

  1. 自我介绍
  2. 之前有考过研吗
  3. 对公司的类型有什么要求(理解成进公司能学习到什么了)
  4. 文化课成绩怎么样,绩点是多少
  5. 目前面试了几家公司
  6. 秋招的情况
  7. 有什么兴趣爱好
  8. 如果公司和其他公司都给你发了Offer,优先考虑哪里
  9. 四级成绩是多少分?六级成绩是多少分?
  10. 觉得个人比较突出的地方在哪

12.中科传达

12.1 初试

  1. Java的Synchronized实现方式
  2. final修饰符的作用
  3. Java的线程安全机制
  4. String类中常用的几个方法
  5. Android的Activity、生命周期等
  6. Android的Service、调用方式,生命周期
  7. Activity和Service的区别
  8. Linux熟悉吗

12.2 复试

  1. 自我介绍相关
  2. 高考成绩
  3. 社团情况
  4. 对公司的要求以及期望薪资
  5. 公司相关

13.吉利

  1. 面向对象的三大特征
  2. Activity的生命周期
  3. JVM的底层组成
  4. Linux熟悉吗?查看线程状态用什么命令?
  5. Flutter用的怎么样?
  6. Redis是怎么使用的?
  7. 项目中遇到了什么难题?是怎么解决的
  8. Tomcat服务器熟悉吗?底层原理了解吗
  9. Spring Boot了解地怎么样

14.南天

  1. Spring Cloud了解吗?
  2. Spring Boot了解吗?
  3. Zookeeper是怎么推送消息的?简单聊聊发布——订阅模型
  4. 常用的关系型数据库有哪些?MySql的左右连接有什么区别?
  5. 常用的非关系型数据库有哪些?
  6. String、StringBuffer、StringBuilder有什么区别?
  7. 线程有哪些状态?
  8. GC收集器有哪几种?
  9. 对于集合的了解
  10. 聊聊项目中的个人成就

15.Insta360

15.1 初试

  1. 简单介绍一下项目
  2. 项目的数据是怎么获取的?
  3. Gson是怎么使用的?
  4. 项目里有没有做过分页?
  5. 三级缓存的原理?LruCache的底层数据结构
  6. LinkedHashMap是什么?跟HashMap的区别
  7. 详细说说HashMap
  8. 有没有了解过事件分发的框架,例如EventBus?
  9. 聊聊Handler传递机制
  10. 谈谈ListView中的一些原理(Adapter的设计模式、复用机制、ViewHolder的用法)
  11. 简单谈谈代理模式
  12. 怎么理解弱引用
  13. 动画有哪几类?
  14. 怎么理解由Handler导致的内存泄漏
  15. 算法题:传入一个路径,规范成一个简化的路径(传入栈中)

15.2 复试

  1. 自我介绍
  2. 预期薪资
  3. 公司的一些详细介绍

16.4399

16.1 初试

  1. 简单谈谈项目
  2. 图片缓存怎么做
  3. 用什么框架实现网络请求
  4. Android中的动画种类,自定义动画怎么实现
  5. Service怎么获取Activity的数据(其实就是问进程间通信方式,当时没听出来)
  6. 了解设计模式吗,Android的一些源码有哪些设计模式
  7. Android创建线程的方式

16.2 复试

  1. 自我介绍
  2. 平时学习的方式
  3. 大学的兴趣爱好
  4. 有没有挂过科
  5. 大学的生活安排
  6. 为什么对实习单位不满意
  7. 能接受加班吗
  8. 预期薪资

17.长海

  1. 简单谈谈项目
  2. 数组和链表的区别
  3. Spring中的作用域范围
  4. 常见的排序算法,快排的规则

18.联通

  1. 实习中主要负责哪个模块
  2. 能简单讲讲Spring Cloud的各个组件吗
  3. 讲讲Java OOP思想
  4. Servlet和Jsp的区别
  5. Linux中如何查看日志(当报错的情况)
  6. 接口和继承的区别
  7. 熔断的具体功能是什么

你可能感兴趣的:(Android)