ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

9.牛批了 Android 2022高级 资深面试题 一线大厂和二线大厂面试真题精选 (字节跳动 附答案)第九套 38k+

2022-01-10 19:03:49  阅读:242  来源: 互联网

标签:面试题 难易 Glide nums 美团 真题 线程 大厂 static


笔者是面霸,面试500+场       当过考官:面过别人500+场     去过500强,也呆过初创公司。 斩获腾讯、华为、字节跳动,蚂蚁金服,OPPO,美团,安卓岗offer!我有一套速通大厂技巧分享给你!

12年毕业,专科生,做安卓9年了。横扫深圳各大互联网公司,从开始的4k工资到现在的4万。我经历了什么?

本人也是一个屌丝,刚毕业的时候一直沉迷泡妞,我一直换,换了9个女朋友,然后在去年深圳买房安定下来了。然后开始写博客。免费分享给大家! 建议高级的同学刷,中间误入,否则要被打击积极性。手段极其残忍。 本系列一共10套面试真题,适合快速找工作的人准备,薪资和公司分别如下。 搞定前3套,可以去二线大厂,秒杀70%公司 搞定前6套,可以去二线和一线大厂,秒杀80%公司 ,面试官在你面前都是弟弟 搞定前10套,一线大厂,秒杀100%公司,中国互联网任你挑 ,横扫北上广深,吊打面试官 第一套平安科技   价值22k+, 难易程度:简单      看完你能进这些公司:平安,珍爱网,步步高,优必选科技,柔宇科技,迅雷,芒果网,吉比特,传音控股,海能达,金蝶,有赞 第二套京东         价值22k+,   难易程度:简单     看完你能进这些公司:京东 ,联想,旷视,优酷,58同城,贝壳找房,作业帮,创新工场,金山,唯品会,猎豹,科大讯飞,格力 第三套顺丰         价值25k+,   难易程度:中等      看完你能进这些公司:顺丰,网易 ,海康威视,斗鱼,小红书,去哪儿,喜马拉雅,创维,涂鸦智能,51信用卡 第四套Shopee    价值27k+,   难易程度:中等      看完你能进这些公司:Shopee,京东, 深信服,TCL,平安,荣耀,  美的,一加,随手记,中兴,虎牙 第五套美团         价值28k+,   难易程度:中等      看完你能进这些公司:美团,大疆,顺丰,恒大,携程,货拉拉,知乎,爱奇艺 第六套OPPO       价值28k+,   难易程度:中等      看完你能进这些公司:Oppo,VIVO,360,新浪,拼多多,携程,微博,哔哩哔哩 第七套大疆           价值30k+,   难易程度:难         看完你能进这些公司:大疆,京东, 美团,爱奇艺,小米,拼多多,恒大,万科 第八套 腾讯           价值35k+,   难易程度:难        看完你能进这些公司:腾讯,阿里巴巴,抖音,快手, 百度,美团,华为, 滴滴         等国内所有企业 第九套 字节跳动     价值38k+,   难易程度:难      看完你能进这些公司: 腾讯,蚂蚁金服,今日头条,快手,百度,华为, 美团,滴滴    包含以上所有企业 第十 套 蚂蚁金服    价值40k+,   难易程度:难       看完你能进这些公司:腾讯,支付宝,字节跳动,快手,华为,滴滴,美团,百度       包含以上所有企业 我把面试厂商分为3类,一线大厂和二线大厂 

一类:腾讯,支付宝,头条,快手,OPPO,VIVO, 百度,华为二类A组:北京:滴滴,京东, 美团,爱奇艺,小米,拼多多,360,新浪,携程,微博,哔哩哔哩 ,搜狐,知乎,联想,旷视,优酷,58同城,贝壳找房,作业帮,创新工场,金山深圳:大疆,顺丰,恒大,万科,货拉拉,TCL,平安,荣耀,  美的,Shopee,一加,随手记,中兴广杭:网易 ,海康威视,斗鱼,小红书,去哪儿,喜马拉雅,创维,虎牙,涂鸦智能,51信用卡,猿辅导二类B组:海能达,金蝶,有赞,富涂,深信服,广和通, 移卡,珍爱网,步步高,优必选科技,柔宇科技,迅雷,芒果网,吉比特,传音控股唯品会,猎豹,科大讯飞,格力

强调:一定要搞的非常清晰,细节一个都不能放过,要非常深入,仅仅10题而已 1.livedata原理 lifecycle livedata setvalue和postValue的区别  ,连续post两次和set两次有啥区别 ?粘性事件怎么事件?粘性与数据倒灌 2.多线程的情况下,类的加载为什么不会出现重复加载的情况? 3.ARouter的原理是什么?如果不用ARouter,你会怎么去解藕。接口?设计接口有什么需要注意的? 4. 自定义LinearLayout,怎么测量子View宽高 5.不建议用系统提供的线程池,为什么? 6.OkHttp里面怎么处理SSL? 7.Launcher启动App的流程,中间有几种跨进程通信 8.Glide的缓存,有用过Glide的什么深入的API,自定义model是在Glide的什么阶段 9.如何进行单元测试,如何保证App稳定 ?  10. 算法:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 备注:字节跳动一定会问生命周期 1.livedata原理 lifecycle livedata setvalue和postValue的区别  ,连续post两次和set两次有啥区别 ?粘性事件怎么产生和解决的? 答:因为一开始创建的observer会被包装成LifecycleBoundObserver,这里面的默认的Version是-1只有调用过onChange之后才会被赋值为最新Version,这个包装方法Google并没有提供给开发者,所以只能自己创建mVersion来管理 解决办法:反射干涉Version 2.多线程的情况下,类的加载为什么不会出现重复加载的情况? 答:1).双亲委托机制不会重复加载类 2.)多线程,和饿汉式单列一样。是因为JVM在类加载的过程,保证了不会初始化多个static对象。类的生命周期主要是: 看源码应该多个线程进行ClassLoading的时候加锁了。加锁方式大概时类似于使用同步容器的ConcurrentHashMap。 所有的类变量以及static静态代码块,都是在一个叫clinit()的方法里面完成初始化。这一点,使用jclasslib可以看出来: clinit()方法是由虚拟机收集的,包含了static变量的赋值操作以及static代码块,所以我们代码中的static Singleton instance = new Singleton();就是在其中。虚拟机本身会保证clinit()代码在多线程并发的时候,只会有一个线程可以访问到,其他的线程都需要等待,并且等到执行的线程结束后才可以接着执行,但是它们不会再进入clinit()方法,所以是线程安全的。 3.ARouter的原理是什么?如果不用ARouter,你会怎么去解藕。接口?设计接口有什么需要注意的? 答:1)。编译通过apt生成java类 2)。初始化的时候映射关系,生成路由表 3)。跳转的时候,通过key,去hashmap中取找 接口+实现 4. 自定义LinearLayout,怎么测量子View宽高 答:如果是继承LinearLayout,不需要重写,已经有了,直接addview 如果是自己写LinearLayout,通过从上测量和从左测量,然后weight的化需要测量2次 5.不建议用系统提供的线程池,为什么? 答:5种类型

Executors各个方法的弊端:
1)newFixedThreadPool和newSingleThreadExecutor:
 主要问题是堆积的请求处理队列可能会耗费非常大的内存,甚至OOM。

    主要是里面是个没有边界的队列,导致有存储,就会导致oom
2)newCachedThreadPool和newScheduledThreadPool:
主要问题是线程数最大数是Integer.MAX_VALUE,可能会创建数量非常多的线程,

      创建线程影响cpu,可以创建无限的线程数。

6.OkHttp里面怎么处理SSL? 答:SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。SSL 证书 代码在okhttpClient上面:通过x509Trustmanager。然后设置sslSocketFactory();
 */ public class OkHttpClient implements Cloneable, Call.Factory, WebSocket.Factory { static final List<Protocol> DEFAULT_PROTOCOLS = Util.immutableList( Protocol.HTTP_2, Protocol.HTTP_1_1);   static final List<ConnectionSpec> DEFAULT_CONNECTION_SPECS = Util.immutableList( ConnectionSpec.MODERN_TLS, ConnectionSpec.CLEARTEXT)

boolean isTLS = false;
for (ConnectionSpec spec : connectionSpecs) {
  isTLS = isTLS || spec.isTls();
}

if (builder.sslSocketFactory != null || !isTLS) {
  this.sslSocketFactory = builder.sslSocketFactory;
  this.certificateChainCleaner = builder.certificateChainCleaner;
} else {
  X509TrustManager trustManager = Util.platformTrustManager();
  this.sslSocketFactory = newSslSocketFactory(trustManager);
  this.certificateChainCleaner = CertificateChainCleaner.get(trustManager);
}

if (sslSocketFactory != null) {
  Platform.get().configureSslSocketFactory(sslSocketFactory);
}
7.Launcher启动App的流程,中间有几种跨进程通信 答:6种,用了binder机制和socket 8.Glide的缓存,有用过Glide的什么深入的API,自定义model是在Glide的什么阶段 答:磁盘和内存缓存 内存缓存:lrucache和弱引用 Glide的get()方法中, 应用场景:比如修改硬盘缓存的存储位置或者自定义硬盘缓存 Glide加载的所有图片都将会使用ARGB_8888的格式
class MyGlideModule : GlideModule { fun applyOptions(context: Context?, builder: GlideBuilder) { builder.setDiskCache(ExternalCacheDiskCacheFactory(context)) } fun registerComponents(context: Context?, glide: Glide?) {} }
9.如何进行单元测试,如何保证App稳定 ?  答:JUnit4,JUnit4是一套基于注解的单元测试框架
  • @BeforeClass 测试类里所有用例运行之前,运行一次这个方法。方法必须是public static void
  • @AfterClass 与BeforeClass对应
  • @Before 在每个用测试例运行之前都运行一次。
  • @After 与Before对应
  • @Test 指定该方法为测试方法,方法必须是public void
  • @RunWith 测试类名之前,用来确定这个类的测试运行器
Android单元测试-常见的方案比较 - 简书 10. 算法:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 答:class Solution {     public int maxProduct(int[] nums) {         int maxF = nums[0], minF = nums[0], ans = nums[0];         int length = nums.length;         for (int i = 1; i < length; ++i) {             int mx = maxF, mn = minF;             maxF = Math.max(mx * nums[i], Math.max(nums[i], mn * nums[i]));             minF = Math.min(mn * nums[i], Math.min(nums[i], mx * nums[i]));             ans = Math.max(maxF, ans);         }         return ans;     } } 总结:都是设计,灵活性比较高的题目。没有那种死记的题目 关于作者: 曾经入职的公司: 2013年 快播公司       因为涉黄被查了 2014年 华强集团       深圳北最大的电子公司 2015年 TCL公司        深圳传统电子公司 2016年 顺丰科技        深圳快递老大 2017年 招商银行        深圳本地银行老大 2018年 字节跳动        深圳后海,抖音头条 2019年 VIVO               深圳手机厂上梅林 2020年  腾讯音乐        深圳滨海大厦 2021年  蚂蚁金服        深圳分公司 从月薪3000到年薪60万。从专科生到深圳一线大厂。关注我就能达到大师级水平,这话我终于敢说了, 年薪60万不是梦!

标签:面试题,难易,Glide,nums,美团,真题,线程,大厂,static
来源: https://blog.csdn.net/WHB20081815/article/details/122417039

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有