大二android实习网易一面+二面面经

一面

问题一.

介绍一下你自己?

回答:从我是谁,我来自哪里,我什么时候开始学的安卓,我的兴趣爱好是什么这几个角度进行了介绍。

问题二.

做过什么项目?

回答:如实回答了我做过的主要项目。

问题三.

讲述一下mvp和mvvvm?

回答:mvp是由mvc改进来的,区别在于view和model不进行直接交互,而是交给presenter来处理。从而降低了代码耦合性。mvp中随着业务的增加,会有非常多UI相关的case。这样就会造成view的接口很庞大。而MVVM就解决了这个问题。通过双向绑定的机制,实现数据和UI的内容。体现了只要想改其中一方,另一方都能够及时更新的一种设计理念。但MVVM在实际开发过程中并不常用。

问题四.

介绍一下retrofit和rxjava?

回答:retrofit让我们更简单地进行http请求。retrofit是一个restful的HTTP网路请求框架的封装。网络请求的工作本质上是由OKHTTP完成,而retrofit仅负责网络请求接口的封装。retrofit最好是配合rxjava一起使用。rxjava,是响应式编程。响应式编程的本质就是监督事件并且对其作出反应,rxjava采用背压策略。rejava的使用有效的避免了回调地狱。

问题五.

介绍一下你实际用过的OKHTTP吧?

回答:OKHTTP是一个高效的HTTP库。会从很多连接问中自动恢复;如果服务器配置了多个IP地址,当第一个IP连接失败的时候,OKHTTP会自动尝试下一个IP;OKHTTP还处理了代理服务器与SSL握手失败的问题。使用OKHTTP要先创建一个OKHttpClient,然后创建一个request对象,通过内部类builder调用生成;第三步创建call对象,调用execute/enqueue方法。

问题六.

如果不使用OKHTTP,你怎样进行网络请求?

回答:android中提供了两种网络请求的方式,一种是使用apache的HttpClient,另一种是使用java的httpurlconnection。

问题七.

介绍一下canvas?

回答:canvas绘图有三个基本要素:canvas,绘图坐标系,paint。canvas是画布,我们通过canvas的各种drawXXX方法将图形绘制在界面上。在drawXXX方法中我们需要传入要绘制的图形的坐标形状,还要传入一个画笔Paint。然后讲了一下view绘制的三个核心方法,measure(),onlayout(),ondraw()。然后就说具体的我也不记得了。

问题八.

介绍一下Tinker热修复框架?

回答:Tinker生成差分包的方式。

问题九.

怎样优化布局?

回答:主要是要减少布局嵌套。include和merge标签的使用。

问题十.

说说安卓事件分发机制?

回答:简单的说就是大的传给小的,小的处理不了返回给大的。具体就是,Activity传消息给viewgroup,viewgroup再传给view。

二面

只让写了一道排序题,说排出来就可以。

public class sort {
	public static void main(String args[]){
		int[] a={4,6,7,3,9,2};
		sortz(a);
	}

	private static void sortz(int[] a) {
		int t=0;
		for(int i=0;i<a.length;i++){
			for(int j=i;j<a.length;j++){
				if(a[i]>a[j]){
					t=a[i];
					a[i]=a[j];
					a[j]=t;
				}
			}
		}
		for(int i=0;i<a.length;i++){
			System.out.println(a[i]);
		}
	}
}

然后问我有没有想到用treeset。我就简单的介绍了一下treeset。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值