热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

字节、百度、美团、腾讯技术面,面试题及答案分享(Android岗)

字节(3轮技术面):一面:1.final2.类加载3.双亲委派机制,为什么要使用4.GC5.leackca

字节(3轮技术面):


一面:

1.final
2.类加载
3.双亲委派机制,为什么要使用
4.GC
5.leackcanary
6.hashmap
7.concurrenthashmap
8.事件分发
9.handler
算法:
1.LeetCode 61:旋转链表
2.合并两个有序链表

二面:

1.final修饰int类型的变量能不能改变?怎么改变?
2.反射可以改变这个int值吗?怎么改变?反射的原理?
3.try catch块;try抛出异常,catch中有return语句,finally会执行,finally为什么会执行?
4.接口和抽象类;
5.sleep和wait;
6.操作系统层面wait调用notify之后具体是怎么样的?
7.java有哪些锁?
8.sychronized怎么实现锁;
9.操作系统的进程间通信;
10.安卓进程间通信;
11.binder机制;
12.学习的过程中使用过aidl吗?
13.apk打包过程;
14.如何获取view的宽高;
15.ConstraintLayout;
16.设计一个类似glide的图片缓存框架:面试官进行了引导:设计一个数据结构,缓存策略等;
17.创建了两个ArrayList对象,l1.getclass()==l2.getclass(),判断结果;
18.手写单例模式的饿汉式和懒汉式;
算法:层序遍历

三面:

1.前两个面试官问的问题下去了解了吗
2.代码插桩;
3.leakcanary内存泄漏;
4.ANR的检测;
5.怎么判断是不是内存泄漏:一个程序不是内存泄漏,但是内存占用很大,怎么分析这个问题
6.一个app申请了内存对象,这些内存对象在内存中是什么关系?可以通过内存的引用链来分析吗?
7.有一份内存,通过哪些方法分析哪些类对象占比比较大?(比如有一颗引用树,用什么方法或者工具统计,哪些对象加起来最大?)
8.安卓四大组件;
9.进程间通信;
10.binder机制;
11.双亲委派机制;
12.插件化的方法;
12.热修复:已经发布到线上的类,我们要修改类的方法,可以从双亲委派机制来思考下怎么做?在AMS注册之前怎么加载.dex文件?
13.操作系统原理:有socket阻塞和非阻塞io,为什么有这两种socket io?
14.安卓怎么设计一个网络请求的框架?
15.jvm内存有多大?怎么做调优?
算法:
子数组范围的和;
重排链表;

由于文章的篇幅有限,面试题及其答案太多了,没有办法一一展示出来。需要领取面试题及其答案的朋友麻烦帮忙点赞这篇文章,领取方式在这篇文章文末卡片中。

部分答案解析:
在这里插入图片描述

百度(3轮技术面):

1.Java访问修饰符
2.volatile作用(面试官发音也奇怪,我第一遍没听清他说啥,他还给我拼一遍,结果拼写也没拼对,跨服聊天)
3.Java GC机制(知道的都缕了一遍)
4.死锁(说完定义啥的,问了点场景,死锁八股选手表示我不会= =答的拉胯到家)
5.Activity生命周期
6.Activity A到B的生命周期变化,B是透明的呢?(我寻思笔试这东西都占了三十分简答了,面试怎么还问?)
7.ANR(怎么捕获?怎么处理?麻了,问深了不会)
8.手撕:数组最小的K个数
9.手撕:有重复项数组的所有排列(感觉正常就一道算法吧,我好像写的太快了,面试官非常错愕的又给我找了一道,撑到四十分钟呗,结果这道我成功的没写完,讲思路也是暴力思路,醉了,自己给自己挖大坑)
10.Android布局
11.动画
12.网络请求
13.手撕:反转双向链表(面试官:你说下思路,写不写都行。我:那我写。当时心想的就是你这就要挂我?我得再让你看我十分钟)

部分答案解析:
在这里插入图片描述

美团(3轮技术面):

1.Android布局(各种Layout,什么FrameLayout的使用场景balabala)
2.说了点布局优化相关
3.进程和线程的区别
4.进程之间的通信方式
5.死锁 概念及发生条件(那时候还没背OS八股,完全按本科那点印象答,拉胯到家)
6.http和https区别
7.https通信的过程
8.tcp三次握手
9.tcp和udp的区别
10.数据库了解么?不了解。
11.数组和链表的区别
12.算法:二叉树的先序遍历
13.设计模式
14.手写个单例
15.Java:equals和hashCode方法
16.接口和抽象类的区别
17.接口中是否可以声明常量
18.对面向对象的理解
19.Android:四大组件及作用
20.Activity的生命周期
21.onNewIntent的调用时机
22.广播的两种启动方式
23.ANR
24.内存泄漏 定义 哪些情况会导致内存泄漏
25.Android屏幕适配做过哪些工作

部分答案解析:
在这里插入图片描述

腾讯

1.四大组件
2.activity生命周期
3.activity a跳转到 activity b生命周期变化
4.activity和service有什么区别
5.handler
6.loop死循环为什么不阻塞线程
7.进程间通信方式
8.http get和post区别
9.map
10.hashmap
11.用过那些库
12.glide三重缓存
13.为什么要用三重缓存
14.两张一样图片怎么办
15.MD5
16.LRU
17.还有什么可以实现LRU
18.有看过音视频这方面吗

部分答案解析:
在这里插入图片描述

完整版面试题答案解析点击下方卡片免费领取


推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 在开发app时,使用了butterknife后,在androidStudio打包apk时可能会遇到报错。为了解决这个问题,可以通过打开proguard-rules.pro文件进行代码混淆来解决。本文介绍了具体的混淆代码和方法。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
朱骆篪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有