去 x 浪面试,面试官竟然不知道 okhttp。
面:用过网络框架吗,底层原理是什么? 我:okhttp。然后把连接池复用,拦截器,请求队列这些点说了,说完一直问我底层,我只能想到说到底层是用 okio 来处理那些报文数据。 面:底层没有 httpurlconnecttion/httpclient 吗 我:okhttp 是新出的代替这俩的。
这时我才知道他好像不知道 okhttp。然后我想说一下比如 volley,但是他直接跳过了这个问题。
我觉得这个问题给他造成很不好的印象,后面问了几个简单的问题就让我回去了。
我比较惊讶一点都不关注开源库吗?新技术的走向?
1
Cheons 2018-05-25 10:24:46 +08:00 via Android
缝三年补三年 缝缝补补又三年😂
|
2
p2pCoder 2018-05-25 10:27:59 +08:00
我觉得他可能想问的你的是更底层的东西,特别是网络协议相关
|
3
firefffffffffly 2018-05-25 10:47:55 +08:00
可能他问你 httpurlconnecttion/httpclient 是希望你介绍一下 okhttp 实现 socket 的使用和对 http 协议解析的部分
|
4
lauix 2018-05-25 10:52:18 +08:00
很简单嘛,
告诉他 okhttp 写了 HTTP 头,通过 TCP 短连接,请求服务端。 然后服务端收到 HTTP 请求,判断请求头和路由,然后找到指定的接口文件,读取内容,返回到 Android okhttp 接收变量就是了。 |
5
icris 2018-05-25 10:56:34 +08:00
感觉问的没毛病啊,okhttp 底层自然不是 okhttp,okhttp 底层也可以是 httpurlconnecttion ( com.squareup.okhttp3:okhttp-urlconnection )
|
6
nicevar 2018-05-25 11:24:33 +08:00
开源库那么多,哪有时间关心,同一类型的了解一个就差不多了,像 okhttp 和 volley 这种不一定都用,很多公司都是自己写的一套
|
7
xingda920813 2018-05-25 11:34:07 +08:00
楼上都想的太高端了, 就这个面试来看, 大概率是技术栈陈旧, 基本不了解 OkHttp 的, 仅此而已.
|
8
TaoSama 2018-05-25 11:38:14 +08:00 via Android
这很正常啊 公司不都是可以 work 就行 who cares 最新技术啊
|
9
hyyou2010 2018-05-25 11:49:10 +08:00
直接问他所谓的底层指什么,从 tcp 连接开始说吗?还是从 http 协议开始说?
考这些库或框架远不如考 http 协议。 |
10
DeweyReed 2018-05-25 12:28:08 +08:00
楼上说的对,就是技术没及时更新。面试官都是说 httpurlconnecttion/httpclient,估计用的是自己造的轮子。
|
11
leekafai 2018-05-25 12:41:54 +08:00
他想问你字节码,你确实答得不到位(滑稽
|
12
sampeng 2018-05-25 13:17:53 +08:00
?这是炸鱼么。。。
我面 android 也这么问啊。 按我的思路就是如果这个题你往下答,就可以慢慢扩展到 http,tcp 等更深入的问题。如果只是干涩的询问 tcp 和 http 原理是没有任何作用,说明不了太多问题。如果一直在纠缠项目本身:心里就一句评价:“只知晓表面项目技术细节,没有去深入理解内部机制”。 人家都反复问你底层是什么。你还一直答非所问。 我没搞懂面试官哪一点表现出了不了解热门项目了 |
13
WinMain 2018-05-25 13:42:07 +08:00
楼主应该也只是会“用” okhttp,如果能深入了解的话,给面试官讲讲,其实很加分。
|
15
MrLeion 2018-05-25 14:41:07 +08:00
表示面试官问的没毛病。
|
16
MarcoM 2018-05-25 14:58:23 +08:00
。。。已经从原生转到 react 的了解一下
|
17
ryan2333 2018-05-25 16:04:02 +08:00
面试官问的有没有问题我不知道,因为具体的面试官是如何问你的 你没有说清楚...
倒是你这个标题 主观上就给你这个面试官定了性.......你是过来找认同感的嘛? |
18
0x11901 2018-05-26 00:30:32 +08:00
现在 Android 问这种问题了么_(:_」∠)_下次面试的时候也问问 tcp 吧
|
19
xiiix 2018-05-26 02:42:21 +08:00 via Android
公司里面的成熟项目,加个新库都要慎之又慎,能自己实现的绝对不会用第三方(当然 package size 特别小的除外),升级个库,版本什么的一堆坑要解决。。。所以大多数时候都是能 work 就行,哪来什么新技术。。。
|
20
Venjer OP @xiiix 这个我知道,项目当然稳定第一。项目用不用和他知不知道两码事。另外 okhttp 也不是什么特别新的东西,Android 4.4 官方内部实现都是用 okhttp 替代了,现在都快 9.0 了。
@0x11901 我给他讲 okhttp 先从 tcp http 讲的。 @ryan2333 如何问我的你不看帖子吗 写的很清楚了。给我的第一直观感觉就是这样。想到啥就这么写了。 @WinMain 讲了 人家不为所动啊。心不在焉没看上我呗。 @sampeng 我是挺想往下答呢,人家稍微问一下就跳过去了。okhttp 这种库你说人家表面?我说一个网络框架的原理不就是从他的源码说么,说了一大堆原理人家根本没听懂,那你就说没听过 okhttp 呗,没听过我换一个说。惜字如金的面试官,我还能怎么说。 @hyyou2010 tcp 我也不是没提到。一般这种不就是问网络框架怎么封装的。他是想问个基于 httpclient,结果我说了个 okhttp,我万万没想到他不知道。 @xingda920813 我同意你的观点。 |