近期面试Android的一些面试题
近期一个多月面试过一下公司(均为实习):
腾讯:内推一面卒。
正式校招拿到offer
阿里:内推二面卒。
蘑菇街:面完三面技术面,等待HR面
网易:拿到offer。
能够看到,大部分问题不难,可是能回答对和回答的好不好又是两个两个不同的情况了。不论什么问题都尽量回答的越具体,越清晰。越全面,面试官就会越觉得你掌握的越好。
比方问一下内存泄露,那么试着多列举一些情况:
首先解释内存泄露是什么。
最常见的handler引用Activity。static+WeakReference解决
耗时线程
bitmap调用recycle,3.0前和后,3.0后偷换native内存
想持久化Drawable,定义成static,老版本号他持有view,view持有activity,可能间接造成activity泄露。4.0已修复。
广播记得取消注冊
除此之外,如能提到jdk1.6中String的substring方法。那效果更好。
等
再比方问到性能优化:
从布局优化ViewStub,merge,include
overdraw。GPU选项观察overdraw情况
view的ondraw。尽量别new对象,不能耗时,60fps,16ms。GPU加速
必要情况下使用SurfaceView
避免内存泄露(又回到上一个问题了)
ListView的优化:holder。分页载入,滑动停止后再下载图片等
Bitmap的优化。载入单个bitmap。多个bitmap时的内存硬盘缓存
利用android中的一些数据结构比方ArrayMap和SparseArray
少用枚举。多用static訪问快
等
下面是面试中问到的问题,可能不全,由于隔得时间有些长可能忘记了。
jvm:
内存模型,特点。类信息在哪个区
栈和堆的差别
GC怎么知道一个对象要被回收,
GC Root
强引用,软引用,弱引用,虚引用
类载入过程
在项目中哪里使用过JVM的知识
java:
java基本数据类型
多态是什么,怎么实现的
==和equals
hashcode
HashMap和HashTable差别
HashMap,LinkedHashMap底层实现
HashMap的整过过程,怎么设计一个hash函数散列均匀
并发容器包,ConcurrentHashMap原理
ArrayList和LinkedList差别
虚函数实现
反射。项目中啥时候用过。
wait和sleep的差别
并发同步,synchronized为什么是重量级的方式
votilekeyword的特点
线程和线程池,线程池的实现的原理
两个线程依次打印一串数字
NIO。原理。裸写NIO的难点在哪
unix的I/O模型
数据结构算法
堆得实现。数组保存二叉树
堆排序
高速排序
数组找反复数字,位置
讲一下常见排序算法的思想和复杂度
android:
activity生命周期,每一个函数调用发生在什么情况下
Fragment生命周期。开发中须要注意什么问题
android中几种上下文的差别
bitmap优化。复用,偷换native内存,BitmapFrctory.option几个參数
缓存策略,LruCache和DiskLruCache原理。加上软引用。缓存框架的构架大概是什么样子。
网络请求缓存
handler机制
handler一般用来干什么?还有在哪些地方看到使用handler
HandlerThread
Service和IntentService
启动服务的方式。有没有使用过bindService
view绘制过程
事件分发过程
使用过Canvas没
ListView优化
做过什么自己定义控件,须要注意什么问题
View的onDraw方法扯到SurfaceView
ANR怎么避免
OOM怎么避免
Binder底层实现,框架
ViewRoot源代码,这个类的主要功能
内存泄露
怎么检測内存泄露
性能优化
动态载入了解不
activity启动过程
/data/app/的目录和文件的权限(非常犀利的面试官问的。项目中用到最重要的一点。不愧10年工作经验)
Android是怎么学的
强行装逼时刻:想办法扯到Binder的源代码。动态载入。插件框架:360的DroidPlugin和百度的DynamicLoad原理,activity启动流程,跨进程回调上面来,以及一些开源库。基本上讲完动态载入的框架就是和面试官聊天了。
设计模式:
知道哪些设计模式,平时怎么用的?
口头念出一个单例每行怎么写,多线程问题
外观模式
http:
(每次http的问题我回答不出来我就告诉面试官,http这些我仅仅知道简单的,没有深入研究,android的能够随便问,然后就不问http的问题了)
304
缓存
tcp/ip:
七层模型
TIME_WAIT
流量控制,拥塞控制
http头里面的host有什么用url里面都有了为什么在头字段要有
操作系统:
进程与线程
操作系统看了那些内容
进程间通信的方式
死锁。怎么避免。平时遇到没
项目:
每讲一个点的时候都会问我为什么这么设计,你从哪里学到的?在哪里看到这么做的?
遇到了什么问题。怎么解决的?是怎么发现问题的?log。单步调试
项目的架构
有没有为面试做准备。准备了哪些内容。
大概就是这些,有些可能时间太长我也记不太清了。
近期面试Android的一些面试题的更多相关文章
- 近期面试总结(Android)
关于近期面试总结(2018年下半年) 有些是老生常谈有些是没有遇到的. 1.HTTP和HTTPS的区别 HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为 ...
- Java面试总结(面试流程及核心面试题)
Java面试流程及核心面试题 面试整体流程 1.1 简单的自我介绍 我是xxxx,工作xxx年.我先后在xxxx公司.yyyy公司工作.先后做个xxxx项目.yyyy项目. 1.2 你简单介 ...
- 腾讯面试Android高级岗,居然被一个多线程基础面倒了?
前言 一个在深圳从事开发五年的老友一个月前从原公司辞职后,昨天去腾讯总部面试Android高级岗,一面的时候,自我介绍后,陆陆续续问了很多问题,有着五年的从业经验很多项目开发的技术问题都回答的很通顺, ...
- JQuery选择器大全 前端面试送命题:面试题篇 对IOC和DI的通俗理解 c#中关于协变性和逆变性(又叫抗变)帮助理解
JQuery选择器大全 jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $("#myELement") 选择id值等于myElement的元素 ...
- 关于面试总结-SQL经典面试题
关于面试总结6-SQL经典面试题 前言 用一条SQL 语句查询xuesheng表每门课都大于80 分的学生姓名,这个是面试考sql的一个非常经典的面试题 having和not in 查询 xueshe ...
- 2017、2018面试分享(js面试题记录)记得点赞分享哦;让更多的人看到~~
2017面试分享(js面试题记录) 1. 最简单的一道题 '11' * 2 'a8' * 3 var a = 2, b = 3; var c = a+++b; // c = 5 2. 一道this的问 ...
- 2019Android阿里&腾讯&百度&字节面试汇总(附面试题总结、Android书单)
1.基本情况 先简单说说我今年的面试经历吧,本人2018届211软件工程硕士生,Android开发岗.此文主要是2019年年初春招的面试和秋招面试经验汇总,最终拿到了阿里,腾讯,字节跳动,百度等off ...
- 近期面试总结(PHP后端开发工程师)(部分笔试题)
1.字符串"0"在PHP和js中转换为布尔值是false还是true php:false; php 弱语言 '0'和0一样: js:true:字符串除了空字符串('')其他都是tr ...
- Android开发工程师面试题总结。android开发面试经验
1:Android中五种数据存储方式分别是什么?他们的特点? (1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML的格式存放在设备中 (2) SQ ...
随机推荐
- Python开发基础-Day21多态与多态性、绑定方法和非绑定方法
多态与多态性 多态 多态并不是一个新的知识 多态是指一类事物有多种形态,在类里就是指一个抽象类有多个子类,因而多态的概念依赖于继承 举个栗子:动物有多种形态,人.狗.猫.猪等,python的序列数据类 ...
- Python开发基础-Day20继承实现原理、子类调用父类的方法、封装
继承实现原理 python中的类可以同时继承多个父类,继承的顺序有两种:深度优先和广度优先. 一般来讲,经典类在多继承的情况下会按照深度优先的方式查找,新式类会按照广度优先的方式查找 示例解析: 没有 ...
- 【BZOJ 1051】 1051: [HAOI2006]受欢迎的牛 (SCC)
1051: [HAOI2006]受欢迎的牛 Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如 ...
- eclipse git解决冲突
转自 http://blog.csdn.net/rosten/article/details/17068285 1.工程->Team->同步: 2.从远程pull至本地,就会出现如下内容 ...
- [BZOJ3456]城市规划(生成函数+多项式求逆+多项式求ln)
城市规划 时间限制:40s 空间限制:256MB 题目描述 刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了. 刚才说过, 阿狸的国家有n个城市, 现在国家需要在某些城市对之间建立一 ...
- [Lydsy1806月赛] 质数拆分
(mmp我已经不知道是第几次写NTT被卡了) 可以发现质数个数是 N/log(N) 级别的,1.5*10^5之内也只有 10000 多一点质数. 所以我们第一层暴力卷积,常数可以优化成 1/2. 然后 ...
- SpringBoot使用Gradle构建war包
Spring Boot默认将应用打包成可执行的jar包.有时候需要打包成war包部署在tomcat等容器.下面简单介绍下打包的步骤. 一.修改gradle.build文件 1.1 添加如下配置 app ...
- 手机在线更新系统MySQL数据库服务器参数优化mycnf,16G内存8核CPU,
业务场景: 后台支持手机在线更新系统,db服务器内存16G,8核,dell的pc服务器. qps: 200个左右 tps: 1个左右 一分钟50几个 sort_buffer_size = 32M 大了 ...
- GridControl事件
private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventA ...
- virtualbox4.2.18 ubuntu12.04 The system is running in low-graphics mode
参考1:http://askubuntu.com/questions/225090/the-system-is-running-in-low-graphics-mode-error-in-virtua ...