下午去面试了一家无人机相关的公司。先是一份笔试题,然后再是面试题。
笔试题分成一些选择题,简答题和代码手写题。
选择题
范围很广泛,包括了
1.设计模式中的一些概念,完全不会;
2.面向对象中的一些“范式”的概念,应该是“软件工程”中的内容;
3.网络协议相关的,如ping得到本地的地址,但是无法ping通局域网内其他的设备的地址,选择原因;
其他的想不起来了。
简答题
- 6L和5L的水桶,如何得到3L的水;
- 跨进程通信的方式有哪些;
- jni是什么,有什么作用;
- 线程同步的方式有哪些;
- 多线程是不是一定比单线程快;
其他的想不起来了。
手写代码题
感觉面试时,手写代码的题目就是坑。难道开发过程中,你这家公司的代码也是靠手写的?
-
中文:有4个线程,线程A随机 每隔 20~200毫秒,依次发布 0~100的数,记为N,如果 N%2==0,那么交给线程B打印,如果N%3==0,那么交给线程C打印,否则交给线程D打印,要求打印的数据是有序的。:没写
-
英文:输入 122344666,输出 1122132436:
即个数+值,或者是值+个数,连续的那种
1 22 3 44 666
1 2 1 2 3
-->11 22 13 24 36 这种形式,中间没有空格 -
英文:参考这道题:二维矩阵中1所构成的块个数(孤岛问题):做不出来
面试题
- 线程池的构造方法的参数,submit()一个任务的时候,到底发生了什么事情,流程是怎么样(后面的也不会);
- java中常见的数据结构,如HashMap(这个只知道有个散列表,其他的不会,如果是C语言的话,还是能说上来一点点):
- 应用的启动流程,中间由哪些组件调用了(这个也不会,缓缓地没有底气地说出了宅狗这个词,没了,其实要了解启动过程很简单的,就在Activity的onCreate()中打印个loge(,,new Exception())即可;
- 源码开发中改了那些framework,说了定制了加了个服务,以单独一个apk的形式,然后在启动过程中启动了这个服务;然后面试官说不是,这样子也不算加服务,要做到想am,pm的那种;
- 了解了哪些网络请求框架,如okhttp,retrofit(我只是简单用过,没有仔细阅读相关的源码自然也说不上来);
其他大概也没想起来。
网友评论