-
任何英文单词注意大小写,数字以及英文注意与中文之间有空格。
-
项目中无需介绍这个项目到底有啥功能,单刀直入这个项目中最值得说的内容。比如遇到的 Bug,自己的思考等等。但是可能很多人会说,业务很简单没什么好说的或者压根没遇到什么问题。遇到这个问题的时候,首先跳脱出业务的框架,去思考其他的问题。相信每个人都写过组件,但是对于如何设计一个好的组件来说就不是每个人都能做的事情了。
-
写项目经验最好按照这样的思路:遇到了什么问题,如何解决以及结果。
-
假设简历上的每个技术点面试官都会问到,斟酌所有的知识点,保证都能回答。
一家靠谱的公司,一定是以下几点加起来的:牛逼的核心管理层、不错的 idea、高额的融资、有前景的行业。
前两点对于求职者来说基本是黑盒,因此我们只能从后面两点来挑选公司了。
早期的融资越高,领投的公司越牛逼,那么这家公司靠谱的几率越大。因为这些公司的决策人都不是傻子,人家肯定有充足的理由才会选择相信并投钱给这家公司。
另外一个有前景的行业也是必须条件,如果你不知道啥是有前景的行业,就从与人息息相关的行业挑选吧。比如吃、住、行、教育等等。
这时候你可能会说,那我如果了解到一家公司的这些情况呢?那么「天眼查」可以完美解决你这个问题。我们可以通过这个网站详细了解到一家公司的融资、行业、竞品、法律风险、管理层、产品等等信息。
对于这个问题,我真的很想说多少经验真的和多少工资没多大关系。
相同的一年经验,有人只能拿 10K,但是有人却能拿到 20K,原因就在于两个人的技术能力不一样。
你技术好,就能比别人多要工资;你技术一般,就只能拿少点的工资,这是一个很现实的问题。所以工资只与技术挂钩,而不是你所谓的经验。
如果只是想了解行业平均薪水,直接去看当地的企业给出的工资是多少就好了。如果觉得自己薪水不符合行业平均薪水,就勇敢的跳槽呗。
对于这个问题来说,面试官考察的就是你的学习能力以及解决问题的能力。
很多人遇到这个问题会很懵逼,感觉基本啥问题都谷歌解决了。当然如果你真的有遇到不是马上能通过谷歌解决的问题便是极好的,按照描述问题、如何解决问题、结果这几个步骤来回答就行了。
那么如果你觉得你的项目真的很简单,没有什么可说的话,就按照以下的几个思路来聊这个话题。比如说你之前从没接触过某个技术,你是如何去学习这个技术的,在学习的过程中遇到了什么问题,怎么解决的。比如说你写了这个项目,自己有了什么感悟、想法。
因为这道题目面试官不是说一定要听你讲出项目里到底遇到了什么难的问题,而是考察你的学习能力以及解决问题的能力。即使你没有什么干货可以说,说点自己的学习过程、挫折、想法感悟也是可以的,毕竟总比说感觉都很简单来的好。
Java相关
1.容器(HashMap、HashSet、LinkedList、ArrayList、数组等)
2.内存模型
3.垃圾回收算法(JVM)
4.垃圾回收机制和调用 System.gc()的区别?
5.类加载过程(需要多看看,重在理解,对于热修复和插件化比较重要)
6.反射
7.多线程和线程池
8.设计模式(六大基本原则、项目中常用的设计模式、手写单例等)
9.Java 四大引用
10.Java 的泛型
11.final、finally、finalize 的区别
12.接口、抽象类的区别
(Java相关答案地址)
Android 相关
1.自定义 View
2.事件拦截分发
3.解决过的一些性能问题,在项目中的实际运用
4.性能优化工具
5.性能优化 (讲讲你自己项目中做过的性能优化)
6.Http[s]请求慢的解决办法(DNS、携带数据、直接访问 IP)
7.缓存自己如何实现(LRUCache 原理)
8.图形图像相关:OpenGL ES 管线流程、EGL 的认识、Shader 相关
9.SurfaceView、TextureView、GLSurfaceView 区别及使用场景
10.动画、差值器、估值器(Android中的View动画和属性动画 - 简书、Android 动画 介绍与使用)
11.MVC、MVP、MVVM
12.Handler、ThreadLocal、AsyncTask、IntentService 原理及应用
13.Gradle(Groovy 语法、Gradle 插件开发基础)
14.热修复、插件化
15.组件化架构思路
16.系统打包流程
17.Android 有哪些存储数据的方式。
18.SharedPrefrence 源码和问题点;
20.sqlite 相关
21.如何判断一个 APP 在前台还是后台?
22.AMS 、PMS
23.Activity 启动流程,App 启动流程
24.Binder 机制(IPC、AIDL 的使用)
25.为什么使用 Parcelable,好处是什么?
26.Android 图像显示相关流程,Vsync 信号等
(Android相关答案地址)
源码理解
-
Glide :加载、缓存、LRU 算法 (如何自己设计一个大图加载框架) (LRUCache 原理)
-
EventBus
-
LeakCanary
-
ARouter
-
插件化(不同插件化机制原理与流派,优缺点。局限性)
-
热修复
-
RXJava (RxJava 的线程切换原理)
-
Retrofit (Retrofit 在 OkHttp 上做了哪些封装?动态代理和静态代理的区别,是怎么实现的)
-
OkHttp
(源码相关答案地址)
算法与数据结构
-
时间复杂度 / 空间复杂度
-
常用的排序算法有哪些?
-
字符串反转
-
链表反转(头插法)
-
如何查找第一个只出现一次的字符(Hash查找)
-
如何查找两个子视图的共同父视图?
-
无序数组中的中位数(快排思想)
-
如何给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
-
二叉树前序、中序、后序遍历
-
最大 K 问题
-
广度、深度优先搜索算法
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
学习分享
在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
七大模块学习资料:如NDK模块开发、Android框架体系架构…
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
这份体系学习笔记,适应人群:
第一,学习知识比较碎片化,没有合理的学习路线与进阶方向。
第二,开发几年,不知道如何进阶更进一步,比较迷茫。
第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!
系统,我平常自己也会经常研读。
[外链图片转存中…(img-22gEHton-1711353878702)]
七大模块学习资料:如NDK模块开发、Android框架体系架构…
[外链图片转存中…(img-shTMmrfJ-1711353878702)]
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
这份体系学习笔记,适应人群:
第一,学习知识比较碎片化,没有合理的学习路线与进阶方向。
第二,开发几年,不知道如何进阶更进一步,比较迷茫。
第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!
由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示 。如有需要获取完整的资料文档的朋友点击我的GitHub免费获取。