首页 > OPPO安卓面试记录
头像
MeteorChen
编辑于 2020-08-10 17:08
+ 关注

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)

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

更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐