记录一些奇奇怪怪的面试题
目录
序言
有意思的面试问题来了
对象A继承对象B,调用对象A 请问这时候对象中的静态变量、构造函数调用顺序。
一张图片占用内存的计算方法。
屏幕上有两个控件A、B,我手指在A控件按下,移动到B控件。这时候A还能接收到移动事件吗?
开发的五大原则
显示官询问这些问题的原因
序言
就像前面聊得,我要开始找工作了,打开招聘软件刷新简历,哇塞 市场还是那么繁荣,瞬间三十多个打招呼的消息,让我焦躁的心情得到了一丝慰藉;仔细看了下,好嘛 七八个中科软,十几个创达。点进去看了下招聘信息 真的巧,都在推同一个岗位....
不过,我学历差,我认。别人挑剩下的工作我去干。别人接受不了薪资,我能接收。主打荤素不忌,给钱都干
昨天上午其实就投了一部分简历;下午就接到了声称中介公司的内部电话面试。聊了几分钟问的问题大概
- Handler 机制
- Mvp Mvvm
- 单方框架源码了解多少
- 可以主持一个0-1的项目吗?可以带人吗?
还行,脑海里的知识还算是能应付,捡自己知道点的说,不管对错,咱就理直气壮的说。顺便疑惑装B,故作高深,面过~
问: Jetpack有几个项目用过;
答:是经历过几个项目吗?jetpack不是Andorid提供的组件库吗?基本是个项目都会用过啊。巴拉巴拉~
好吧,不是特意想装逼,是真的脑海里回忆不出几个组件原理。毕竟按照剧情回答,用过LiveData, 那LiveData的原理是啥,组件刚出来的时候知道,现在谁记得? 机制如我,总不能第一份电话面试就被虐吧。
言归正传、面试吗,总要准备准备的,不然前天还是实用主义,现在就让你讲原理。我是真讲不出来一点。
有意思的面试问题来了
-
对象A继承对象B,调用对象A 请问这时候对象中的静态变量、构造函数调用顺序。
静态成员/静态代码块执行顺序:先父类、后子类。只会初始化一次,即第一次被加载时
构造方法执行顺序:先父类、后子类,每次New对象时都会执行一次。
-
一张图片占用内存的计算方法。
在Andorid中,Bitmap占用内存的大小主要由三个参数决定
高度、宽度、每个像素占用字节数(由Bitmap配置cofig决定)
计算公式: 内存大小(字节) = 宽度* 高度*每像素字节数
ARGB_8888 : 4 个字节 RGB_565:2个字节
-
屏幕上有两个控件A、B,我手指在A控件按下,移动到B控件。这时候A还能接收到移动事件吗?
A控件会持续接收移动事件,直至手机抬起触发ACTION_UP, 即使你移动到了B控件上方,B控件也不会接手到手指移动事件;
-
开发的五大原则
单一原则:每个类或者方法应该只有一个引起它变化的愿意,即单一原则
开闭原则:类、模块、函数应该对扩展开放、对修改关闭
里氏替换原则:子类对象能够替换父类对象出现的地方,且保证逻辑不变
接口隔离原则:不应该强迫一个类去实现它不需要的接口
依赖倒置原则:高层模块不应该依赖底层模块,抽象不应该依赖于细节。
显示官询问这些问题的原因
说真心话,开始被问到这些问题的时候,我脑海里真的想问:没病吧,但是细细想来,真的是考验基本功。
比如你总是说自己可以0-1进行项目,可以自己封装框架,那么开发的五大原则都不知道,你封装出来的框架能用吗?
比如你总是说做过内存优化,有效的解决内存泄漏的问题。但是占用内存大户 图片占用内存的大小计算方式你都不清楚,你优化的哪门子的内存。
嗯,第一个问题 实在编不出来了。哦哦对,单利模式,你都不知道静态成员加载时机,怎么理解利用类加载机制做的单利模式呢?
public class SingletonClassLoaderHolder extends ClassLoader {private SingletonClassLoaderHolder() {}private static class Holder {private static final SingletonClassLoaderHolder INSTANCE = new SingletonClassLoaderHolder();}public static SingletonClassLoaderHolder getInstance() {return Holder.INSTANCE;}
}
好吧,人果然会活成自己讨厌的样子。我写完上述的内容尽然有一种要是我面试别人 上述三个问题必问; 虽然现在还再愁被面试,但是已经做好了面试别人的准备了, 就是这么有志气。
其实还想总结下jetpack 组件和其原理,加深下印象,不过篇幅有限,写太多估计也没人看。自己面试前偷偷背也不方便就再开一篇记录吧。
最后,大家不要一个收藏就完事了,好歹评论区聊聊、增加点摸鱼乐趣不是。实在不行点个赞也行,打字不易。
下篇 记录 jetpack 组件原理。