首页 > 技术文章 > mmkv跨进程,程序员怎样优雅度过35岁中年危机?值得一读!

wftboke 2021-08-21 17:07 原文

前言

从16年毕业至今,就职过两家公司,大大小小项目做了几个,非常感谢我的两位老大,在我的android成长路上给予我很多指导,亦师亦友的关系。

从年前至今参加面试了很多公司,也收到了几家巨头的offer,还有其他公司的。总结下经验,也是对过去的一个回顾和总结吧。

大厂面试真题

面过的公司:美团(意向书已拒)、B站(意向书已拒)、腾讯(二面挂)、百度(意向书已拒)、网易云音乐(意向书已拒)、拼多多(拼越计划已oc)

其他:字节(转正通过已拿意向书)

美团

一面

1、霍夫曼编码???(不记得)

2、IP地址怎么分类的、划分方法?(只知道IPv4、IPv6)

3、快速排序的思想

4、Java多态的原理

5、Java反射(只讲了一个基本概念)

6、讲一下ConcurrentHashMap的底层原理

7、ContentProvider干什么用的?自己有用过吗?

8、进程、线程的区别

二面

1、handler机制源码

2、threadlocal原理

3、Android IPC

4、Android多线程的实现方式

5、Binder机制原理

6、什么是面向对象

7、面向对象比面向过程好在哪里

三面

聊项目

B站

一面

1、怎么保证线程安全

2、进程之间怎么通信

3、HashMap源码、与HashTable的区别

4、泛型擦除

5、线程池的原理、用法

6、进程的调度算法

7、信号量讲一下

8、自己实现一个handler(写到后面有点晕了,对面试官说抱歉 我现在脑子有点晕 写不出来 面试官说 没事 可能是我没表达清楚 咱们换下一个题)

9、了解哪些数据结构,重点介绍两三个

10、讲一下堆排序的原理

11、手写堆排序

12、算法二叉树的直径

二面

1、红黑树的定义

2、红黑树的好处

3、接口和抽象类的区别

4、java内存分区

5、堆和栈的区别,可能出现什么问题

6、静态变量放哪里?方法参数放哪里

7、类加载机制

8、手写快排

三面

1、Handler机制

2、activity的生命周期和切换

3、Android怎么跨进程通信

4、垃圾回收算法

5、Gc roots的对象

6、问我你是不是看过深入理解java虚拟机那本书,我说是

7、什么情况下发生死锁

8、怎么检测内存泄漏

9、引用计数法不能解决循环用的问题,但我想用引用计数法怎么办(智能指针)

腾讯

一面

1、http和https

2、抓包的原理

3、tcp和udp区别

4、tcp三握四挥

5、线程和进程的区别

6、线程安全的实现方法

7、synchronized原理

8、上面与可重入锁的区别

9、可重入锁的应用场景

10、算法考了一个单调栈,具体题目忘记了

二面

一直说我项目经历不多,后面的面试也像是例行公事一样,问了几个常规题凑了三四十分钟......也是大可不必,之后的腾讯面邀都直接拒绝了。

1、tcp和udp的区别

2、线程、进程

3、死锁的定义

还有其他一些简单的常规题不太记得了

百度

一面

1、面向对象的三个特征

2、输入一个网址的全过程

3、讲一下知道的http状态码

4、内存泄漏

5、会哪些设计模式?写一下单例,不用synchronized

6、rv和lv的区别

7、rv的源码

8、算法二叉树的深度

二面

1、hashmap源码

2、volatile的原理

3、上面与synchronized的区别

4、讲一下tcp拥塞控制

5、滑动窗口是什么,有什么用?

6、==和equals

7、hashcode作用

三面

聊以往的各种经历

网易云音乐(很喜欢抠细节)

一面

1、padding和margin的区别

2、relativelayout布局怎么让一个控件放在正中间

3、clipChildren属性作用

4、clipToPadding属性作用

5、知道点九图吗?一般什么情况会用到

6、activity之间怎么传数据

7、从a activity打开b activity生命周期怎么变化的

8、service的启动方式

9、handler机制

二面

1、Aidl

2、http和https的区别

3、接口和抽象类的区别

4、post和get的区别

5、设计模式

6、算法判断是否是回文链表

如何做好面试突击,规划学习方向?

面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。

学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。

同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节

image

在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。

image

点击:《Android架构视频+BAT面试专题PDF+学习笔记》即可免费获取~

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

推荐阅读