3.9cvte笔试,笔试题27题,涉及到java基础+android+计网+操作系统+linux,没有时间记下来。
3.12晚7点40接到面试电话,开始电面,有点紧张,未录音,全靠记忆。总面试时间40分钟。
1、对于java垃圾回收有什么看法,gc的算法是什么。
垃圾回收java中挥手空闲内存的方法,由程序自行控制。垃圾回收可以有效的防止内存泄漏。
gc的算法:第一,引用计数法。第二,标记清除算法。第三,标记整理算法。第四,分代算法。
注意:java有了gc一样会出现内存泄漏。(静态集合类、监听器、各种链接,数据库网络等未释放)
2、引用传递是什么?java中用的是引用传递还是值传递?
引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。 java中用的是值传递。
3、了解list吗,list有那些方法?
List集合在编辑语言中是类库中的一个类,它继承与conllection,是一个接口的存在,不能实例化,需要实例化一个ArrayList或linkedlist,通俗点就是一张表、目录清单的。
List接口存储是一组不唯一的,有序的对象 其中元素是可以重复的 有索引,可以很快的进行检索
List有两个接口:ArrayList 和Linkedlist
ArrayList :是底层的数据结构,使用的数组结构
特点:查询的速度快,但是增删改慢,线程不同步
Linkedlist :使用的是链表数据结构
特点:增删快,但是查询速度慢
4、hashmap是什么,原理呢
hashmap是一个散列表,它存储的内容是键值对映射。继承自abstractmap,非线程安全,非有序,它是通过“拉链法”解决哈希冲突的。(hashmap这块需要狂补,链接后补)
5、java注解机制是什么?
注解是一种标记,在程序中加入注解就等于为程序打上某种标记,表明这个方法的某个因素。比如:
@retention:注解的存活时间
@documented:能够将注解的元素包含到javadoc中去
@inherited:子类可以继承超类的注解
@repeatable:可重复
@override:子类要复写父类中被override修饰的方法
@Deprecated:标记过时的元素
@SuppressWarning:注解警告
@safeVarargs:参数安全型注解
@FunctionInterface:函数式接口注解
注解是一系列元数据,用来解释程序代码,但是注解并非是所解释的代码的一部分,他对代码的运行效果没有直接影响,是给编译器看的。挺好理解的…当时只记得retrofit中用过注解,对这个没有过多了解。
6、java中反射是什么?
反射是java程序开发语言的特征之一,它允许运行中的java程序获取自身的信息,并且可以操作类或对象的内部属性。通过反射,可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。
7、你了解线程和进程吗?
进程时资源分配的最小单位,线程是调度的最小单位。
一个进程中可有多个线程。
8、进程切换和线程切换。
8、单核cpu可以运行多线程吗?
可以。
9、并发和并行的概念
并发:在一个时间段内进行。同时存在
并行:在一个时间点进行。同时发生。
10、回答一下死锁形成的原因,以及死锁的避免。
死锁概念及产生原理
概念:多个并发进程因争夺系统资源而产生相互等待的现象。
死锁产生的4个必要条件(互不请循)
1、互斥:某种资源一次只允许一个进程访问,即该资源一旦分配给某个进程,其他进程就不能再访问,直到该进程访问结束。
2、请求且保持:一个进程本身占有资源(一种或多种),同时还有资源未得到满足,正在等待其他进程释放该资源。
3、不可抢占:别人已经占有了某项资源,你不能因为自己也需要该资源,就去把别人的资源抢过来。
4、循环等待:存在一个进程链,使得每个进程都占有下一个进程所需的至少一种资源。
避免死锁:死锁预防,死锁避免(银行家算法)、死锁的检测与解除
11、说说tcp和udp,tcp三次握手,四次挥手过程
这个很基础了,不重复。
12、tcp四次挥手服务端对客户端发送的信息是什么
这个问题一开始我没听清…现在才反应过来。。
13、udp提供不可靠的服务,如何变得可靠?
可靠udp主要是通过修改连续arq协议实现的。
14、nat是什么?使用场景呢?
nat:网络地址转换。将内网或者专有网络的ip转换为全球ip。
使用场景:公司,学校等。
15、你对ipv6怎么看,ipv6的发展怎么样?ipv6会使用完吗?
ipv6的发展前景很大,就目前看是为了弥补ipv4地址空间的不足,但是伴随着设备的增多,越来越有发展的必要。ipv6就目前来看,不会使用完,因为ipv4是32位,ipv6有128位。
16、osi七层。
应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。
17、交换机和路由器分别在哪一层,arp协议在哪一层,https在哪一层。。
交换机在数据链路层,路由器在网络层。
arp:地址解析协议,在数据链路层。
https在应用层。
18、activity的周期是什么?
有七个。oncreat-onstart-onresume-onrestart-onpause-onstop-ondestory
19、一个不透明的activity完全覆盖透明的activity,activity的周期是怎样的。
当失去焦点时,会调用onstop方法,而上层将调用oncreat-onstart-onresume。(经验少,当时是这么回答)
20、我提到ui刷新了,然后面试官问道:遇到过anr吗?你是怎么解决的?怎样定位?
遇到过,anr是因为主线程中进行了耗时操作导致的,一般解决方法是给用户一个提示。从log可以看出anr的类型,从而定位。
21、anr应用程序是几秒,广播是几秒,service是几秒?contentprovider?
5,10,前台20.后台200,20
22、问了广播的使用,我说不太熟悉。
23、service的周期,还问了一个service相关的东西,忘记了。
oncreat-onbind-onstop-onunbind-ondestroy
24、自定义view用了哪些方法?它们分别是做什么的?
onmeasure:测量view大小
onlayout:确定子view的位置
ondraw:绘图
25、介绍下项目的亮点,做过几个项目blabla,还有一些问题想不起来了。
26、轮到我问面试官了,对我感觉怎么样?
面试官回答,感觉android基础还是不错的。我说我忘了很多东西,面试官安慰我:现在技术更迭很快,忘了很正常的。超级暖。
总结:java基础部分需要加强。