您现在的位置是:首页 > 数码 > 

小鱼易连Android开发岗面试经验2020

2025-07-27 01:56:42
小鱼易连Android开发岗面试经验2020 由于疫情原因,面试形式采取的视频面试,视频会议用的就是该公司的产品,面试难度还行,但是由于没有好好复习,有几个点还是答不上来 ###第一部分: 共享屏幕,在记事本里敲两个编程题: ①一个整形int[] nums,在原数组修

小鱼易连Android开发岗面试经验2020

由于疫情原因,面试形式采取的视频面试,视频会议用的就是该公司的产品,面试难度还行,但是由于没有好好复习,有几个点还是答不上来

###第一部分:
共享屏幕,在记事本里敲两个编程题:

①一个整形int[] nums,在原数组修改,将奇数放在前面,偶数放在后面

/**
*思路:从数组两端向中间查,如果指针对应偶数-奇数,则相互对调,
*否则指针继续前移
*/
public static void solution(int[] nums) {if (nums == null || nums.length <= 0) return;int left = 0, right = nums.length - 1;while (left < right) {//左边是奇数,指针后移,直到发现偶数if (nums[left] % 2 != 0) {left;continue;}//右边是偶数,指针前移,直到发现奇数if (nums[right] % 2 == 0) {right--;continue;}//进行对换int temp = nums[left];nums[left] = nums[right];nums[right] = temp;}
}

② 判断字符串是否是回文字符串,例如abcba

/**
*两端往中间进行遍历,只要有一个字符不相等就返回false
*/
public static boolean isReversible(String s) {if (s == null || s.isEmpty())return false;int length = s.length();for (int i = 0; i < length / 2; i) {if ((i) != (length - i - 1))return false;}return true;
}

###第二部分:

1.类加载机制,双亲委托

.html

2. Synchronized volatile关键字,volatile修饰基本数据类型和自定义类型区别,volatile底层实现

volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。

volatile仅能使用在变量级别;synchronized则可以使用在变量、方法、和类级别的

volatile仅能实现变量的修改可见性,不能保证原子性;而synchronized则可以保证变量的修改可见性和原子性

volatile不会造成线程的阻塞;synchronized可能会造成线程的阻塞。

volatile标记的变量不会被编译器优化(指令重排);synchronized标记的变量可以被编译器优化

. 四种引用类型

强引用:不会被回收
软引用:内存不足时回收
弱引用:GC就会回收
虚引用:/A

4. ContentProvider实现原理(如何跨进程)

getContentResolve->ApplicationContentResolver->ContentProviderProxy<=IBidner==>Transport->ameProvider

5. 发起一个https请求有哪些过程

客户端向服务器发起HTTPS的请求,连接到服务器的44端口;
服务器将非对称加密的公钥传递给客户端,以证书的形式回传到客户端
服务器接受到该公钥进行验证,就是验证2中证书,如果有问题,则HTTPS请求无法继续;如果没有问题,则上述公钥是合格的。(第一次HTTP请求)客户端这个时候随机生成一个私钥,成为client key,客户端私钥,用于对称加密数据的。使用前面的公钥对client key进行非对称加密;
进行二次HTTP请求,将加密之后的client key传递给服务器;
服务器使用私钥进行解密,得到client key,使用client key对数据进行对称加密
将对称加密的数据传递给客户端,客户端使用非对称解密,得到服务器发送的数据,完成第二次HTTP请求。
这里还问我证书是如何传递到客户端的,有点懵,不知道是不是想问Android如何验证证书​

6. 有序广播无序广播区别,被拦截后超时机制

​普通广播:只要intentFilter的action匹配,则会接收此广播
​有序广播:发送出去的广播被广播接收者按照按照Priority属性值大小先后顺序接收,先接受的receiver可以对广播进行修改和截断

这里的超时是指,Android系统(AMS)向一个广播接收器发送无序广播时,
并不需要等待该广播接收器返回结果,就会继续向下一个广播接收器发送广播。但是,当Android系统发送有序广播时,将会等待前一个广播接收器返回结果后(除非处理超时), 才会继续发送向下一个广播接收器发送广播。
这个超时时间还真不知道

7. 进程优先级分类

前台进程>可见进程>服务进程>后台进程>空进程

8. AMS管理的栈有哪几类

这里的栈要区别与所说的Activity启动模式的栈(task)
为了让这许多Activity协同工作而不至于产生混乱,Android平台设计了ActivityStack机制用于管理Activity,其遵循先进后出的原则,系统总是显示位于栈顶的Activity,从逻辑上将,位于栈顶的Activity也就是最后打开的Activity, 这也是符合逻辑的。
在操作应用程序时,每次启动新的Activity,都会将此压入Activity Stack,当用户执行返回操作时,移除Activity Stack顶上的Activity,这样就实现了返回上一个Activty的功能。直到用户一直返回到Home Screen,这时候可以理解为移除了Activity Stack所有的Activity,这个Activity Stack不再存在,应用程序也结束了运行.

共五种:
HOME_STACK_ID
Home应用以及recents app所在的栈
FULLSCREE_WORKSPACE_STACK_ID
一般应用所在的栈
FREEFORM_WORKSPACE_STACK_ID
类似桌面操作系统
DOCKED_STACK_ID
PIED_STACK_ID
画中画栈

9. uid机制

uid: Android系统中uid用于标识一个应用程序,uid在应用安装时被分配,并且在应用存在于手机上期间,都不会改变。一个应用程序只能有一个uid,多个应用可以使用sharedUserId 方式共享同一个uid,前提是这些应用的签名要相同。


更多完整面试专题和进阶知识分享,尽在“Android扫地僧”

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/857292.html

相关标签:无
上传时间: 2024-02-10 11:26:08
留言与评论(共有 17 条评论)
本站网友 吃什么食物养胃
12分钟前 发表
这也是符合逻辑的
本站网友 张杨杨
14分钟前 发表
一个应用程序只能有一个uid,多个应用可以使用sharedUserId 方式共享同一个uid,前提是这些应用的签名要相同
本站网友 绵遂高速
15分钟前 发表
使用前面的公钥对client key进行非对称加密; 进行二次HTTP请求,将加密之后的client key传递给服务器; 服务器使用私钥进行解密,得到client key
本站网友 性插图互舔
2分钟前 发表
一个应用程序只能有一个uid,多个应用可以使用sharedUserId 方式共享同一个uid,前提是这些应用的签名要相同
本站网友 买够
16分钟前 发表
这里还问我证书是如何传递到客户端的,有点懵,不知道是不是想问Android如何验证证书​ 6. 有序广播无序广播区别,被拦截后超时机制 ​普通广播:只要intentFilter的action匹配,则会接收此广播 ​有序广播:发送出去的广播被广播接收者按照按照Priority属性值大小先后顺序接收,先接受的receiver可以对广播进行修改和截断 这里的超时是指,Android系统(AMS)向一个广播接收器发送无序广播时, 并不需要等待该广播接收器返回结果,就会继续向下一个广播接收器发送广播
本站网友 彩霞街
21分钟前 发表
使用前面的公钥对client key进行非对称加密; 进行二次HTTP请求,将加密之后的client key传递给服务器; 服务器使用私钥进行解密,得到client key
本站网友 儿童乐园团购
28分钟前 发表
volatile仅能使用在变量级别;synchronized则可以使用在变量
本站网友 accp软件工程师
2分钟前 发表
使用client key对数据进行对称加密 将对称加密的数据传递给客户端,客户端使用非对称解密,得到服务器发送的数据,完成第二次HTTP请求
本站网友 什么减肥方法最有效
14分钟前 发表
一个应用程序只能有一个uid,多个应用可以使用sharedUserId 方式共享同一个uid,前提是这些应用的签名要相同
本站网友 升降系统
1分钟前 发表
但是,当Android系统发送有序广播时,将会等待前一个广播接收器返回结果后(除非处理超时), 才会继续发送向下一个广播接收器发送广播
本站网友 羽扇纶巾谈笑间
22分钟前 发表
volatile标记的变量不会被编译器优化(指令重排);synchronized标记的变量可以被编译器优化 . 四种引用类型 强引用:不会被回收 软引用:内存不足时回收 弱引用:GC就会回收 虚引用:/A 4. ContentProvider实现原理(如何跨进程) getContentResolve->ApplicationContentResolver->ContentProviderProxy<=IBidner==>Transport->ameProvider 5. 发起一个https请求有哪些过程 客户端向服务器发起HTTPS的请求,连接到服务器的44端口; 服务器将非对称加密的公钥传递给客户端,以证书的形式回传到客户端 服务器接受到该公钥进行验证,就是验证2中证书,如果有问题,则HTTPS请求无法继续;如果没有问题,则上述公钥是合格的
本站网友 瓶邪
4分钟前 发表
使用client key对数据进行对称加密 将对称加密的数据传递给客户端,客户端使用非对称解密,得到服务器发送的数据,完成第二次HTTP请求
本站网友 福建省长乐市
13分钟前 发表
客户端私钥,用于对称加密数据的
本站网友 南京金润国际广场
30分钟前 发表
小鱼易连Android开发岗面试经验2020 由于疫情原因,面试形式采取的视频面试,视频会议用的就是该公司的产品,面试难度还行,但是由于没有好好复习,有几个点还是答不上来 ###第一部分: 共享屏幕,在记事本里敲两个编程题: ①一个整形int[] nums,在原数组修改,将奇数放在前面,偶数放在后面 /** *思路:从数组两端向中间查,如果指针对应偶数-奇数,则相互对调, *否则指针继续前移 */ public static void solution(int[] nums) {if (nums == null || nums.length <= 0) return;int left = 0
本站网友 性功能障
2分钟前 发表
客户端私钥,用于对称加密数据的
本站网友 江淮汽车公司
9分钟前 发表
这个超时时间还真不知道 7. 进程优先级分类 前台进程>可见进程>服务进程>后台进程>空进程 8. AMS管理的栈有哪几类 这里的栈要区别与所说的Activity启动模式的栈(task) 为了让这许多Activity协同工作而不至于产生混乱,Android平台设计了ActivityStack机制用于管理Activity,其遵循先进后出的原则,系统总是显示位于栈顶的Activity,从逻辑上将,位于栈顶的Activity也就是最后打开的Activity