扯犊子之前,先放一张面试图吧:
求职?求生?Start…
说来也怪,从入职的第一天就感觉很不难受,而后缓缓产生来到的念头,随后转变思想,回去打算依照步骤持续学习,防止下次求职难堪。奈何。
过来的事儿,不想再说太多了,挺坑的,也挺事实的。
孰是孰非,深究无心,备好行囊,持续登程~
感兴趣的能够点击查看:
- 面试|2021 菜鸟金三银四铜五 Android 被锤历程出炉 …
其实上家公司带来的影响蛮大的,可能也算是成长的代价吧,还好。
原本想着,找个工作,而后好好喷喷,将那副丑恶的嘴脸曝光。直到现在确定入职公司了,电脑背后,却不晓得说啥了。
人在做天在看吧,好自为之。。。
本次实在记录面试历程,心愿对求职的你有一些帮忙。。。
干货面试好文
不错的面试纲要:
- https://juejin.cn/post/684490…
- https://www.kancloud.cn/aslai…
另外还有一些营销号公布的一些技能点,也能够作为面试温习参考。
上面有本人目前整顿的面试文档,后续会找个适合的形式好好整顿一波。
- 集体飞书文档整顿地址:https://aorni1vik4.feishu.cn/…
2021 – 09 – 29
又从新开始面试,刚开始有点蒙,不过缓缓就会好起来的~
阿凡提 – 供应链物流 避坑
有些无奈,我的项目焦急缺人,草草完结面试环节。
到楼下抽了两根烟,仍然处于懵逼环节。
- 简略介绍下我的项目经验。
-
相熟 Kotlin 吗?简略说下 let、apply、run 区别。
- 它们是 Kotlin 提供的作用域函数,也就是在对象的上下文中执行代码块。
- 能够从函数内应用辨别进行了解:this、it
-
this:
- with: 内联函数,函数内应用 this 来拜访该对象属性办法,返回值为函数块最初一行或指定的 return;
- run: with、let 结合体,能够通过 this 来拜访该对象属性办法,也能够通过像 let 一样进行对象对立判空解决,返回值为函数块最初一行或指定的 return;
- apply: 和 run 类似,区别在于返回的是传入对象自身;
-
it:
- let: 扩大函数,能够对被扩大的对象进行对立判空,函数内通过 it 拜访其对象属性办法,返回值为函数块最初一行或者指定的 return 表达式;
- also: 和 apply 相似,不同是函数内通过 it 拜访该对象,同样返回为传入对象。
- 你们的网络申请异步回调怎么解决的?
-
Kotlin 协程用过吗?Kotlin 协程深入研究过吗?
-
轻量级线程,创立协程不须要调配新的线程。默认应用曾经定义好的线程池,智能调度。并且协程提供挂起(suspend)和复原(resume)操作。
- 挂起(suspend): 挂起以后执行的协同程序,并且保留此刻的所有本地变量。协程外部是应用状态机来治理协程的各个挂终点;
- 复原(resume): 从它被挂起的地位继续执行,并且挂起时保留的数据也被还原。
- Kotlin 协程实现原理: 挂起与复原
-
-
你是怎么做的 Apk 瘦身。
- 首先通过 Android Studio 提供的 Apk 分析器去获取以后 Apk 包中各个占比状况,而后依据占比进行对应解决。次要分为以下几个方面:
- So 方面:对标微信,查看对应兼容 So 状况,这里排除 So 动静加载形式,最初抉择只保留 arm64-v8a。
-
资源方面:这块内容较多,可分状况举例说明。
- 开启 lint 严苛模式,物理移除用不到的资源文件,记得独自 git commit;
- 有损压缩 png 图片 TinyPng。我的项目较大的状况可通插件的形式进行解决压缩,次要是在 processDebugResources Task 后进行对应资源解决;
- 局部 icon 类型图片替换 svg,留神应用时须要通过 compat 形式应用,src 低版本会有兼容问题;
- 局部 gif、png 降级 WebP 格局图片;
- 采纳微信资源压缩,次要是通过将资源门路变短的形式以达到放大 Apk 大小的形式。AndResGuard
- build 开启语言限度,代码、zip 压缩等惯例根底配置;
- 限度以后 app 反对国家语言。
-
代码方面:
- 代码优化,缩小冗余代码;
- 配合以上 build 惯例根底配置。
- 依赖注入框架 Dagger 用过嘛?
- 地图相干开发过吗?都做过哪儿些货色?你做过地图行程门路布局吗?
- 大略什么时候能入职?加班怎么看?
其实最好还是线上沟通,后续看状况抉择是否进行二次线下,这样至多对于单方而言,老本更低,面试者也不须要来来回回很多工夫破费在路上,后果草草了事。
明日世界 – 直播 / 社交
进门须要写面试题,分为单选、多选、简答。前两项都是网上多年之前的老题目,我这预计没能全对。
-
用你最相熟的排序算法对下列排序 {1,3,3,2}
- 双指针、冒泡、递归
-
说下 Java、Android 中常见的内存泄露的形式和解决办法
-
常见的内存透露形式:
- 非动态外部类、匿名外部类
- 动态的 View
- Handler
- 监听器(各种须要注册的 Listener、Watcher 等)
- 操作资源对象没敞开
- 属性动画
- 低版本的 WebView 会产生内存透露,次要是持有 Context 导致,高版本已修复。Android-WebView 还会存在内存透露吗?
-
解决办法:
- 外部类加 static,外部应用外部类对象时,同时须要设置为弱援用;
- 及时进行对应操作的回收操作,例如:IO 流、勾销注册监听、敞开动画等;
- 如果须要兼容这部分低版本机型,能够通过首先移除 WebView 后续通过 WebView 的 destroy 进行对应销毁解决。
- Android 中常见的内存泄露及解决办法汇总
-
据说是面试官是九秀直播的负责人,后期车载业务方面多聊了一会儿,剩下技术蛮深刻的。
- 自我介绍,公司次要负责哪儿方面业务的开发。
- 省略后期探讨的车载相干的整个业务流程以及相干细节。
-
假如当初有这么几个 Activity,A 为 singTask,B 为 singTop,当我从 A 启动 B,而后当初点击 Home 键返回后盾,随后点击桌面 Icon 启动 App,那么这时候出现在用户背后是哪儿个页面。
- A 页面。
- 你晓得当点击 Icon 启动 App,零碎如何将利用从后盾转为前台的么?
-
HashSet 和 HashMap 的区别,从数据结构方面来形容。
- HashMap 1.7 版本之前底层数据结构为:数组 + 链表,1.8 后变为 数组 + 链表 + 红黑树。因为 HashSet 底层也是 HashMap 实现,所以两者底层数据结构统一。
- 你能说下对 Bitmap 的了解么?
-
如何优化 Bitmap 在内存中占用的大小呢?
- 首先拓展如何计算 Bitmap 所占用内存大小:Bitmap 宽度(px) Bitmap 高度(px) 像素点占用字节数
-
优化思路:
- 通过采样率压缩扭转 Bitmap 宽高;
- 通过 matrix 压缩(createBitmap)Bitmap;
- 扭转 Bitmap Config 为占用字节更少的 ARGB_4444 或者 RGB_565
- 性能优化:Bitmap 内存大小优化的几种常见形式
-
ARGB_8888 在内存中占比是最大的,还是最小的?
- 最大的。ARGB_8888 占用 4 个字节,ARGB_4444 和 RGB_565 占用 2 个字节。
-
如何实现 Bitmap 的复用。
- 借助 Lru 算法以及弱援用
- 你晓得你在应用帧动画的时候为什么内存居高不下吗?如何进行优化呢?
-
一张图片转换为 Bitmap 对象,你晓得这外面寄存的都是什么信息么?
- 以后图片色彩值,寄存类型取决于应用的是什么类型的 Config。
- Bitmap 存储信息的数据结构是怎么的?
- 我创立一个对象,当我不应用的时候,并且将它置空,这时候就会立刻被回收吗?
- 当初有这样的一个需要,我在 Activity 中的 View 中增加一个浮窗小球,并且让其随着手指挪动,你有什么形式实现?挪动点击的时候,又该如何解决?
- 在自定义 View 中,你是会在外部重写 onTouchEvent 还是在外层进行解决?
-
外部重写 onTouchEvent() 和外层调用 setOnTouchListener() 有什么区别?
- onTouchEvent(): 解决屏幕上的操作,例如点击、长按、滑动等;
- setOnTouchListener(): 获取某一个控件的点击监控。
-
两者之间区别:
- 外层 setOnTouchListener() 优先级要高于外部 onTouchEvent();
- setOnTouchListener() onTouch 返回 true(事件被生产),则 onTouchEvent() 不会执行。反之,onTouchEvent() 才会执行。
- Android onTouchEvent 和 setOnTouchListener 中 onTouch 的区别
- onTouchEvent 如何实现自定义 View 的点击操作?
- 假如我在自定义 View 中外部生产掉了这个事件,那么我在外层去设置 setOnTouchEvent 监听,还能监听到吗?那么如果在外部不生产这个事件,外层监听还无效吗?
- 你能大略的说下 RecyclerView 的用法吗?
- 大略说下 RecyclerView 的缓存机制。
- 假如我当初的 RecyclerView 有三种 item layout,当初我开始滑动,那么这期间的缓存变动是怎么的?
- 假如当初有五条数据,我往上滑动一条,这时候缓存变动是怎么?
- 你晓得 RecyclerView 的一级缓存容量多大吗?
- 假如,我当初又新增了一种 item layout,那么这个新的 item layout 是什么时候会被缓存?
- 假如我当初 item layout 只有一种,我页面上显示了五个 item,那么这个时候 RecyclerView 的一级缓存中寄存了几个 ViewHolder?
-
假如我当初的 App 存在如下两个问题:
- 启动比较慢
- 利用应用过程中会呈现卡顿
针对以上两个问题,联合你之前的教训,你会通过哪儿些方面去解决这两个问题?
- 如何精准定位具体卡顿中央呢?通过哪儿些形式?维度?
- 你是如何检测屏幕卡顿?思路、计划简述。
- 具体到职工夫和到职起因。车载目前团队配比怎么?
- 你 MVVM 用的多吗?
- 你对加班怎么看?冀望薪资,入职工夫。
早晨回家的时候 HR 小姐姐打来电话,大略沟通了半个小时左右吧。聊了很多方面,具体印象不太深了。
小姐姐声音蛮好听的,轻声细语的,很温顺,嗷嗷嗷~
后续貌似是入职工夫较晚,还是业务什么起因,临时未能牵手胜利。
问了下敌人,之前面试也是被同样的理由拒绝的,ummm。
害。
达不溜科技 – 短视频 / 社交
上家面试有点超时,后续找个哈啰,刹车还不好使,最初还跑偏了。
公司正在装修,面试过程中被装修工人打搅了几次。
面试官文质彬彬的,聊的整体还对付吧,会的都说了,不会的也坦然阐明了。
- 你是自学的开发吗?自我介绍。
- 大略介绍下公司的我的项目和状况。
-
简述 Activity 启动模式。
- Activity 有四种启动模式,别离为:standard、singleTop、singleTask、singleInstance。
- standard: 默认启动模式,每次都会新建一个 Activity 实例放入栈中;
- singleTop: 栈顶复用模式,以后 Activity 位于栈顶,不会创立新的 Activity 实例,而是会回调 onNewIntent()。反之,以后 Activity 位于栈内非栈顶,成果同 standard;实用于推送详情页
- singleTask: 跳转该模式的 Activity 时,首先会在工作栈中查看是否存在该实例,如果存在则会将位于这个 Activity 实例上的 Activity 全副完结,并将以后 Activity 位于栈顶;实用于主页
- singleInstance: 新创建一个工作栈,独自寄存该 Activity。
- 具体介绍下 Handler。
- UI 页面是如何进行回收的呢?
- 简略形容下你理解的垃圾回收。
-
内存中的那儿些中央能够作为 GC root?它可回收的一些点。
- Java 虚拟机栈(局部变量表)中援用的对象;
- 办法区中动态援用指向的对象;
- 仍处于存活状态中的线程对象;
- Native 办法中 JNI 援用的对象。
- 垃圾回收不当会造成内存透露,你是如何检测和治理的?
- 假如用户设施上呈现解体闪退的状况,你是如何能理解到这个状况呢?
- OkHttp 和零碎提供的网络拜访框架有什么区别?
- RecyclerView 和 ListView 区别。
- 当用户点击桌面 icon 启动 app,这个过程是怎么样的?
- 针对启动 app 的工夫又是如何优化的呢?
- 针对 UI 卡顿有没有心得体会?比如说列表卡顿?动画卡顿等?
- 短视频缓存这块做过哪儿些操作?
- MVC、MVP 和 MVVM 有什么区别?
- Flutter 次要你做了哪儿些内容?
- 大略说下你是怎么做的 Apk 瘦身?
- 具体说下如何实现大图加载。
- 简略说下学历状况,到职起因大略说下。
多元主义 – 数码产品社区
初创公司,莫名的感触到不欢快,后续的面试也没用心了。mmp,请的假,白花花的现大洋进来了。
这块次要分为技术 + HR 聊,技术次要是依据他的点回去问一些货色,时不时的打断这点有点烦人,打断的频率高了之后显著集体有点不耐烦了。而 HR 会说一些公司以及我的项目状况,顺便也会问一些杂七杂八的货色。
工资形成次要为:基本工资 + 加班费。大小周,大周会有加班费(这点还是蛮不错的,比起那些情怀、大饼公司而言,这点的确实实在在)。
- 自我介绍以及我的项目形容。
- Flutter 你是如何缩小嵌套。
- 你是如何做的 Apk 瘦身。
- svg、jpg 和 png 有什么区别?
-
HashMap 和 HashTable 区别。
两者次要区别在于:
- Hashtable 外部实现增加了 synchronized 来确保线程同步,所以它是线程平安的,而 HashMap 则是线程非平安的。
其它区别如下:
- HashMap key 能够为 null,Hashtable key 不容许为 null;
- HashMap 实现了 Map 接口,而 Hashtable 则实现了 Map 接口以及 Dictionary 抽象类;
- HashMap 初始容量为 16,Hashtable 初始容量为 11,两者默认填充因子都是 0.75;
- HashMap 2 倍扩容,而 Hashtable 则是 2 倍扩容 + 1;
- HashMap 获取 hash,先对 key 的 hashcode 进行二次 hash,已取得更好的散列值,而后对 table 数组长度取模。而 Hashtable 则间接应用 key 的 hashcode 对数组长度进行取模以获取 hash。
-
HashMap 是线程平安的吗?
HashMap 是非线程平安的。
-
数组的查问和插入 / 删除哪儿种更高效。
查问更为高效,其本质通过寻址定位法去进行数据查找,效率较高。而针对插入 / 删除,则须要挪动后续的数组下标,效率较低。
- 链表和数组有什么区别?
- 查问的话,数组和链表哪儿个更快?
- 设计模式你理解的以及用过的哪儿个比拟多?
- 单例模式的饿汉和懒汉有什么区别?在线程平安和不平安下的体现又是如何?
- 工厂模式实用哪儿些场景业务?
- 形象工厂模式有理解过吗?
- MVC、MVP 以及 MVVM 简述。
- Http 和 Https 有什么区别。
-
你理解对称加密和非对称加密么?
对称加密和非对称加密在加解密过程、速度、传输的安全性都有不同:
- 对称加密加解密的过程都是应用同一个密钥,且加解密的速度较快,适宜数据量大时候应用,然而加密过程中无奈确保密钥被平安传递,一旦透露,整个通信就会被破解;
- 非对称加密采纳公私钥的形式,公钥加密私钥进行解密,加解密工夫较长,适宜数据量小的时候应用。而对于安全性而言,私钥是基于不同的算法生成不同的随机数,也就是说私钥通过肯定的加密算法能够推导出公钥,然而私钥到公钥的推导过程是单向的,也就是说公钥无奈反推导私钥,所以安全性较高。
- 对称加密算法:DES、AES 等,非对称加密:RSA 等。
- 非对称加密和对称加密的区别
- 公私钥加密过程是怎么?
- 二叉树的遍历形式。
- 如何实现数组反转?
- 有理解过自动化打包工具吗?
2021 – 09 – 30
早晨就要回家啦~ 开森~
打算白天干完农活,早晨抽空看看题~
心愿能保持下来哇~
六间房 – 直播 / 社交
地铁没挤上,加上路上耽误,晚了半个小时多,进去 HR 小姐姐间接安顿开始面试了,给了一瓶水,整体来说面试官蛮不错的。个人感觉比拟重视根底一些货色吧。
有条件的还是要去大公司看看,至多经验的和实战的,确实不是一回事儿。长时间的与日俱增,的确底蕴在那。
- 最近在做什么呀?有 Flutter 开发教训么?混合开发还是原生开发?Flutter 我的项目采纳的是什么架构类型?Flutter 状态治理怎么做的?如何实现通过状态更新达到事件触发?Flutter 中 Weight 有状态和无状态的区别是什么?
- Kotlin 用了多久了?
- Apk 瘦身你次要做了哪儿些操作?
- 用到过插件化或者组件化吗?
- 启动优化做了哪儿些?有思考过线程池的计划吗?
- 假如我当初须要在空闲时进行初始化,你有哪儿些计划?
- UI 布局如何优化的?
- 比方我当初须要监控 UI 卡顿,你有哪儿些计划?那如果我想监控具体的列表卡顿呢?
- 宽带优化怎么做的?
- LeakCanary 底层源码怎么实现的有理解过吗?
- 为什么会呈现内存透露状况?举个具体例子。
- Handler 外部的一些关系。
- Handler 中的 Message 如何保障发送的和拿到的是统一的?
- 大略理解哪儿些设计模式?具体利用哪儿些场景?
- 手绘责任链的类图。
- 实现多线程的形式。
- OkHttp 应用的线程池是什么类型的?
- 如何在 Theard 中进行这个线程?
- AsyncTask 底层如何实现的多线程?
- MVVM 官网框架图是什么?哪儿几层?他们之前的关系是怎么,如何交互,如何实现的 MVVM,MVVM 的外围是什么。ViewHolder 如何获取到的数据?
- Activity 和 Fragment 如何共享 ViewHodler 数据?ViewModel 层如何实现数据共享?
- 组件化如何应用的?如何划分的?
- module 之间如何进行通信的?
- 直播怎么做的?有用过 Flutter 开发直播我的项目么?
- 你对 GC 理解多少?
- HashMap 底层实现原理是什么?HashMap 和 HashTable 有什么区别?
- IntentService 次要做什么操作?
-
Handler、Thread、HandlerThread 三者之间区别?
- Handler: 次要是在 Android 中负责音讯解决,通过它能够实现线程之间的音讯通信;
- Thread: Java 过程中执行运算的最小单位,也就是执行处理机调度的根本单位;
- HandlerThread: 一个继承自 Thread 的 HandlerThread,Android 中没有对 Java 中的 Thread 进行任何封装,而是提供了一个继承自 Thread 的 HandlerThread 类。因为它自身继承自 Thread,所以实质就是个 Thread。与一般的 Thread 的区别在于,其外部间接实现了 Looper 的实现,有了 Looper 就能够让咱们在线程中进行音讯解决,如果不应用 HandlerThread 的话,须要手动调用 Looper.prepare() 和 Looper.loop()。
- Handler、Thread 和 HandlerThread 的差异
-
Android 过程间通信形式。
- 文件共享
- AIDL
- Bundle
- ContentProvider
- Socket
- Messenger
- Android 过程间通信、记一次阿里面试题:都有哪些过程间通信形式?麻烦你不要再背了
- 音讯信使理解多少?
- 什么是线程平安?什么样不是线程平安?如何实现线程平安?
- volatile 价值是什么?
- 禁止重排序还有什么形式能够实现?
- Flutter 工作治理怎么封装的?
- 对于加班怎么了解的?冀望薪资。
面试完结的时候,门口保安大爷询问状况,还刺激半天,哈哈哈,好贴心。
可恶的大爷~
万度衰弱 – 医疗衰弱 避坑!!!
整场面试下来,感觉很轻松。
面试官始终像个大哥一样再问本人想问的,顺便深刻解惑。很不错的一场面试体验。
- 自我介绍。
- 解释下依赖注入。
- 一个对象会在什么状况下会被内存会收掉?
- 弱援用,弱在什么中央了?
- 如何证实一个对象被援用了?
- 假如我当初失常援用一个对象,在另一个中央应用弱援用去援用这个对象,当我开释掉了这个强援用对象的时候,那边可能会呈现什么问题?
- 什么状况下会呈现野指针?
- String 是可变的吗?为什么设计成为这样?
- 常量池有理解吗?
- 为什么说子线程不能更新 UI?为什么设计成这个样子?
-
数组和链表有什么区别?
- 从 逻辑构造 来说,这两种数据结构都属于线性表;
- 从 物理内存 中来说,数组占用的是一块间断的内存区,而链表则是扩散的,所以链表比数组多了一个指向下一个节点的指针(单向链表);
- 数组通过寻址疾速定位,链表则须要顺次遍历指针节点,所以数组的查问效率更高一些,其对应的工夫复杂度为 O(1) 和 O(n);
- 在插入、删除时,因为数组是间断空间,会导致后续节点顺次后移,而链表则只须要批改对应的指针即可,所以插入、删除的状况下链表的性能更优;
- 从 操作系统的内存治理 来说,内存治理会将间断空间提前读入缓存,已进一步提高拜访效率。而链表因为在内存中是扩散的,则不会都读入内存中。
- 数组与链表的区别
-
数组自身是什么?还可变吗?
数组自身是个对象,由 JVM 创立,而这个间接创立的对象父类就是 Object。
数组自身是不可变的,初始化的时候便会设置容量大小。然而前期能够通过扩容的形式扭转大小,比方 copyOf 数组拷贝,或者 ArrayList 动静扩容。- JAVA 中的数组是对象吗?
-
单向链表和双向链表有什么区别?
单向链表:只有一个指向下一个节点的指针。实用于节点减少、删除。
- 长处:减少删除节点简略,遍历不会死循环。- 毛病:只能从头到尾遍历。
双向链表:有两个指针,一个指向前一个节点,一个指向后一个节点。实用于双向查找节点的状况。
- 长处:能够找到前驱和后驱,可进可退。- 毛病:减少删除节点复杂度,须要额定多调配一个指针存储空间。
- Apk 瘦身怎么做的。
- so 具体是什么货色?
- 矢量图和位图的区别?
- Activity A 切换到后盾,随后切换到前台,接着启动 Activity B,这时候它们的生命周期是怎么的?
- Touch 事件的传递流程。
- 老家哪儿的?结婚了么?平时会玩游戏吗?
- 假如当初有一个 7L 的桶和 5L 的桶,如何倒出 6L 的水?
- 两数替换。
- 三个人三天喝三桶水,九个人九天喝几桶水?
临走的时候,小姐姐还会让站在公司前台拍个照,😂😂😂
2021 – 10 – 11
明天的两场面试整体让人感觉很无语,无语到极点。不晓得该说啥了。
这假请的,无奈到极点了。。。
想喷人。。。
尚博信 – 外包
从住的中央骑车过来不到二十分钟吧。
约面试的小姐姐地址没发分明,找了许久,问了保安大叔几次。
一开始只通知 7 层,询问后告知是 3 号楼,过会儿再询问,告知 C 座。
找公司面试貌似探宝一样,折腾半天,还是先赶去下一场复试去了。
万度衰弱 – 医疗衰弱 避坑!!!
也不晓得复试女面试官是 HR 老大还是老板,整个交谈想让人骂人。
吐槽几个点吧:
- 对求职者重大不尊重。摆明了一副我司到当初为止 29 年了,只招二本以上的高尖端人才,像我这没学历的都属于特例面试。心田 OS:(我 tmd!早干嘛去了?!!简历下面清清楚楚写着明明白白的,不识字?)
- 公司极度不靠谱。有三天的学习培训期,美名其曰公司收费会对你有三天的培训,在这期间无薪水,不记工时。还须要实现公司安顿的“作业”,后续三天通过后,依据三天体现去打分并给出对应薪资???心田 OS:(WTF???什么鬼???BATD 也没这么玩过吧?傲娇的资本在哪儿?收费培训?咋滴,入职还须要我交三天培训费?学习你们不靠谱的企业文化?贵司的试用期是陈设吗?)
- 仿佛有点脑残。上来拿着身份证去复印去了,美名其曰:不便疾速入职。后果呢?来个憨批。
- 。。。
哎,无语到极点。一面的技术总监蛮不错的,复试的那个女的不咋地。姿势太高,高攀不起。
只能说,做集体吧。。。
真要是成立了 29 年了,不温不火、吃不饱饿不死的,哪儿来的傲娇呢?龙头老大吧,也倒是能了解。
各位避坑吧。。。浪费时间,公交折腾一个多小时,后果 mmp!
坐公交回去搞得晕车恶心好受了大半天。。。
XXOOXXOOXXOO!!!
2021 – 10 – 14
在线面试,很 nice~
不必来回折腾,也防止遇到不靠谱得白白浪费工夫。
明天线上面试的四家相比前几天跑了四家,确实也没那么熬人了。
中农融信 – 农业贷款 / 直播
很失常的一次面试,面试官很尊重人,很急躁的听着,并且互相沟通着,整体来说蛮不错的。
- 自我介绍、简述所负责我的项目。
- 谈谈 Handler 音讯机制。
- 内存透露如何进攻和检测,遇到了怎么治理?
-
说下你理解的事件散发机制。
Android 事件散发的实质就是,由零碎 framework 层创立 InputManagerService 监听响应,并且将事件逐层下发的一个过程,整个过程属于责任链模式。
事件散发程序:Activity —> ViewGroup —> View。
具体实现则由三个办法进行实现:
-
ViewGroup 通过 dispatchTouchEvent() 开始散发事件并且外部通过 onInterceptTouchEvent() 判断是否拦挡该事件。
- 如果拦挡,则以后事件流转到该 ViewGroup 的 onTouchEvent() 中进行具体解决。
- 如果 ViewGroup 未拦挡该事件,则调用 View 的 dispatchTouchEvent() 持续向下散发。
- 如果 View 生产则会到 View onTouchEvent() 进行解决,反之顺次返回 ViewGroup、Activity 的 onTouchEvent()。
须要留神的是,Activity、View 具备散发、生产,ViewGroup 在此基础上多一个拦挡。
-
- 说下你对自定义 View 的理解。
- 假如当初要求实现大圆套着小圆,并且小圆内有刻度,会随着一点点变动,这个有什么思路么?
- 网络框架用的是什么?简略说下 OkHttp 的应用,以及同步、异步是怎么回事。
- 有和 js 交互教训么?简略形容下。
- 如何将字符串转为 int?
- Apk 瘦身如何操作的?除了简略的图片压缩、代码混同,还做过哪儿些方面?
- 对于利用启动优化次要做了哪儿些方面?
- Kotlin 中 var、val 以及 const 有什么作用区别,比照 Java 呢?
-
== 和 === 区别?
- == 比拟值是否相等,=== 比拟援用地址是否相等。
- 直播都用过哪儿家的 SDK?
抱抱直播 – 直播
在如下地址先写题:
- https://www.codegree.net/(这玩意可难用了,时不时就打错了)
题目如下:
/**
* 实现一个数字转中文大写的函数(30 分钟)* 例子:* 123 --> 一百二十三
* 46035 --> 四万六千零三十五
* 尽可能笼罩函数输出范畴
* 可选任意支流语言编码
* 可在 IDE 中实现,可搜寻根本函数 & 数据结构用法
**/
思路如下:
- 定义两个数组,别离存储数字对应汉字(0~9)以及单位(个十百千万等);
- 循环遍历,记的解决第二个单位时须要解决为 0 的状况。
面试官应该是在会议室开着外放,一边问问题,一边写评估吧,集体猜想。听的不是很分明,面试官比拟随和,也比拟尊重,有些货色没实战经验过,然而也让尝试说说想法,这个蛮不错的。
- 自我介绍、为啥现家公司待这么短起因阐明以及负责我的项目形容。
- 刚刚你写的代码会有什么问题?最大兼容到什么级别?有什么想法思路谈谈。
- Apk 瘦身方向,成绩。
- UI 优化方向。
-
View 绘制流程形容。
View 绘制的实质就是从 DecorView 自上而下遍历整个 View 树,进行测量、摆放以及最终绘制操作,这里须要留神,所有的 View 执行完一个步骤后,才会执行下一步。
- onMeasure():测量视图大小。从顶层父级 View 到子 View 递归调用 measure(),measure() 调用 onMeasure() 实现测量工作;
- onLayout():摆放 View 的地位。从顶层父级 View 到子 View 递归调用 layout(),父级 View 将上一步 measure() 失去的子 View 布局参数,将子 View 放在适合的地位上;
- onDraw():绘制视图。ViewRoot 创立一个 Canvas 对象,而后调用 onDraw() 进行最终绘制。
- 内存透露根本原因,如何治理,如何预防?
- 为什么要做图片库的对立?Fresco 和 Glide 区别?优劣势是什么?如何抉择我的项目适合的图片加载库?
- 进攻式编程次要是做什么的?指标预期是怎么的?现状是怎么的?你做了哪儿些方面的操作?
- 我的项目中有遇到过难点吗?怎么解决解决的?
- 重构的方向是什么样的呢?为什么要重构?重构遇到过哪儿些问题?如何解决成立的?
- 模块化是如何拆分的?颗粒度如何保障?有什么想法思路呢?
不得不说,线上面试真的狠 nice~
点根烟,缓缓考虑,nice~
万声音乐团体 – 音乐
HR 很贴心,思考到来回比拟折腾,被动提出初试线上电话先沟通。
工夫安顿上也很尊重面试者,赞一波~!!!
面试官是个小哥哥,预计在工位上吧,声音不是很大,整体沟通起来还是比拟顺畅。
- 退职到职、介绍工作经验以及我的项目。
- 数组和链表的区别?
- 如何反转链表?
- 简述你理解的 HashMap,蕴含底层数据结构。hash 碰撞是一个什么状况?如何解决?
- GC 理解多少?
- Handle 音讯机制理解多少?
- 内存透露根本原因是什么?平时我的项目中是通过什么伎俩进行预防的?如何治理?
- 说一下你理解的自定义 View。
-
如果我想从新绘制应该调用什么办法?
从新绘制形式有三种,别离是:
- invalidate:UI 线程中调用,重绘 UI;
- postInvalidate:非 UI 线程中调用,通过 Handler 告诉 UI 线程重绘;
- requestLayout:先调用 onLayout() 从新排版,后调用 onDraw() 进行重绘。
- RecyclerView 缓存理解有多少?每个层级缓存对应做什么操作?当 RecyclerView 去缓存中拿 ViewHolder 时,须要经验哪儿些流程?是间接拿进去应用的吗?还是?
- 讲一下你理解的属性动画。
- Kotlin 用的相熟吗?应用多久了?
- 讲一下理解的协程,以及它外部到底是怎么工作的?它是如何实现线程切换的?
- 讲一下你应用过的 JitPack 组件,有理解过外部实现原理吗?
拓茂公寓 – 社交
公司开始是有一个兼职 Android 在开发,想着换个全职 Android。面试老哥很嗨,思路跳转蛮快的,有些问题给我整懵了。微信语音面试,有些听得不是很分明,面试老哥应该在家里还是在吃饭,环境有点嘈杂。
整体下来还是蛮不错的吧,播种颇多。
- 自我介绍、学历状况阐明、车载我的项目用什么语言开发的、团队规模、次要负责哪儿些工作?App 下载量和日活为多少?各个公司到职起因。
- 你负责的 App 有做过哪儿些安全措施?
- 如何脱掉 360 加固的壳?形式有哪儿些?
- 静默更新计划有哪儿些?热修复计划理解过哪儿些?阿里和腾讯的热修复原理别离是什么?区别是啥?达到率如何?如何确保达到率?用户是否有感知?
- 你们负责的 App 解体率和卡顿率大略多少?有做过哪儿些方面的解决吗?
- 说下你对进攻式编程的了解。进攻式编程和 try 块有什么区别?间接 try 能够吗?进攻式编程会减少代码量吧,从这点谈下你的了解。
- 简略形容下 Android 架构图。平台架构
- Linux 中的过程、线程以及协程区别以及它们的作用。Kotlin 中协程怎么了解的?线程中如何共享数据,为什么能共享数据?
- 计算机网络构造有几层,它们的职责和定位别离是什么?报文是干什么的?
- 理解域名的解析过程么?
- 形容下客户端和服务端网络交互的具体过程。为什么要有三次握手。从 Android 手机的层面上,产生了一个什么样的过程,具体应用到了哪儿些设施,零碎做了哪儿些操作?从咱们的 App 的角度而言,它又是一个怎么的过程?
- 假如我当初正在申请接口,然而用户锁屏了,这时候会呈现什么问题?如何保障重要业务完整性?例如领取时断网、没电了,怎么保障?
- 假如当初有个需要是,用户在应用 app 的时候须要下载一个数据包,这个数据包关系后续 app 是否失常应用,假如用户下载一半杀掉过程了,怎么办?针对这个状况你又如何设计你的 App?App 都启动不了怎么操作?(PS:这个问题问的我,ummm,App 都死求了,还能有啥法子。好比零碎都解体了,你还咋玩?万能重启呗)(-_-!!)
- 罕用的数据结构,哪儿些是线程平安,哪儿些是不平安?什么叫线程平安?什么叫线程不平安?
- RxJava 中的 flatMap 作用是什么。有哪儿些函数具备只执行一次的性能?如何通过 RxJava 实现一个观察者模式?什么是观察者模式?不必 RxJava 如何实现观察者模式?
- 线程之间有什么通信形式。
惋惜,被「中广创思」坑了之后,找工作更为谨慎。也没有心动的感觉,Sorry~
2021 – 10 -16
好无奈啊,大周末的想去睡个懒觉,后果还是要大早上去复试。
其实电话沟通就得了。
中农融信 – 农业信款
小姐姐说,不必再次换地铁线,走过来 15 分钟,后果好嘛,大早上,冻成二傻子了,回去的时候果决找最近地铁了。
公司外层环境不错,有种适宜养老的感触。小院子,整体格调还是蛮不错的。
缺德地图,各种导航,坑的无奈了。
- 学历、工作经验、我的项目、团队规模、到职起因阐明。
- 活体检测怎么做的?人脸识别、人像比对如何实现?对应的接口会返回什么后果?你们这边依据后果会怎么解决?
- 过后我的项目怎么选型的,为什么最初确定的是 Flutter?有什么劣势?独立开发?Flutter 成熟吗?针对性能各个方面怎么样。
- 我的项目开发中有没有遇到过印象粗浅问题?
- 讲一下车载端 App 整个的流程模式。
- 为什么要迁徙 Kotlin?Java 不好么?(-_-!!)
- 有看过哪儿些框架的源码?
- 对于技术方面的话,有什么久远的打算吗?
- 针对下一份工作,你这边有什么想法么?
- 有什么想问的么?(问了好几次,对立回复:无。之前面试小哥哥说的蛮分明的了)
面完就嗷嗷的往回家跑,回家吃串串去~
2021 – 10 – 18
万事开头难,上来遇到坑公司。
进去之前还和敌人还说呢,望京 SOHO 等电梯太墨迹了,动不动就是好几十层。
忽然感觉什么叫做人性化的公司?我认为至多有以下几个特点:
- 初试线上面试,节俭单方工夫,要害是对于面试者的少折腾;
- 线下面试,公司打印简历,别上来动不动要简历,PDF 都给你发了。
数字家园 – 通信 避坑!!!
填表注销,和 HR 扯犊子。稍等了几分钟,面试官过去了,感觉极度不敌对。
全程有一半的时候在抠鼻屎,抠就抠吧,抠洁净点也行,后果抠出来在鼻子上,盯的一度反胃,局面仿佛有点难堪。有气无力的,没啥意思,真还不如电话面试了,什么鬼。问问题问一半,我还得猜,各位避坑。
旁边那边几个人吹牛逼,大谈现实等。
挺好。嗯。
- 自我介绍、介绍公司我的项目、团队规模、所负责的我的项目,学历状况介绍,有可展现的 app 吗?
- 介绍下 Android 四大组件。
- 数据库用过什么?
- 数据缓存怎么做的?
- Service 怎么用的?
- 组件化 ARouter 怎么用的?
- Activity 启动模式聊下。
- 图片加载用的是什么?Glide 如何加载大图?
- 说下你了解的线程以及线程池。
- 谈下你了解的 ArrayList。
- Map 用过哪儿些?HashMap 怎么用的?次要用于哪儿些场景?
- 我的项目架构是什么?每个我的项目是否独立开发,团队开发模式是什么?
- 有开源过什么么?或者做过什么分享。
各位避坑~
当贝北京 – 硬件 / 零碎
到的早了,在里面冻了半天,让🐔老大喷了半天,啊啊啊。等我腾飞的,非过来在眼跟前得瑟得瑟去~
最初切实是受不了了,两点上楼,进去发现大家都在睡觉,给 HR 小姐姐发的信息,还认为会去给打印一份简历来着,后果证实是我想多了。还是老样子,填表注销,嗖嗖嗖。
面试小哥哥很 nice,公司做 TV 相干,整体聊下来蛮不错,至多我这边有几个问题解惑了,哈哈哈~
- 自我介绍、公司我的项目介绍。
- View 事件散发具体流程?调用哪儿些办法?如果 View 不生产,那么又是如何传递的?整个 Activity 又是如何传递的?
- View 的绘制流程。
- 说下自定义 View,以及自定义 View 中的 layout 是做什么的?
- OkHttp 有几种拦截器,别离是什么?流程程序是什么?哪儿个优先级更高一些?
- App 优化都做过哪儿些?Apk 瘦身、启动优化、内存优化都做过哪儿些?
- 内存透露起因?哪儿些状况会导致内存透露?如何解决?
- 说一下 Kotlin 的高阶函数,例如 let、apply 等。
- JitPack 用过哪儿些?源码看到过哪儿些?
数字大脑 – 大数据平台
数据平台负责人面试的,一个多小时,大略就是理解我的项目、学历等根本状况。
有一道不错的面试题,给我整懵逼了,记录下来:
- 编写一个程序,开启三个线程,这三个线程依照程序顺次打印 ABC,每个字母打印 10 次后完结,最初后果如 ABCABCABC… 顺次递推
2021 – 10 – 19
明天一整天的面试都挺无奈的,很无语。
哎。
次奥~
金财教育 – 财税相干 避坑!!!
离得倒是不远,地铁 40 分钟左右。公司环境有些嘈杂,不过还好。HR 小姐姐蛮不错的,很激情。面试官很差劲,之前有敌人去面试过,还特意嘱咐这就是个坑。我寻思着正好去涨涨教训,看看有哪儿些是我不理解的。
面试官太差劲了。很搪塞。草草了事。懒得答复了
- 自我介绍
- 手写冒泡排序
- HashMap 的底层数据结构
- 扩容因子为什么是 0.75?
- Activity A 跳转 Activity B,而后点击返回回到 A,生命周期执行的程序流程。
- 接口申请和响应都须要加解密,这个个别都会怎么做?
- OkHttp 拦截器理解多少,罕用的哪儿些?优先级是怎么?
- 性能优化做过哪儿些?
- 如何加载本地图片?不应用三方框架如何操作?
- Bitmap 压缩办法的具体参数。
- 怎么进行的屏幕适配?OS:这里我回问了一句,你们用的是什么呢?人来句咱们用的今日头条的适配计划,和你用的头条适配计划不一样。间接给我干懵逼了,没据说官网出了这么一个开源库啊,不都是基于官网给的思路进行的对应开源么?AutoSize?=_=!!
- 我的项目中用到哪儿些设计模式?
- 点播、直播是独立开发实现的推流、拉流操作吗?为什么不本人写?心田 OS:ummm,你说为什么。。。
这个面试官太无语了,整个过程都是搪塞、糊弄的感觉,没啥意思,耗子尾汁吧~
快音 – 直播
公司离住的中央不远,自行车半个小时左右,园区蛮不错的,公司环境不赖。进门须要扫码注销,随后会在线填写相应的信息。HR 小姐姐蛮香的,声音蛮低的。和面试官整体沟通还算顺利吧。
- 自我介绍、我的项目介绍
- Kotlin 形式如何实现继承。子类和父类区别?Kotlin 默认类不容许继承那么如何操作能使其可被继承?Kotlin 类如何操作使其不能被继承。
- 网络优化如何做的?有在 OkHttp 层面进行优化解决吗?
- 怎么做的 Java 我的项目迁徙 Kotlin 的?
- Kotlin 的高阶函数和 Java 的一些办法有什么区别?
- 你用过哪儿些 Kotlin 的高阶函数?
- 自定义过高阶函数吗?
- 如何实现 Kotlin 的单例模式。
- Glide 如何实现的生命周期感知?加了生命周期感知的话,对于咱们使用者有什么益处?
- Glide Bitmap 缓存池理解有多少?
- 线程池有用过吗?如果当初有个场景是频繁的网络申请操作,那么如何应用线程池操作这个状况?
- 在 Activity 中的 onCreate() 如何获取 View 的宽高?
- Handler 如何将 Message 插入到音讯队列中。
- 音讯队列底层是一个什么样的数据结构?
- Message 入栈出栈程序是什么样的?
射雕 – 游戏
HR 小姐姐蛮皮的,公司看着不大,刚巧和另一个面试 Android 的同样走错了,正好遇到个热心的大叔,带着咱们过来了。
面试官还不错,整体就是聊聊我的项目之类的。
- 自我介绍,学历阐明
- 感觉 Kotlin 如何?
- 热更新用过哪儿些?有什么区别?
- 直播间如何实现的?音讯如何实现的?用的哪儿家的 SDK?有什么坑?
- 音讯 SDK 用的哪儿些?
- 瘦身如何实现的?为什么要做瘦身?
- 对 Flutter 怎么了解的,感觉如何?
- 车载我的项目形容、微信小程序形容。
2021 – 10 – 20
北京宏达一甲 – 在线教育 避坑!!!
本认为微信语音面试,后果上来视频,哎妈呀,早晓得也整点大宝蜜一下了。整体的面试还不错吧,比拟考查基础性的货色。技术老大人也很 nice,很和善,效率蛮高的。
- 自我介绍
-
说一下 JVM 内存构造。
JVM 内存构造次要有三大块:
-
堆内存:JVM 中最大的一块,由年老代和老年代组成,而年老代内存又被分为三局部:
- Eden 空间
- From Survivor 空间
- To Survivor 空间
默认状况下年老代依照 8:1:1 的比例来调配。
- 办法区:次要存储信息、常量、动态变量等数据,是线程共享区域。
- 栈:又分为 Java 虚拟机栈和本地办法栈,次要用于办法的执行。
- jvm 系列(二):JVM 内存构造
-
- 说一下你理解的 GC。
- 有哪儿些状况下属于 GC 可执行的 Root 树?
- GC 中应用到的有哪儿些算法?
- GC 中有哪儿些状况下会间接进入到老生代区?
- Java 中创立线程的形式有几种。
- Java 中提供了几种线程池。
- Java 中的同步锁应用形式有几种?它们之间的区别是什么?
- 如果当初我讲这个锁加到办法上,那么它当初属于锁对象还是?
- Java 中的 volatile 有用过吗?它的作用是什么?
- Kotlin 的拓展办法用过吗?用过哪儿些?你感觉它有什么劣势?
- 有自定义过拓展函数吗?
- 有理解过,拓展函数底层的应用原理吗?
- 针对数据长久化,你用过哪儿些数据库?
- greenDao 如何实现数据库降级?
- 针对内存透露这块,说下本人的了解。
- 我的项目中如何检测内存透露。
- LeakCanary 如何实现的内存透露检测?
- 有遇到过 ANR 吗?
- 简略说下对于 Handler 的了解。
- Message 如何晋升优先级?
- View 的绘制流程。
- MeasureSpecs 测量模式有几种,别离是什么?作用是什么?
- Apk 瘦身如何做的?
- 我的项目架构是怎么的?网络申请用的哪儿些?
- Android 中的组件化和模块化有理解吗?
- Activity 的生命周期简略说下。
- Activity A 跳转到 Activity B 生命周期是怎么的?
最初和总监聊了下,整体感觉还不错吧,惋惜只是 12 薪。
2021 – 10 – 21
明天开门红,至多自我感觉还不错,不免有一些磕磕绊绊。
然而今儿复试让我气炸了!!!
中关村科金 – 电子商务
门口保安大叔很火暴,原本打算跟着人流混进去的。后果难堪了。人脸识别的。给我好一顿说,间接给我晾一边去了。得亏遇到个公司共事,帮忙解围,还顺带带我进公司去了。感激不出名的老哥~
面试的是一个老哥,一个小姐姐,小姐姐蛮爱笑的,整体气氛很 nice。
- 自我介绍,音视频直播我的项目介绍,应用了哪儿些 SDK?
- 车载我的项目如何设计的?版本迭代的形式?
- MVP 和 MVVM 的优劣势。
- JetPack 用过哪儿些?
- LiveDate 如何应用?
-
setValue() 和 postValue() 之间的区别?
setValue() 只能在主线程中调用,同步更新数据。而 postValue() 能够在任何线程中调用,postValue() 外部实现了同步锁,并且最终会切换主线程,也就是最终通过 setValue() 形式更新。
- 如果同时调用 postValue() 和 setValue(),则 setValue() 会笼罩 postValue();
- 如果屡次调用 postValue(),则只有最初一个值可能被散发。
- postValue 丢值吗?如何解决?
- Handler 简述。
- 内存透露如何解决?
- Handler 通过 Delayed 形式发送一个 3ms 和 5ms 的音讯,外部是如何进行排列的?
- Looper 为什么不会造成主线程卡死?
- 主线程和自线程之间如何通信?
- ArrayList 和 LinkedList 的区别。
- 数组如何进行扩容,扩容系数是多少?
- HashMap 底层数据结构。
- Glide 如何管制图片加载的生命周期?
- 假如有一张 800×800 的图片,大小为 1M,那么它在内存中占多大空间?
- RecyclerView 缓存机制简述。
- 你理解哪儿级缓存会从新绑定 ViewHolder 吗?
- Https 中的 SSL 作用?
- MediaPlayer 生命周期是怎么样的?
- 点击 Icon 启动 app 的过程是怎么的?
- Kotlin 的高阶函数用过哪儿些?
- Kotlin 的拓展函数用过哪儿些?哪儿些是 this,哪儿些是 it?
- Kotlin 的懒加载 by lazy 和 lateinit 有什么区别?
- 开发过程中遇到最难的问题是什么?
- Apk 瘦身怎么做的?
- View 的事件散发简略形容下。
- 具体的散发过程是怎么的,调用办法的流程程序是怎么的,从 ViewGroup、View 别离说下。
- 先走 onTouchEvent 还是先走 onClick?
- 网络申请用的是哪儿些?
- 针对 OkHttp 你理解的有哪儿些?
老哥驾着机关枪,给我一顿突突。小姐姐还好,没事儿扔个雷。
整体还是蛮不错的。
北京宏达一甲 – 在线教育 避坑!!!
复试据说是要和人事部老大去谈。后果一到中央,傻眼了,公司环境个别吧。登记表还须要写个小作文,登时好感隐没一大半,的亏 HR 小姐姐很温顺,很 nice,耐着性子持续写了一些根本材料。
人事部领导是个更年期大妈,进门就叼着脸色,也不懂是为啥。我过去是复试了,又不是看你脸色来了,真的是。得亏鸡老大说过,没必要和这些人宽宏大量,不然我真心想怼你一顿,什么货色真的是!
说什么在咱们公司,技术不是第一位的,外围是编辑团队,你们技术就是服务咱们外围部门的。
对啊,没错啊,技术服务业务啊,咋了?我了解没错吧?咱又不是业余的研究所?
简略的形容本人的想法。被间接打断,说什么你不要试图反驳我?好嘛,逼得我耐着性子去说:复试是一场互相沟通、理解的一个过程,单方都能够形容本人的观点,大家在一起就是聊聊天,而后看看单方是否适宜本人,没必要去抬杠,或者反驳。如果我连论述本人的观点的权力也没,那这个沟通还有什么意义?
中广创思待了四个月,说什么这不怪你么?怪你没有提前看清公司?怪你抉择不对,巴拉巴拉。。。
我 tmd!!!
双减下来之前,谁晓得会呈现这个?马后炮谁不会?F**K!!!
真的是,气炸我了。什么鬼真的是!!!全程想让人骂人🤬🤬🤬
真的是,您老人家更年期早期,无可救药,本人找个阴凉中央撞墙去。
对人尊重,也是对本人尊重!
格局真的是。。。
不想说太多了,各位避坑吧。
一面的面试官还不错,技术负责人也挺和善的,就是遇到个这么个更年期货。
XXOO!!!
=o=!!!
小米 – 海内电商(驻场模式)
小米的效率真的高的能够哦。一面之后没几分钟告诉二面,6 啊。
面试官都很 nice~
一面面试官:
- 自我介绍
-
面向对象三大个性是什么?
封装:将公共属性、内容进行对立封装,对外裸露入口,暗藏外部实现。
继承:对现有类进行拓展,个别为子类继承父类,重写父类办法进行拓展。
多态:类的多种表现形式。
- 多态是什么?具体表现是什么?有什么用?
- final 能够在哪儿润饰?
- 判断下如果在办法上增加 final 会呈现什么状况?
- Java 中的 switch 中 case 能够用 String 吗?
- 如何拜访对象的公有办法?
- Kotlin 中的拓展函数用过哪儿些?let、apply 以及其它的有什么作用和区别?
- Kotlin 中的双感叹号作用。
- Android 中有几种动画,别离是什么,有什么区别?
- RecyclerView 缓存理解有多少?
- 假如我当初指定更新某一条数据,你晓得外部实现的逻辑是怎么的么?
- 更新 RecyclerView 数据,会呈现两种状况,一种为 item 在屏幕可见,一种为 item 在屏幕不可见,你晓得这两种形式别离是怎么更新的呢?
- SharedPreferences 更新形式有几种?有什么区别?
- 内存透露有哪儿些因素?个别你会怎么解决?
- Android 中跨过程通信的形式有哪儿些?
- 说下你理解的 Handler?
- Handler 中是如何保障音讯的程序的?
- Looper 是在主线程中初始化的还是子线程初始化的?
- 假如当初音讯队列中没有音讯,Looper 是一个什么状态?
- 为什么说 Looper 是个死循环,然而不会卡死 UI 线程?
- Looper 没有音讯时休眠之后如何启动的?
- View 的事件传递过程是怎么的?
- Synchronized 能够润饰哪儿些中央?别离有什么作用?
- 有看过哪儿些三方源码库?
- 说一下 Glide 底层实现原理。
- Glide 有几级缓存?
- MVVM 你在我的项目中如何应用的?
- 如何获取到 ViewModel 实例化?
- 组件之间如何进行参数传递?
- 如何做的逆向?有具体批改过哪儿些货色?深刻批改过 dex 吗?
- 算法理解过哪儿些?
- 疾速排序的形式有哪儿些?
- 目前状态,退职、到职?有 offer 吗?到职起因。
二面面试官:
- 自我介绍
- 简略说下你我的项目中用到过哪儿些技术吗?
- Apk 瘦身思路。
- armeabi 你用的是高版本还是低版本的,有什么区别?
- 网络如何进行优化呢?
- 你晓得网络申请的详情过程吗?就好比客户端发动一个申请,两头经验了哪儿些流程,最终失去数据?
- 假如当初某个接口须要 1s 获取到数据,有没有计划能够更快获取到,比方 800 ms?
- 启动优化做了哪儿些操作?
- UI 优化是怎么做的?
- 内存透露个别会怎么解决?
- 你感觉产生内存透露的根本原因是什么?
- 你对于垃圾回收机制了解有哪儿些?
- GC 中如何断定新生代和老生代的?
- 第三方的框架你用到过哪儿些?有哪儿些深刻理解过源码?具体说说。
- Flutter 用过多久?简略谈下你的了解。
- Flutter 如何实现和原生交互?
- Flutter 提供了哪儿几种通道?
- 组件化你是怎么做的?
- 组件化的目标是什么?
- 组件化的话,既能够作为宿主,也能够独自运行,你晓得底层原理如何实现吗?
- 你还用到过哪儿些比拟好的技术点吗?
- 你怎么认为的 Compose?
- 你用过哪儿些比拟好的解决方案,或者有哪儿些杰出的方面。
- MMKV 和 SharedPreferences 有什么区别?
- 学历状况阐明,到职起因,公司介绍。对于你的岗位以及薪资待遇有什么要求吗?手头有 offer 吗?
贼老贴心。
而后鸡老大说,你面试的是根底岗位吧。
=_=!! 过分
还是过不去外派外包的这个坎儿。。。
灵光在线 – 相机类
- 自我介绍、最近看了哪儿些书籍。
- 你理解的音频格式有哪儿些?
- 如何实现的语音转文本?
- 你们是如何实现的音视频播放?
- 图片加载用的哪儿些?
- Glide 如何实现的压缩图片?
- 如何计算一张图片在内存中所占大小?
- Apk 瘦身做了哪儿些方面操作?
- 如何做的网络优化?
- 简略说下你理解的 Https 协定。
- Https 传输过程中用的哪儿些加密办法。
- UI 你是怎么优化。
- 监控过你们 App 所占用的内存吗?
- 内存如何优化的?
- 内存透露和内存溢出的区别?如何解决?
- 内存溢出是堆中呈现的还是栈中呈现的?
- 如何逆向的?尝试过 360 脱壳吗?
- 你对于预防逆向有什么思路?
- 退职?到职起因?你感觉你的劣势是什么?
初试之后,给了个题目:
- 求 101 到 200 之间的素数。
2021 – 10 – 22
大搜车 – 汽车方向
园区离地铁口挺近的,进门还是老样子,填表注销,乌拉乌拉。
一面面试官据说是 Android 老大,人挺和善的。聊的还是不错的,根本把握的都说进去了。
一面 Android 老大:
- 自我介绍、到职起因、团队规模、我的项目介绍。
- 车载适配屏幕如何适配?车载我的项目有什么留神点?和车机如何交互?
- 音频焦点如何解决的?
- Activity 启动模式,次要应用场景。
- WebView 独自开启过程有什么劣势?
- 我的项目中如何监控 Crash?
- 如果让你实现,你会怎么实现?
- 你晓得 Android 中如何收集到本地 Crash?
- Apk 瘦身怎么做的?
-
Android 中序列化形式有几种,区别是什么?
Android 中实现序列化的形式如下:
- Serializable: Java 自身反对的接口;
- Parcelable: Android 特有的接口,可用于传递 Intent 以及过程间通信(IPC)。
两者之间区别:
- Serializable 只须要实现 Serializable 即可,相当于给对象打了一个标记,零碎会主动对其序列话。而 Parcelable 不仅须要实现 Parcelable,还须要增加动态变量;
- Serializable 应用 I/O 读写存储在硬盘上,而 Parcelable 是间接在内存中读写;
- Serializable 会应用反射,序列化和反序列化过程须要大量 I/O 操作,而 Parcelable 本人实现封送和解封 (marshalled & unmarshalled) 操作不须要用反射,数据也寄存在 Native 内存中,效率要快很多。
- ❤️Android 序列化(Serializable 和 Parcelable) ❤️
- SharedPreferences 提交形式?有什么区别?平时会应用哪儿种形式?
- 数据库用过哪儿些?如何实现数据库降级?
- 组件化怎么用的?
- ARouter 底层实现原理是什么?
- 有尝试去看过一些第三方库源码吗?个别什么状况下会去查看?
- 介绍下你的组件化思路,我的项目架构。
- 我的项目网络框架应用的是什么?
- 编码标准,你个别会留神哪儿些点?
- 举几个 git 罕用的命令和理论业务场景。
- 我的项目中有设置业务日志么?
- 车载中的问题如何排查?
面试效率还是挺快的,随后就安顿技术部老大了,然而老大那边还在复试,和 HR 小姐姐简略的沟通了几句,随后越好下午一点半二面。
进来逛呀逛~
二面是个技术部老大,看着有点庄重。上来针对学历有点难堪,老大开始想着怕聊半天学历不行,打算去问问 HR,再做打算,后续还是撸起袖子先理解理解。
二面研发部老大:
- 退职?到职起因?团队规模?学历状况?为什么不上大学?如何走向技术路线?
- 对于本人的一个将来布局是什么?短期是什么?长期是什么?
- 针对申请优化方面,你这边有什么心得?如何加重服务器的一个压力?
- 你是怎么对待有些状况须要客户端去解决某些数据,而不是服务器间接解决好返回给你?
- 你有哪儿几个我的项目做的不错,能够简略聊聊的?具体说说技术实现。
- 我的项目中是否具备统计计划?数据大略多少?怎么统计的?锚点?
- 利用平安方面有什么见解?
- 针对 Apk 图片,你对于设置本地图片和网络图片的考量规范是什么?
- 你心愿退出一个什么样的团队?
- 之前加班多吗?
- 团队配合能力?
感觉一方面学历这块不好说,另一方面感觉我的团队配合教训少。其实这个团队配合而言,感觉就是两个关键字:沟通、斗争。指标:实现工作。
后续谈薪资比拟难堪。问了下薪资是否可谈,如果降薪或者平薪还是否违心?介绍了下公司平台业务,以及后续公司对于技术的安顿方向。
玖日科技 – 广告 SDK
面试官是个前端,笑眯眯的。
- 自我介绍、我的项目经验介绍、到职起因、团队规模。
- 进攻式编程如何实现的?
- Flutter 用了多久?为什么选用 Flutter?开发的 App 用户量有多少?应用 Flutter 有什么坑点?
- 广告接入的渠道是?
- 性能优化做过哪儿些?
- Apk 瘦身方向?
- UI 优化做过哪儿些?
- 内存优化怎么做的?
- 逆向怎么做的?
- 公司我的项目会有一些监控计划?
2021 – 10 – 24
玖日科技 – 广告 SDK
早晨将近八点,复电面试,刚开始有点蒙圈。找耳机找半天。
感觉面试小姐姐有点生涩,不过辛苦小姐姐了。
大略内容就是一些 View 绘制、事件散发、设计模式等,举个场景,给计划。
可能是平时太过于依赖后盾,很多货色没有去思考实现细节,只晓得客户端将搜寻关键字发往服务器端,获取到后果展现就行。当前工作还是要多去思考思考。
后续约三面公司线下,婉拒了。
2021 – 10 – 27
其实明天早上去的时候,就有点茫茫然的感觉,躺了几天,懒得动弹,相干内容也没整顿,正好去看看。
普天战争 – 供应链
之前电话沟通过,简略聊了下我的项目,到职起因、基本技能之类的。后续线下进行的二面。
大略针对以后我的项目状况,聊了一些,包含重构相干、uni-app 等。
薪资偏低,国企旗下的子公司,五险一金全额缴纳。
灵光在线 – 相机类
之火线上沟通过一次,后续约的明天二面。
大略就是聊了下我的项目,把握技能,优缺点之类的。
次要是相机相干内容,前期波及到 openGL 相干操作。
公司是个小复式,人并不是很多。
相机这块抓住受众群体了,Pro 版本,这点不赖。
2021 – 10 -28
蓝鲸体育 – 文化 / 体育
原来这是爱奇艺体育啊,进去整个人就懵逼了,卧槽,卧槽,卧槽,谁给我的勇气?我为啥没查到?Why?Tell me why?
不得不说 Android 技术老大真 nice,6 的一批,这才是大厂面试官应有的素质啊。
全程吊打的同时急躁疏导,nice 的很。
- 学历状况介绍、自我介绍
- 有哪儿个我的项目做的比拟好?
- Flutter 有和原生交互吗?通道插件写过吗?
- MVP 和 MVVM 区别。
- ARouter 底层实现原理说一下。
- 微信资源压缩实现原理以及作用?
- 埋点埋过吗?如何实现全局埋点?有什么思路?
- Glide 源码讲一下你了解的。
- 应用 Glide 有遇到过什么问题吗?
- Glide 加载图片绿色蒙层怎么解决的?
- Glide 加载图片,地址没变,图片变了,如何保障更新最新的图片?
- 屏幕适配的计划应用过哪儿些?有理解过底层实现原理吗?
- 网络层如何优化的?
- gzip 用过吗?
- 网络协议相熟吗?
- 如何设计一套 im,须要留神哪儿几点?
- LeakCanary 底层实现理解有多少?
- 算法理解有多少?
- 实现一个环形链表。
- 线程池理解有多少?
- 数组平安理解有多瘦?
- 多个接口如何组合一个 List?
- RecyclerView 首页优化思路和计划。
一场面试,更是一场学习解惑,明确了本人之前的开发模式如许 lowB。(PS:每当想起这个词,就能想到鸡老大气急败坏的怼我,能别问这么 lowB 的问题嘛?那么多有意义有价值的问题你不问,为啥给人一种你之前到底是在什么贫民窟干活的感觉。。。啊,自身小公司,小作坊,ummm tui~ 老大看不见)
雪山之巅 – 医疗衰弱 避坑!!!
这个齐全想骂人!!!
面试也不少了,还认为经验够多了,后果,我 x!!!真的上来就无能急眼。
HR 和爷爷一样,发个地位发个鬼鬼,问一下吧,间接转发图片让打电话,随后上三楼轻易找个中央开始面试,有点无奈。
面试官是个技术负责人,我 x,上来抠鼻屎,抠完就抹简历上了,登时好感全无。
全程和杠精一样,杠到我懵逼,杠到我斗争,对对对,你说的对。
-
问:Handler 为什么会透露?
- 答:因为 Activity 销毁时,Handler 可能有提早音讯未解决实现,导致 Handler 持有外部类援用,也就是 Activity 援用,进而导致 GC 无奈回收 Activity,从而引起内存透露。
后果间接被怼,Activity 都 finish 了,还怎么会产生透露,透露就透露呗。再换句话说,C++ 须要手动解决回收,Java 中有 GC,基本不须要你去解决内存回收的事儿。
ummm,对,你说的对。
-
问:为什么抉择 Android?
- 答:酷爱以及看好。
-
问:有多爱?
- 答:死了都爱。
次奥!!!
xxoo!!!!!!
爱唱 – 音乐 / 直播
大小周,早十晚九。
- 到职退职、工作经验形容、次要负责哪儿些内容,近期次要负责哪儿些。
- 你平时 App 开发,次要精力在哪儿块?业务?还是?(这个问题问的就很玄学,必定次要精力在业务开发上)
- 怎么做的 Apk 瘦身?(说一半被打断了,说是感觉在背书,XD,我辛辛苦苦折腾小半个月呢。下次我学学声优呗。)
- 如何实现歌词播放突变,说一下难点以及留神的中央。
- 如何防止我的项目中呈现的空指针?
- 假如利用位于后盾,然而当初须要操作资源文件,这样会导致解体,如何预防这种状况?
- 如何实现换肤,具体实现形容下?
- 用户批改头像,如何保障其他人拜访第一工夫获取最新的头像?
- App 中在某个页面批改了数据,如何保障其它页面同步更新最新数据?
- 兴趣爱好有什么?
普天战争 – 供应链
刚巧上家线上面试,电话过去了,得亏是电脑端接听,后续回拨。
和总监聊了半个小时左右,大略就是到职起因、我的项目经验、平安防护等惯例内容。
薪资偏低,社保全额缴纳。
总监还是蛮不错的,性情挺好。
思越美扬 – 婚恋
- 自我介绍、到职起因、我的项目介绍
- 罕用的 Java 汇合有哪儿些?
- HashMap 是线程平安的吗?哪儿些是线程平安的?
- List 和 Set 有什么区别?
- 多线程下操作 List 会有什么问题,如何防止?
- 多线程通信理解过哪儿些?
- 线程池理解有多少?
- 线程生命周期你晓得有哪儿些?
- 内存透露如何解决?
- 领取接入过哪儿些?
- 简略说一下某个平台领取流程。
- WebScoket 应用过吗?
新浪微博 – 直播
新浪微博的体验真的敌对到极致。
从招聘者电话被动沟通学历,以及前期被动提供 HR 审核,到最初告诉面试,很粗疏。
一面面试官很不错,目前只有这么一个岗位,竞争压力还是蛮大的。
聊了一个小时左右,有点颤抖是真的,毕竟也是大厂面试呢~
- 自我介绍、工作经验形容、到职起因。
- 有没有做的比拟不错的我的项目,简略聊聊。
- 对于接下来的工作、求职以及倒退,有什么想法?
- Kotlin、Flutter 应用多久了?本人对把握水平进行一个评估阐明。
- Kotlin 在我的项目中的覆盖率大略是多少?
- Apk 瘦身怎么做的?
- 手写线程平安单例模式伪代码,写出关键点就行。
- 同步办法和同步块的区别以及优劣势。
- 平时怎么去保护本人的 Blog?更文周期大略多久?
- 播放器用过哪儿些?次要是在什么业务?
- LeakCanary 外部工作流程理解多少?
- LeakCanary 弱援用队列是本人保护的?还是 Android SDK 提供的?
- 如何实现获取 Android 中的内存透露点呢?
- 为什么做图片库迁徙?
第一次从大厂面试官失去面评,而且好评满满,真的冲动坏了。同时也被告知这个岗位竞争压力很大,让我平常心。
贴心,感激老哥~
忽然因为面试老哥,特地特地想去微博。
然而也能明确,短板劣势满满的当初,毫无和别人竞争的资本。
日!气,前几年浪。
2021 – 10 – 29
思越美扬 – 婚恋
守业公司,去了和负责人聊了将近两个多小时,其实也包含批改一个 RecyclerView 缓存引起的 bug。
整体来说就是聊我的项目,聊倒退(公司我的项目 / 集体将来)。
公司属于守业初期吧,人不是很多。
灵光在线 – 相机类
每次去都给一瓶水,nice。
和 CEO 简略的聊了会儿,比方集体倒退、到职起因等等。CEO 挺温和的。
其实从心田而言,是比拟恶感这种面试的,大量的工夫耗费在路上,理论沟通短暂,曾经是三面了,有点疲乏了。
大厂也不过如此吧。
算了。
遗记叫啥了
刚点的外卖刚刚关上,电话就来了,一片懵逼下开启了面试。。。
-
说一下 Java 中形象、接口区别。
形象:只有申明没有具体实现,必须应用 abstract 润饰。
- 形象办法必须为 public/protected,如果为 private 则子类无奈继承;
- 抽象类不能用来创建对象;
- 如果一个类继承于一个抽象类,则子类必须实现父类的形象办法。如果子类没有实现父类的形象办法,则必须将子类也定义为 abstract 类。
接口:对行为的形象。
- 接口中能够蕴含变量和办法。须要留神变量会隐式指定为 public static final,应用 private 会报编辑谬误;
- 接口中的办法不能有具体实现。
区别:
- 抽象类能够提供成员办法实现细节,接口只能存在 public abstract 办法;
- 形象中成员变量能够是各种类型的,而接口中的成员变量只能是 public static final 类型的;
- 抽象类中能够有动态代码块和静态方法,而接口中不能含有这些;
- 一个类只能继承一个抽象类(Java 单根性),然而能够实现多个接口。
- 深刻了解 Java 的接口和抽象类
- 援用传递、值传递有什么区别?
- 援用传递的 value 在某个办法内被批改后,自身会产生扭转么?
-
Java 泛型有什么用?
泛型的次要通过编译期查看类型安全检查来进步程序的类型平安。
- 泛型通配符 extends 有什么区别?
- 元注解、一般注解有什么区别?
- 我的项目中注解应用过哪儿些?
- 如何自定义注解?
- 线程创立形式。
- 多线程平安如何保障。
- 同步锁润饰静态方法和一般办法会有什么区别?
- 两个线程竞争会呈现什么状况?
- 如果没有竞争到的线程会开释 CPU 吗?
- sleep 形式会开释 CPU 么?
- sleep 能够中断吗?
- 形容下线程中生产者、消费者。
- 安卓线程通信形式。
- 子线程能够创立 Handler 吗?
- 一个线程创立多个 Handler 吗?
- 一线程中会有几个 Looper?
- ThredLocal 能够寄存哪儿些数据?
- ThredLocal 实现机制。
- 单例模式实现形式有哪儿些?
- 饿汉和懒汉的区别?
- 懒汉模式在多线程状况下会有什么问题?
- 同步锁在多线程的状况下会有什么问题?
- 排序算法理解有多少?
- 说一下算法冒泡工夫复杂度。
2021 – 11 – 01
汇商共达 – 电商
老哥有种没睡醒的感觉,面试过程一度很难堪,很尬。
- 自我介绍、在北京吗、住哪儿、加班重大吗?工作我的项目形容。
- 讲一下 Apk 优化。
- MVP、MVVM 区别,优缺点是什么。
- 讲一下 Glide。
- Glide 是通过什么网络进行加载的?
- Glide 有几级缓存。
- 讲一下 RxJava。
- 你给我讲讲 Flutter 吧。ummm
- Flutter 权限治理是什么?
- Java 面向对象简略讲一下。
- 重载和重写有什么区别?
- 子类和父类都存在雷同的属性,会呈现什么问题?
- 父类如何调用子类的参数办法?子类如何调用父类的参数办法?
- 怎么做的拉流直播间。
- PDF 在线预览如何实现?
- 做个自我评估。
2021 – 11 – 02
原本想着约三家,上午两家正好一个 1 号楼,一个 3 号楼,早点去,尽可能上午搞完两家,再去立水桥南搞定最初一家,之后就能够回家吃饭去了。
后果,好家伙,第一家间接给我气炸了。原本想着面试多年,无论遇到什么样的脑残,都能做到“荣辱不惊”,没想到,这个脑残间接逼的我从手里拿走简历,间接走人了。
第三家也被忽然告知因为公司员工核酸检测问题,目前对立线上,须要线上口试,随后持续后续面试。
惟一不错的是第二家,二面、三面、四面聊的还能够吧。至多我这么了解的。😂(后续老大说:你是自我感觉良好
-_-!! 就很过分,知道不
壳壳互联 – 社交 避坑~!!!
纯脑残,不晓得谁给的勇气和自信。区区一个小公司,同样应用三方 SDK,哪儿来的自信,说和厂商深度单干,独特修复问题???说半天我 tmd 认为你自研音视频 SDK 呢!
面试开始是由一个小哥哥聊着,整体还算不错,失常的问答。
- 自我介绍、公司我的项目介绍、最近负责什么、Kotlin 用多久。
没说几句话,忽然来个更年期的妇女,间接闯进来,抱个电脑霹雳吧啦,给我整懵逼了。面试小哥说什么这是花姐???随后小哥持续面试。
- 怎么封装的网络层,具体用到哪儿些货色?
- Glide 有什么理解?
- 你是如何进行我的项目架构降级?
- 说一下 ListView 和 RecyclerView 区别。
- 你是怎么做的性能优化。
性能优化从 Apk 瘦身说到网络方面,这里网络举了几个例子:
- 接口最小单一化,防止响应数据包因无用数据导致过大;
- 图片优化,采纳阿里云 OSS,针对不同业务获取不同类型的网络图。例如 List item 中的封面图,申请缩略图。而详情外面则采纳获取对应的原尺寸图片。
原本持续打算往下阐明,更年期忽然打断:
- 更年期:你能说点重点吗?咱们轻易招个安卓就是用的阿里云 OSS,而且阿里云 OSS 是新技术吗?这不都是普遍性的常识吗?
- 答:是根底。然而优化的计划也是通过很多不同的根底组合去实现综合的优化,况且小公司可能不会思考很全面。再说,我的计划并没有说残缺。再退一步而言,我已经做的 Apk 瘦身,实质也是通过很多的根底进行的优化,从而达到综合效益。(这话我还没说完,间接被打断,可能只说了不同的根底组合。。。
- 更年期:我晓得我晓得,你们刚刚聊的只是方法论,你五年只会方法论吗?
- 答:(满脑子疑难)方法论?
- 。。。
随后这玩意开始疯狂装逼的途程,全程不让人谈话,一谈话就是我晓得我晓得,我没有歧视你。
WTF???我来面试的,我是来和你干架的?方法论?真不知道依照您老人家怎么答复这些问题,不算是方法论。我 tmd 的说 Glide 生命周期感知以及为什么具备生命周期感知、RGB_565、缓存以及集体了解也是 tmd 方法论?
吹牛逼说什么分分钟每天拉新三四千人???
嗯???什么时候挪动端拉新三四千人都值得这么吹牛逼了???WTF???
说什么日活没用?几天就掉下去了。用户量也没用,对开发也没用???更年期大妈,您老人家确定???不说亿级别的设施,百万级的都会遇到奇奇怪怪的问题,和研发无关???我 tmd
后续的沟通齐全是有效的,始终在逼叨叨什么方法论。想表白下本人的想法,尽管极度不爽,然而还是想保持实现面试,然而过分的是,只有是表白本人想法,刚说不超过三个字,间接我晓得我晓得,怎么怎么怎么?后续逼的我间接说,那如果这样的话,我感觉这次面试没必要继续下去了,谢谢。 各位,我再说这话的时候,这个更年期的妇女仍然叨逼叨???间接拿过简历,拜拜了您呐。
下楼连抽两根烟,肺都气炸了!我是来面试的,又不是和你干架的。你什么都晓得,那你招人干嘛?面试不就是互相沟通的吗?你抛出你感兴趣的问题,我用我平时的教训答复,这个有什么问题吗?如果说源码层面不够深刻,我抵赖。但最起码得让人把话说完吧?我一二三四都列举了,间接掐死???
那还面试沟通个屁!!!
所谓的更年期花姐,你做集体吧你。
已向 BOSS 投诉,各位避坑!!!
汇商共达 – 电商
公司环境蛮不错的,大楼电梯特地难等,客梯须要刷卡,好容易等到上电梯,还寻思有个小伙伴能刷同一层楼,再不济我往下走几层,后果间接干到 14 层,步梯门须要刷卡。。。随后又下到一楼,期待货梯,等了半个多小时,门一开,保洁大叔和满满的垃圾展示眼前。默默的期待大叔把垃圾都丢进去,上了楼。
面试官有点忙,略微等了会儿。进去填表,小姐姐给双手消毒。过了一会儿研发核心负责人过去了,带着去了会议室,蛮和善的。
二面研发核心负责人:
- 自我介绍、工作经验以及所负责我的项目 / 职责、具体负责的业务。为什么待这么短时间?
- 车载端和挪动端原生开发有什么区别?
- 你是如何进行技术选型的?
- 视频直播间这块具体实现形式是怎么?说一下大略的思路。
- 做的哪儿个我的项目比拟好?印象粗浅的,简略聊下。
- 为什么跨平台计划抉择 Flutter?你们的我的项目反对两端吗?简略说下应用感触如何。
- 从集体角度说下小程序、Flutter 以及原生挪动端应用场景。
- 谈下对 Kotlin 的了解。
自我感觉还不错吧,气氛挺不赖,老哥性情贼 nice。
二面老哥进来帮我找三面负责人,刚出去没一会儿就跑回来,和我说:马上哈,稍等下~
登时心里暖暖的~
三面部门负责人:
- 简略介绍最近负责的内容。
- 聊一下 App 优化方向。
- 为什么几个月就到职?
- 工作经验形容、团队规模多大、加班状况怎么?
- 安卓端发动一个服务端接口申请,这个过程会蕴含哪儿些方面。如果让你设计会怎么设计?
- gzip 压缩理解过哪儿些?
- 加密形式晓得哪儿些?都有什么区别。
- 安卓团队规模最大的是哪儿家?
三面部门负责人是个女生,性情蛮不错的。
四面人事:貌似是人事总监,我也遗记了。人事给人的感觉很老练。
- 你感觉这几次面试感觉怎么样?
- 为什么这么短的工夫思考换工作?
- 没思考转内吗?
- 谈谈将来倒退布局。
- 下一份工作想法。
- 工作经验以及公司规模简略形容。
- 薪资、待遇。
整体来说蛮不错的,除了电梯等的太过于漫长。环境蛮不错的,看着大家热热闹闹的。
面试完之后在楼下坐了会儿,抽了会儿烟。
有点挺无奈的吧。两家的区别太大了。两头里面等了半天,下着雨。最初躲到公开停车楼梯间,伸直到了面试工夫。😂
生存总是不易,也充斥了太多的不确定性。
2021 – 11 – 03
比邻星空 – 音乐 / 视频 / 浏览
初试线上面试,一个半小时的题目,不到半小时写完了,最初几个算法题切实是没有思路,放弃了。
在线面试工具:
- https://www.showmebug.com/
大略就是市面上常见的题吧,而后会有几个补充,比方:
- 简述 MVC、MVP 以及优劣势。
- 如何进行一个正在运行的线程?
- 三个办法,A 办法中 return 软援用润饰的变量,B 办法中间接调用 A 获取到 value,C 办法调用 B 办法进行输入,问有什么问题?
- 剩下算法题印象不太深了。
2021 – 11 – 05
上午的面试有点无奈,下午的面试人事记错了,线下改为线上,不必进来折腾了。
比邻星空 – 音乐 / 视频 / 浏览
面试官网络较差,磕磕绊绊的折腾十多分钟,次要就是问了数据结构的底层,ummm
网络比拟差,听的比拟麻烦。面试官说的让人了解有问题,插入不说插入,说 cha,我蒙圈半天,插入?还是查?
- 自我介绍(网络问题,介绍了两遍)、到职起因、团队规模、学历问题
- 数组和链表有什么区别?
- ArrayList 和 LinkedList 有什么区别?底层源码理解过吗?
- HashMap 底层原理是怎么?
- HashMap 是如何查问到具体值对应的 value?
- HashMap 如何插入一个数据的?怎么晓得我具体插入地位?
- ConcurrentHashMap 和 Hashtable 有什么区别?如何实现线程平安?底层如何实现?
- Volatile 作用有哪儿些?
- 什么是原子性?
- Java 援用类型和区别?
- CAS 有理解过吗?
- Apk 怎么瘦身的?
- 有本人开发过 so 吗?
红松在线
还是要感激人事,记错了,线下改为线上了,不然好家伙,坑了就。
早十晚十,真心扛不住啊。
- 到职退职、到职起因、学历阐明、学历会影响失常工作吗、安卓做了多久。
- App 的版本控制怎么做?
- TCP 和 UDP 区别。
- 三次握手讲一下。
- 四次挥手讲一下。
- 算法怎么样?
- 如何和 js 交互?具体参数。
- 直播怎么做的?
- 线上的问题怎么排查解决的?
- 直播卡顿、黑屏怎么解决的?
- 怎么做的数据埋点。
- 工作负责内容有哪儿些?团队规模有多大?
- 直播提早怎么解决的?
小米 – 部门未知
面试老哥还是蛮不错的,一边锤,一边去讲,到最初了,说咱整个算法玩玩吧,一脸香甜,老哥各种提醒,惋惜呀。
算法这块还是狠单薄,根底这块也把握不是太好。
- 自我介绍、学历介绍、最近负责什么我的项目。
- 最近我的项目中次要用到哪儿些技术?我的项目用的哪儿些架构。
- MVVM 是一个怎么的架构,在 Jetpack 中用到哪儿些比拟好的组件。
- Lifecycle 外部是如何实现的?
- Lifecycle 目前反对哪儿些层面?
- LiveData 底层是一个什么原理?
- setValue() 和 postValue() 有什么区别?
- 假如我用 LiveData 的 postValue() 不想收到反复的值怎么操作?
- Jetpack 其余组件有理解吗?
- 说下对于 Hilt 的了解。
- WorkManager 有什么作用,个别会用在哪儿些场景。
- 组件化抉择的是哪儿个框架?
- ARouter 底层实现原理是怎么的?
- ARouter 外部如何解决不同 module 之间的跳转的?
- ARouter 跳转是在编译期执行还是运行期执行的呢?
- 不同 module 中,如何做不同页面之间的跳转的?外部如何实现的?
- ARouter 降级策略理解过吗?
- ARouter 在扫描过程中的 apt 注解怎么做的,有理解过吗?
- 说一下你的 Apk 瘦身的策略。
- 启动方面优化做过哪儿些?
-
从桌面点击 Icon 启动 App,这个过程是怎么的?
- 桌面利用图标,Launcher 过程将启动 Activity 的申请以 Binder 的形式发送到 AMS。
- AMS 接管到启动申请后,交付给 ActivityStarter 解决 Intent 和 Flag 等信息,之后交给 ActivityStackSupervisior/ActivityStack 解决 Activity 进栈相干流程,同时以 Socket 形式申请 Zygote 过程 fork 新过程。
- 在新过程中创立 ActivityThread 对象,并且在主线程中开启 Looper 音讯循环,开始解决创立 Activity。
- ActivityThread 利用 ClassLoader 去加载 Activity,创立 Activity 实例,并回调 Activity 的 onCreate() 办法,这样便实现了 Activity 的启动。
- 当点击一个利用图标当前,都产生了什么,形容一下这个过程?
- 跨过程通信在我的项目中用到过哪儿些?
- 跨过程通信的形式有哪儿些?
- Android 中的跨过程次要底层实现是基于什么形式的?
- 你理解 Binder 机制吗?简略形容下。
- Binder 机制相比拟管道、信号会有什么劣势?
- Binder 的组成部分。
- CAS 理解多少?
- Binder 外部是如何合作使其能在过程间实现通信操作?
- 我的项目中用到的图片加载库是哪儿个?
- 为什么进行图片库的对立迁徙?
- Glide 和 Fresco 从缓存这块来说有什么区别?
- 自定义 View 用过吗?说一下流程。
- onMeasure 测量模式有几种?
-
你晓得 onDraw() 中如何绘制的吗?绘制的程序?
- 绘制视图背景;
- 绘制画布的图层;
- 绘制 View 内容;
- 绘制子视图,如果有的话;
- 还原图层;
- 绘制滚动条。
- 我的项目中如何做的性能优化?
- LeakCanary 是如何检测到内存透露的?
- Traceview 用过吗?
- WebView 怎么应用的?原生还是?
- Android 和 JS 交互会遇到哪儿些问题?
- WebView 做过哪儿些优化?
- 线程池有哪儿几局部组成?
- 我的项目中多线程怎么用的?
- 多线程中如何实现挂起?
- Kotlin 协程底层如何实现的挂起?
- Kotlin Flow 有理解过吗?
- Flutter 我的项目你次要做了哪儿些内容。
- Flutter 中的 Dart 是单线程的吗?
- Flutter 如何实现多任务并行?
- 音视频如何实现的?播放器用的哪儿家的?Google 的 exo 播放器晓得吗?
- 开发中有用到过一些设计模式吗?
- Synchronized 的原理理解过吗?
- Java 虚拟机组成部分简略形容。
- 堆外面次要寄存的哪儿些数据结构。
- 栈外面次要寄存的哪儿些数据结构。
- 说一下 Java 中的泛型擦除。
- HashMap 底层构造怎么的?
-
HashMap 如何扩容的?
首先 HashMap 掂量扩容机会的规范为:
- 当插入数据长度大于 HashMap 长度 x 负载因子时,便会进行扩容操作。默认状况下 HashMap 长度为 16,默认负载因子为 0.75,也就是当插入第 13 个元素的时候便会产生扩容。
而扩容的过程为:
- 首先 HashMap 会创立一个原有数组两倍大小的新数组,接着会遍历原数组,将所有的 entry 挪到新数组中。
- 【漫画编程】面试必问 hashmap 扩容机制怎么答拿满分?
- HashMap 中的 hash 碰撞是什么?
- HashMap 中什么状况下会呈现 hash 一样?
- HashMap hash 抵触如何解决?
-
HashMap 负载因子为什么是 0.75?
负载因子为 0.75 时,正好处于一个空间和工夫的衡量点,绝对空间利用率较高,而且防止了相当多的 hash 抵触,使得底层的链表或者红黑树的高度比拟低,间接晋升了空间效率。
- hashmap 为什么要有负载因子?
-
扩容因子太大或者太小会有什么问题?
扩容因子太大会造成空间资源节约,扩容因子太小会造成频繁扩容,而扩容是一件老本绝对较高的场景。
- Handler 如何将一个音讯推到最后面,优先执行?
- postDelayed 外部如何实现的提早执行?
- RecyclerView 缓存和 ListView 缓存有什么区别?
- RecyclerView 如何刷新单个 item?
- APT 技术理解过哪儿些?
- AOP 代码优化理解过哪儿些?
- 插桩技术你晓得什么?
- AMS 你理解多少?
- 埋点怎么做的?
- 友盟采纳的全埋点还是主动埋点,底层如何实现的?
- 平时开发会遇到 OOM 吗?
- ANR 有遇到过吗?
- 遇到 ANR 的状况如何排查。
- 你我的项目中还有哪儿些技术点是我没问到的吗?
- 到职在线,具体这个学历是怎么的?
- 有个链表,比方是 1、2、3、4、5,入参为 k,假如 k 为 2,那么输入链表为 4、5、1、2、3,有什么思路。
2021 – 11 – 08
快手面试完还是蛮失落的,货色很根底,惋惜之前应用却未好好关注。
好受了半天。
快手 – 商业化
快手的面试官还是不错的,然而考量根底细节比拟多。
面试开始的时候会介绍此次面试的流程,还会特意阐明,如果有纳闷的中央会随时打断发问哦。
很温和的面试官,始终在疏导,感激老哥。
- 自我介绍、最近工作介绍、我的项目介绍、团队规模、负责哪儿块业务。
- GitHub 上有没有比拟好的我的项目分享?
-
形容下 rebase 和 merge 区别。
两者都是用于解决分支合并操作。
merge: 分支线多,会产生一条新的 merge commit,记录实在 commit 状况,不便我的项目追溯。抵触时只须要批改后从新 commit 即可。
rebase: 繁多分支线,会合并之前提交的 commit 历史。抵触时须要批改后再次 add 以及 rebase –continue。
- Merge vs Rebase
-
两种形式适宜场景?
一般而言,从主分支上拉取代码采纳 rebase,这样保障拉取下代码分支简洁明了,不会掺杂他人的具体 commit 详情。而将本地代码推送近程分支上采纳 merge。
另外,如果波及一个性能屡次 commit,还须要通过 rebase 合并 commit。
-
如何合并多个 commit 为一条 commit 呢?
- git rebase -i HEAD~[筹备合并几条 commit]
- Https 申请流程。
- Https 和 Http 区别。
- 对称加密和非对称加密具体在 Https 流程中的哪儿个环节应用?
- 简略形容下抓包流程。
- 抓包 Https 的时候为什么须要装置证书?
- 证书校验是在 Server 端做的还是客户端做的?
- 为什么我装置证书之后就能够抓到 Https,不装置就抓不到?
- 形容下重载和重写区别。
- 变量能够重载和重写吗?
-
判断如下输入内容:
public class A {int num = 1;} public class B extends A { int num = 2; public static void main(String[] args) {A b = new B(); System.out.print("--->" + b.num); } }
- 假如 B 类中 num 为 String,这个时候输入内容是?
-
判断如下输入内容:
public class A {public A(){System.out.println("结构 A"); } static {System.out.println("static A"); } void printThings(){System.out.println("Test A"); } } public class B extends A{public B(){System.out.println("结构 Test1"); } static {System.out.println("static Test1"); } void printThings(){System.out.println("Test1 print"); } public static void main(String[] args) {A t = new B(); t.printThings();} }
-
假如我当初依照 JDK 中 String 的命名在包下定义一个 String 类,那么我在我的项目中间接调用 String,它理论执行的是 JDK 中 String 还是咱们自定义的 String?假如我同样在调用 String 前追加一样的命名空间地址呢?
java.lang.String ---> JDK 中 String java.lang.String ---> 本人我的项目中定义的 String new String() ---> 这时候会调用哪儿个 String?new java.lang.String() ---> 这个时候呢?
- Java 中 Exception 的继承关系是?
- Java 中的受检异样和非受检异样区别是?
- Java 中 Exception 和 error 区别是?
- Kotlin 中会写 try catch 吗?或者说 Kotlin 中操作 IO 流回去写 try catch 吗?
- let、apply、with、run、also、takeIf、takeUnless、repeat 有什么区别?什么场景下适宜用哪儿个?
- Kotlin 中的 in、out 是什么意思?
- Kotlin 中 :: 是什么意思?代表对象还是函数块?
- Kotlin 中的 sealed 密封类和枚举有什么区别?
- 怎么去学习的 Kotlin?按需学习还是全副都看一遍?
- 什么是 lambda 表达式?
- lambda 表达式中反对 return 么?
- 内联函数和非内联函数有什么区别?
- Activity A 跳转 B 生命周期是怎么的?
- 如果我当初在 B 页面点击了 back,此时的生命周期是怎么的?
- 你对于这个期间的生命周期怎么了解的?为什么不是间接销毁?而是关上 A 之后才会销毁 B?
-
public View inflate (int resource, ViewGroup root, boolean attachToRoot) inflate (resource, root, true) ---> 最初一个参数 true/false 代表什么意思?---> return 的 View 是你增加进去的 layout 还是?---> root 如果为 null,而且最初为 false,这个代表什么意思?---> 假如我当初申明一个 View B,外部是 FrameLayout,而后 B add View 后传入 root,会有什么问题吗?
-
Activity 中的 onCretae() 如何获取 View 的宽高?
- View.post(Runnable)
- 为 ViewTreeObserver 注册 OnGlobalLayoutListener 接口
- IdleHandler:Looper.myQueue().addIdleHandler
- 如何在 onCreate 中拿到 View 的宽度和高度?
-
为什么通过 view.post() 能够获取到?背地的原理是怎么?
通过 View.post() 增加的工作,是在 View 绘制流程的开始阶段,将所有工作从新发送到音讯队列的尾部,此时相干工作的执行曾经在 View 绘制工作之后,即 View 绘制流程曾经完结,此时就能够正确获取到 View 的宽高。
-
算法题:数组反转实现形式。
双指针解法。
小米 – 销售研发组
面试官进房间比拟早,早早的就开始面试了。
感觉整体问的比拟形象,比拟懵。
- 自我介绍搞起来、退职到职、到职起因。
- 列举一个难度比拟大的我的项目,如何解决的?
- 具体阐明你编写某个性能具体点你写的比拟苦楚。
- 团队规模多少?
- 国内和国内如何做的辨别?
- 假如国际版我的项目须要辨别具体国家,这个怎么解决?
- 你的技术栈大略是什么样子的?为什么?
- 大前端这块有什么理解?有哪儿些具体落地?
- JS、RN 有理解吗?
- 晓得 JS 跨域吗?聊聊。
- Http 状态码晓得哪儿些?具体的晓得哪儿些?
- 499 遇到过吗?503、504 都是啥意思?
- 聊一下 Http 三次握手。
- Http 四次挥手是怎么?
-
剑指 Offer 61. 扑克牌中的顺子
从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这 5 张牌是不是间断的。2~10 为数字自身,A 为 1,J 为 11,Q 为 12,K 为 13,而大、小王为 0,能够看成任意数字。A 不能视为 14。
示例 1: 输出: [1,2,3,4,5] 输入: True 示例 2: 输出: [0,0,1,2,5] 输入: True 限度:- 数组长度为 5 - 数组的数取值为 [0, 13]
- 冒泡排序、快排算法理解多少?
- 如何实现单例模式?
- 对于技术方向将来布局是怎么?具体阐明。-_-!!
启客 – 数据服务
网络状况不太好,纯语音聊的。
公司是刚刚组件 Android 团队,面试官应该不是 Android,个人感觉吧。
- 自我介绍、到职起因、目前状态、公司业务线。
- 你是如何了解的进攻编程?
- 说一下我的项目中你负责的模块、性能以及做的比拟好的中央。
- 瘦身计划大略说下。
- 假如我的项目中须要像素极高的图片,这块怎么解决?
- 组件化之间的劣势?
- ARouter 底层实现原理是怎么的?
- Handler 这块说下,底层原理以及平时会用它做哪儿些操作?
- ANR 这块次要怎么解决的?
- App 优化具体做了哪儿些操作?
- 内存透露的状况如何解决?还有哪儿些状况下会呈现内存透露?
- App 日活、月活数据大略多少。
- 介绍下你开发的 Flutter 我的项目。
- dio 你会做哪儿些封装?具体阐明。
- 安卓过程保活形式?低版本和高版本计划有哪儿些。
- 你是如何了解 Activity 和 Fragment 的生命周期以及它们之间关系吗?
- 说下 Activity 和 Fragment 具体生命周期。
- Activity 的启动模式有几种,区别是什么?
- WebView 怎么和 JS 互相调用?
- 假如前端 JS 调用 Android 原生办法,传入一个 String,Android 原生接管到并且弹出 Toast。这个过程如何实现?Android 如何解析?
- 假如线上呈现重大 Bug,如何疾速定位以及修复?
- 对于将来两三年的指标布局是什么样的?
- 具体阶段的具体实现形式。。。-_-!!
- 你对于将来工作有什么想法?
2021 – 11 – 12
FitTime – 社交网络
昨天整夜失眠,凌晨迷迷糊糊半天,随后接到了面试电话。
- 自我介绍
- 说一下你理解的 HashMap。
-
HashMap 负载因子能够更改吗?
能够批改,须要依据要存储数据的容量进行一次性的指定。
HashMap 提供了结构,须要传入初始化容量大小以及对应的负载因子即可。 - 说说 TreeMap。
- TreeMap 和 HashMap 有什么区别?
- 对象锁和类锁有什么区别。
- == 和 equeal() 有什么区别。
- 定义两个 int,用 == 比拟,这时候比拟的是什么?
- 说一下你理解的线程池。
- AsyncTask 底部线程池如何实现的?
- 讲一下 Handler。
- 一个线程中能够创立几个 Handler?
- 多个 Handler 中对应多个 Looper 吗?
- Handler 中通过什么辨别的不同 Handler?
- Handler Message 发送 null 代表什么?
- 讲一下 Android 中举荐的 ArrayMap。(着实让我懵逼了一下)
- 说一下 View 的绘制。
- 说一下 Android 中的事件散发机制。
- App 如何申请最大内存?
- OkHttp 你罕用的有哪儿些拦截器?
- 双亲委托是什么?
- 算法:如何判断链表中有环?
- 算法:如何讲两个栈合并到一个队列。
2021 – 11 – 15
普陆德中盾 – 信息安全
公司养只小猫咪,nice 的很。
一面二面很速度,速度到下楼抽了两根都很懵逼的状态。
大略就是问了内存透露和 Flutter 了解吧。
云建科技 避坑
有点无奈。。。
后期约面试的时候,问我是否线上,沟通一番,抉择线上吧,毕竟之前被坑了太多了。。。
准时四点进入面试间,等了差不多小二十分钟,来个 HR 开始解说公司我的项目状况,之后因为网络稳定掉线。间接说,你思考下,适合就约二面。
ummm???
得亏没去线下啊
End
生存不易,且行且珍惜。。。