OPPO安卓面试记录

1.一面(2020.08.02)

  • 1.存储数据的几种方式:SharePreference、数据库、文件

  • 2.使用安卓数据库时,有哪些生命周期方法:onCreateonUpgrade

  • 3.如果要给数据库增加字段,需要怎么做?

    • 方法1:通过alter table add column来做

    • 方法2:先给旧表改名,然后建一张新表包含新的字段,再将旧表数据迁移过去,最后删除旧表

  • 4.数据库读写是线程安全的吗?(当时说的是,是线程安全的,这个锁的机制应该交给数据库去做,错了)

    • 读操作是线程安全的:多个线程或进程读取同一个数据库的内容,是可以的。

    • 写操作多个线程操作会抛异常(我感觉这里不能直接说线程不安全吧,因为SqlLite确实是有锁机制的):在多进程或多线程中使用sqlite,同时操作同一个数据库的话,会导致异常抛出。不同线程或实例化多个SqliteOpenhelper来操作同一个数据库,也会导致同样的问题。但不同线程使用同一个sqliteopenhelper来获取SqliteDatabase进行操作的话,是可以的。

  • 5.SharePreference的实现原理,是不是线程安全的,apply和commit有什么区别

    • commit:

      • commit方法是有一个boolean的返回值

      • 当数据变化进行存储时是一个原子性的操作

      • 当两个editor对象同时对一个共享的preferences参数进行操作时,永远都是最后一个调用commit方法的editor变更了最后的数据值

      apply:

      • apply方法是没有返回值的

      • 当两个editor同时对preferences对象编辑时,也是最后一个调用apply方法的对象编辑数据

      • apply的提交操作也是原子性的,但是只提交到内存,速度更快

  • 6.Handler机制

  • 7.HashMap、HashTable、ConcurrentHashMap的原理

  • 8.计算机网络五层模型

  • 9.三次握手过程,为什么需要三次握手
  • 10.http状态码
  • 算法题:有1000万人,有10000份新冠检测试剂,如何尽可能多的检测出来得新冠的人数

2.二面(2020.08.06)

  • 说http1.1和1.0的区别

  • 说http2.0与1.1的区别

  • http3.0了解吗

  • View的事件分发流程

  • 了解安卓最前沿的技术有哪些?

  • 怎么看待大前端

  • 反问,问对我有什么建议:知识的深度决定你的天花板,广度决定你靠什么吃饭

3. Hr(2020.08.08)

大概问了项目、性格方面的一些问题。

#安卓工程师##面经#
全部评论
楼主拿到offer了吗
1 回复
分享
发布于 2020-08-20 18:52
楼主你好,请问你是实习、校招还是社招?
点赞 回复
分享
发布于 2020-08-08 21:09
阅文集团
校招火热招聘中
官网直投
请问 http状态码算法题怎么做?
点赞 回复
分享
发布于 2020-08-08 22:26
请问算法题是什么思路阿
点赞 回复
分享
发布于 2020-08-10 07:43
请问算法题需要实现吗
点赞 回复
分享
发布于 2020-08-10 09:16
新冠检测试剂是只能一人一份吗?
点赞 回复
分享
发布于 2020-08-14 21:00
楼主二面完多久收到hr面通知的呀
点赞 回复
分享
发布于 2020-09-16 16:04

相关推荐

4 44 评论
分享
牛客网
牛客企业服务