字节跳动抖音安卓客户端日常实习 3+1 面经(已 OC)

一二面和 HR 面都是凭印象回忆的,可能会漏掉一些问题。

一面(1 月 13 日,68 min)

提问

  1. 自我介绍
  2. 简单讲讲你项目的整个设计过程
  3. 你提到项目中用的是 MVVM 架构,讲讲你对 MVVM 的认识? MVVM 的优点有什么呢? MVP 中 Model、View 和 Presenter 的持有关系是怎么样的? MVVM 中的持有关系呢? MVVM 中各个层在 Android 开发中的对应关系? 你的 MVVM 用到了 Jetpack 里的 ViewModel,那么它是如何保持数据的呢? ViewModel 是怎么做到在 Activity 销毁重建新实例之后还能保持不变的呢?
  4. 你有提到说用的 Kotlin,那讲讲 Kotlin 用起来相比 Java 的好处? 如果用 Kotlin 去调用一个具有返回值的 Java 函数,那么这个返回值是可空的还是非空的呢? Kotlin 中的可见性和 Java 是不一样的,分别讲讲? 你说你用到了协程,讲讲你对于协程的认识? 你提到了协程分为有栈和无栈两种。它们的区别是? 这个“栈”里都保存了什么信息? Kotlin 的协程是无栈的,那这些信息是怎么保存的? 协程该怎么取消呢? 取消协程之后,里面的工作会立刻停止吗? 不会的话,该怎么停止呢? 调用了 cancel() 之后协程的状态变化? 如果子协程中没有通过判断协程状态来决定是否终止工作,那么取消父协程之后会是怎样的? 协程会不会和线程一样有共享变量冲突的问题呢? Kotlin 中有一个 inline 关键字,讲讲你的了解? 除了通过内联函数减少函数调用的开销,还有什么用途吗? 如果现在有一个高阶函数被 inline 修饰,我不想让它的参数被内联,该怎么办呢? 刚开始的时候这个问题没太听懂,所以就答了不知道。一面结束之后翻书才看到 noinline 关键字。 Kotlin 是可以跨平台编译的,讲讲你的了解? 你刚才提到的编译到“原生平台”,指的是什么? 现在如果让你用 Kotlin 写一个跨平台的项目,你该怎么做?
  5. 浏览器里从输入一个网址,到最终看见网页,发生了什么? HTTP 是应用层协议,讲讲是如何建立的? 你说底层是 TCP,那讲讲 TCP 的三次握手? 如果现在要使用 HTTPS,连接的建立会发生什么变化呢? 客户端是如何根据 IP 地址找到服务器对应的主机的呢?

 

算法

LeetCode 518. 零钱兑换 II

题目开始理解错了。最后这个题没完全做出来,面试官让我讲了下

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值