2021春招面试作业帮Android开发工程师岗位

2021春招面试作业帮Android开发工程师岗位

1.自我介绍

自我介绍就不多说了

2.项目介绍

面试官让我介绍一下我在简历上写的一个项目,说明一下:这个项目其实比较简单,但是由于是我一个人做的,而且是第一次做,所以在做的途中遇到很多的坑,浪费了很多的时间在爬坑上面;言归正传,先简单介绍一下这个项目,这个项目的业务需求就是这个app主要是实现对一个工厂的电机,水泵,离心机运作时各项数据,比如电机转速,电压,电流,温度实现在线显示,监测,对出现异常的数据进行预警,对出现故障的设备进行诊断(就是查出是设备哪里出了问题)并给出相应的维修意见。项目的设计模式是MVC模式,主要的功能模块主要包括信息获取,信息监测以及数据分析三大模块。在大致介绍后面试官根据我的项目提了几个问题:

* 项目数据获取你是怎么实现的

我答:通过可靠的网络传输协议TCP/IP 中的套接字socket与socket service实现手机移动端与上位机服务器建立长连接,然后进行IO流的传输

* 如何保持移动端和服务器端的长连接

我答:I don‘t konw

* 能说说fragment与activity的区别吗

我答:fragment是碎片,activity是整个屏幕

*简单说一下activity的生命周期

我答:创建->初始化->运行->停止->销毁(重新运行)

*说一下resume是那个阶段实现的

我答:activity停止状态之后通过调用resume方法可实现activity的重新运行

3.基础知识面试

面试官:平常学过哪些编程语言
我:学过c/c++,java
然后他说那就问一点java的问题吧

* 你知道java中常见的数据类型吗

我答:比如说整型,字节型,字符型,string类型

* 你知道常见的引用数据类型吗

我答:有点懵圈,不知道引用是什么鬼

* 介绍一下arraylist与linklist,它们有什么区别

我答:它们都属于线性表这种数据结构,具体arraylist是数组,linklist是链表,它们的区别,嗯。。。我当时只说了存储逻辑的不同(当时有点紧张)arraylist是在内存中开辟一段连续的存储区域,可通过数组首地址address和偏移量index进行数组进行数据访问;linklist是非连续的存储形式,它的每个节点都有地址区和数据区,地址区是指向下一个节点的地址(单向链表),数据区是存储数据的;当然还有其它区别,如果有相同的数据内容的arraylist对象和linklist对象,进行数据访问和查询操作的话arraylist更有利,进行数据增删linklist更有优势,上面主要是以大量数据为背景,考虑时间复杂度O(n)的情况下得出的结论。

* 如何比较两个两个数组是否相等,能用“==”能直接判断吗

我答:有好几种方法可以实现,当时只记得equal()方法了,不能直接用“==”直接判断,因为它只会比较两个数组的首地址是否相等,并不能实现判断两个数组的是否相等

* 你知道java中的类加载吗

我答:根据双亲委派原则,分级对类进行加载,原则是类先优先由其父类加载器进行加载,如果加载的业务范围中超出父类加载器的业务范围,那么父类加载器会将类传给它的父类加载器,依次顺延,直到加载完成,当然所有的父类加载器都是javaLoader的子类,及javaLoader是最顶层的类加载器

* java类经过类加载器加载后会成为什么

我答:一脸蒙逼,我只知道类加载

* 介绍一下socket的三次握手,为什么是三次,四次不行吗

我答:三次请求是:第一次握手 客户端发送连接请求,将用户数据报打包成帧(包括客户端IP地址和连接端口)发送给服务器端,第二次握手:服务器端收连接请求后,检查客户端IP地址和端口号,在确认无误后,他将可连接的信息发送给客户端;第三次握手:两端都确认相关连接信息无误后,通过socket建立连接,然后进行端口通讯。三次就可以满足连接的正确性和稳定性,四次可以,但是没有必要

*你知道常见的几种http请求吗

我答:不知道 ,顿时语塞,气氛十分尴尬

4.编程题目

编程题是面试官当场出题,然后自己可以敲代码(语言可以自己选用熟悉的)

*实现单例模式的几种方法(要考虑线程安全)
public void solution(){

	System.out.print(“I don‘t know!”);	//后期学会后会加上去

}
* 给出一个数组和一个数,利用二分查找法实现定位找到到这个数并给出索引
public  int  solution(int num[],int a){
	int i=a;
	for(int i=0;i<num.length;i++){
	
		//二分法实现查找,我是fw,目前还不会
		
}
	return i;
} 

在经历两题的沉默后,面试官脸上写满了不耐烦,我猜他在想:怎么会有这种fw,简直就是浪费我的时间

* 最后他让我写了个冒泡排序算法,然后让我滚蛋,并对我说:我们公司不招fw
Public void solution (int array[]){

	for(int i=0;i<array.length;i++){
	
		for(int j=i+1;j<array.length-1;j++){
		
			if(array[i]<array[j]){
				int swap=array[i];
				array[i]=array[j];
				array[j]=swap;
			}
		}
	}
}

5.面试总结

我是fw
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言面试八股文是指在春季招聘中常见的C语言相关的面试题目和知识点。下面是一份常见的C语言面试八股文,供您参考: 1. C语言的基本数据类型有哪些? C语言的基本数据类型包括整型、浮点型、字符型和指针型。 2. 请介绍一下C语言中的变量和常量。 变量是用来存储数据的内存位置,可以通过变量名来访问和修改其值。常量是指在程序执行过程中不会改变的值。 3. 什么是数组?请介绍一下C语言中的数组。 数组是一种存储相同类型数据的集合,通过索引来访问数组中的元素。在C语言中,数组的大小在定义时就需要确定,并且数组的下标从0开始。 4. 请介绍一下C语言中的指针。 指针是一个变量,其值为另一个变量的地址。通过指针可以直接访问和修改内存中的数据。使用指针可以提高程序的效率和灵活性。 5. 请介绍一下C语言中的函数。 函数是一段完成特定任务的代码块,可以通过函数名来调用执行。函数可以接收参数并返回一个值,也可以不接收参数或不返回值。 6. 请介绍一下C语言中的流程控制语句。 C语言中的流程控制语句包括条件语句(if-else语句、switch语句)、循环语句(for循环、while循环、do-while循环)和跳转语句(break语句、continue语句、goto语句)。 7. 请介绍一下C语言中的结构体。 结构体是一种自定义的数据类型,可以包含多个不同类型的成员变量。通过结构体可以将多个相关的数据组织在一起。 8. 请介绍一下C语言中的文件操作。 C语言中的文件操作主要包括打开文件、读写文件和关闭文件。可以使用标准库函数来进行文件操作,如fopen、fread、fwrite、fclose等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值