写点什么

5 月份,京东 Android 开发面经分享!,kotlin 协程并发

用户头像
Android架构
关注
发布于: 刚刚

前言




5 月面经出炉了!


笔者从学校毕业开始就从事 Android 工作,现已有 5 年左右了,之前一直在一家中型互联网公司工作。本想利用金三银四的面试季跳槽一波,于是在四月初离职。


但计划赶不上变化,因为家中有点小事给耽搁,所以推迟到了 4 月度开始投简历,事后过来一个星期收到了面试通知。下面就是我的一个面试过程。



京东面试过程




【一面】


1、基本的数据类型有哪些?


2、String、StringBuilder、StringBuffer 的区别?


?String 的值是不可变的,这就导致每次对 String 的操作都会生成新的 String 对象,不仅效率低下,而且浪费大量优先的内存空间


?StringBuffer 是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个 StringBuffer 对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量


?StringBuilder 是可变类,速度更快,单线程操作字符串,但线程不安全


3、Fragment 是什么,使用场景和生命周期


4、说一下 Context 和内存泄露


5、线程创建的方法?


6、Activity 的启动模式和适用场景?


7、ViewPager 用过吗?然后扯到了它和 Fragment 联合;


【二面】


1、自我介绍


2、介绍一下项目经历,项目中遇到最大的问题是什么?怎么解决的?


3、用过什么第三方库吗?说一下 Glide Picasso 有什么区别?


4、如果让你自己设计图片框架,该怎么操作?


5、内存泄露和内存溢出说一下


(1)内存泄漏 memory leak :是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。


(2)内存溢出 out of memory :指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储 int 类型数据的存储空间,但是你却存储 long 类型的数据,那么结果就是内存不够用,此时就会报错 OOM,即所谓的内存溢出。


6、内存溢出的原因及解决方法:


(1)内存溢出原因:


①内存中加载的数据量过


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


于庞大,如一次从数据库取出过多数据;


②集合类中有对对象的引用,使用完后未清空,使得 JVM 不能回收;


③代码中存在死循环或循环产生过多重复的对象实体;


④使用的第三方软件中的 BUG;

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
5月份,京东 Android开发面经分享!,kotlin协程并发