前言
面试的姐姐人真的很好了
问的很基础 但是我太菜了
我基本什么都没答上来
还问了我40分钟
一面
-
自我介绍
-
问项目
我的第一个项目是编译器 几乎是自己写的。。。一点都没问。。。我挺期待问这个的
第二个项目课设从GitHub撸来改改的sprintboot+vue的web登陆界面(我真不会Java 也不会前端只能改改
项目凑数的就别放上去,不然好尴尬呀。。。
cpp
struct A
{
char a;
int b;
char c;
int *d;
};
sizeof(A);
sizeof(A)的大小(没回答上来
-
是否知道 数据存储对齐问题(不知道
-
结构体存储在哪里?读取结构体需要读取多少次?(最开始不知瞎答的静态区 其实应该是堆区 结构体的存储和类一样的 当时紧张这也没答上来
-
cpp的编译过程是什么(先生成汇编 再生成目标程序.o 最后链接生成exe 漏了预处理的过程 然后具体的没讲出来
-
cpp编译的过程有哪些优化
-
数据结构(一开始还信心满满
-
有没有了解过git用的什么数据结构(没有。。。
-
git有个功能是修改已经提交之后的分支 你觉得应该用什么数据结构(口胡 红黑树吧
-
为什么用红黑树(口胡 因为他快 说了AVL和红黑的优缺点
-
map和数组array的读写效率(我的回答是读写map是logn 数组读写是1 其实我没太理解这里想问的什么东西 她说她的理解和我不太一样
-
有没有了解哈希函数(最开始说成了哈希表
-
哈希函数发生冲突怎么办(把发生冲突的用链表 链在后面
-
如果一个值出现的冲突过多 退化成了on怎么办(我又不知道了
计算机网络
-
介绍一下http(我又不知道怎么说了 只能把http和https的区别说一下 然后http就很快
-
https是如何实现加密的(通过ssl加密 然后就不会了 然后还口胡了他们是对称加密。。。这是错的
-
介绍一下dns解析的过程(只记得在在本地找不到就去服务器找
-
如果本地服务器的数据过期了怎么办(不知道
-
了解http返回的值的含义吗(100 200 300 302和301是什么 403 404 500
-
了解ttl是什么吗(不知道
-
讲一下三次握手(巴拉巴拉
-
为什么需要三次握手(巴拉巴拉 这两个问题老是答得不流畅 脑子能想出来说不出来 下次得自己写好稿子背好
-
如果有10个数据需要传输 要建立十次tcp传输吗(对呀 他是点到点的传输。。。我好菜。。。
-
有没有办法快一点(用UDP?。。。面试官都笑了 那不就不安全了吗
-
有没有了解tcp连接的复用(不知道。。。
操作系统
-
有没有了解虚拟内存和物理内存(物理内存是本身的内存 虚拟内存是硬盘上的空间 用来存放页面 通过页面置换算法来操作
-
讲一下LRU(巴拉巴拉
数据库
-
数据库多个用户访问时发生冲突怎么办(让他们一个个来。。。
-
有没有别的方法(加锁
-
你了解哪种类型的锁(互斥锁。。。没了
手撕代码
- 简单的一道归并排序。。。
本来以为挂了 然后今天下午收到了二面通知
二面
础知识部分的忘了,反正就是各种挖源码,问原理
-
介绍一下项目
-
怎么理解面向对象
-
tcp,udp区别
-
hashmap原理是啥看过源码没有,我就想考察你有没有看过源码
-
handler看过源码是吧,讲一讲,一个线程能不能有多个handler?靠什么实现的?
-
自定义view的流程说一遍,知道view的绘制原理吗
-
说说java里的线程同步,随便说
-
强调看源码在工作中的重要性
三面
-
handler用处(√)
-
handler收到多个外部的消息,怎么把消息分发出去。(√)
-
handler的post和sendmessage方法有什么区别
-
有了解过handlerthread这个类吗?原理是什么,为什么可以在子线程使用handler?
-
安卓四大组件(√)
-
service和activity的通信方式是怎么样的?(√)
-
bundle底层实现原理是什么样的?
-
service启动方式,区别?(√)
-
bindservice和startservice生命周期是怎么样的?(√)
-
startservice多次,哪个生命周期会被重复调用?(√)
-
activity启动模式?异同?(√)
-
除了在代码里可以配置启动模式,还有什么方式可以配置启动模式?
-
安卓触摸事件分发流程?(√)
-
有横向滑动和纵向滑动,怎么解决这个冲突?
-
怎么判断他是向哪边滑动的?
网友评论