一面过后面试官让我等5分钟继续二面。一面面经传送门
开始面试,首先惯例自我介绍,项目介绍
1.平时是怎么学习的
看书和读源码,看书多一点,在碎片时间会看一些博客和技术号的文章
2.看过哪些书
(参考一面面经)
3.有没有对自己未来做过规划啊
有,我简历投的是Java后端,但是公司里基本没有用Java写后端的,所以我就被调岗来到了安卓。之前给自己规划的是先把后端这一部分学精学细,然后想了解和学习分布式这方面的。在上周接到调岗的电话后,我也给自己做了Android方面的规划,首先是在实习前把之前学习的Android知识整理复习,然后在Android这方面加深自己的造诣,然后我发现Android这一块没有像Spring那样的通用解决方案,因此我想等自己技术好一点了,做一个框架并且维护它。
4.来做个题吧,你知道Java的包名都是域名的倒置吗?现在给你一个域名,你把它变成Java包名格式的字符串,而且空间复杂度O(1)
例子:给出www.bytedance.com 给出com.bytedance.www
思路:先把整个字符串逆序(www.bytedance.com->moc.ecnadetyd.www)。然后以点为分割,把每个单词倒置。(moc.ecnadetyd.www->com.bytedance.www)
5.tcp/ip4层模型是哪四层
应用层,传输层,网络层和网络结构层(网络接口层不小心说成物理层了。。。难受)
6.说一下Object对象中的equals方法吧
equals方法是用来做对象间的是否相同的比较的。通常我们使用==和equals方法进行比较。==可以比较基本类型的值是否相同,==比较对象则是比较对象的地址是否相同。equals方法比较灵活,在编码时可以通过重写equals方法来自定义比较规则。例如String类的equals方法就被重写了,因此在比较两个String字符串是否相同时使用equals方法而不是==。
在Java的规范中,我们重写equals方法后相应的要重写hashcode方法。因为Java规范中规定:如果两个对象相同,则他们的hashcode一定相同,如果两个对象不同,他们的hashcode一定不同。因此按照规范,我们要重写对应的hashcode方法。
7.什么是图灵机
所谓的图灵机就是指一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。(来自百度百科)
8.什么是大小端
大端存储:就是把一个数的低位字节序的内容存放到高地址处,高位字节序的内容存放在低地址处。
小端存储:就是把一个数的低位字节序的内容存放到低地址处,高位字节序的内容存放在高地址处。
9.什么是弱引用
在编码中我们创建对象实例赋值给引用类型默认是强引用,弱引用在Java语法层面是是一个泛型类,通过泛型指定实例类,然后通过弱引用连接引用对象与实例对象。弱引用与强引用最大的区别就是在垃圾回收这一块。强引用是只要对象存活,垃圾回收器即使抛出OOM也不会去回收对象,而弱引用一般也不会被垃圾回收器回收,但是当内存不够时,垃圾回收器为了避免抛出OOM会回收弱引用连接的对象。
10.在弱引用的Map容器中,key和value哪个是弱引用连接
key是弱引用,弱引用map中的entry里保存着弱引用的key和强引用value。弱引用的key被jvm回收掉后,map会remove该entry,之后entry也会被回收。
11.什么时候来实习,实习多长时间
暑假,6个月以上吧
12.你说你在看Spring的源码?那你看到一部分了?有什么收获吗?
我现在看完了IOC启动流程这一块,看的比较慢吧。在一块代码中,Spring主要是用了模板方法对各个步骤的方法进行封装。然后给开发者很大的扩展空间,因此刚开始看这一块的时候看到BeanFactory庞大的继承体系时有点混乱,但是细细阅读就会对他每一层想要表达的意思和设计思路感到钦佩。我感觉就我现在阅读的这些代码给我最大的收获就是写代码时要尽可能的低耦合,高内聚,在设计层面上就给以后的扩展留足空间。
13.有什么要问我的吗?
我:如果有幸得到这次机会,我需要准备哪些知识呢?
面试官:这个你如果已经对Android已经由基本的了解,我推荐去看看Android的官方文档提升一下自己。
我:想请您对我的面试做个点评,给我提一些学习方面的建议
面试官:点评不敢,建议的话就像你自己说的,需要加强一下计算机科学方面的知识,然后多看看Androig方面的知识,就这样。
小结
这个面试官应该是team leader级别的。谈吐举止都非常的优雅礼貌。这次面试考了很多偏门的知识,还好之前在看书的时候对这些东西有点印象。这次也是比较的成功面试,第二天收到三面的通知,也是一个team leader,这难道是传说中的交叉面?