您的位置:首页 > 其它

阿里暑期实习一面总结

2017-03-15 19:39 253 查看
地铁上接的一面电话,一看浙江杭州瞬间激动死,等待了无数日夜的电话终于来了,估摸着快到学校,便约了半小时后。 回学校的路上那叫一个紧张,只好看一下笔记平复一下心情。刚到校门口,电话准时来了,只好一边向实验室走,一边向人家解释着。可能是因为我在走,直接省略了自我介绍?很快到实验室(学校小一点还是有好处的),拿起耳机冲进小黑屋。

1、了解java的类加载吗?

本来准备从java的平台无关性讲到class文件的结构,再说类的加载过程,然而我想多了。“我问你的是类加载,请直接说这块。”,哦,好,我只大致知道五个步骤,加载、验证、准备 、解析、初始化。

2、了解gc吗?

垃圾收集,当对象死亡时需要对其进行垃圾回收,这顺便开始了下一个问题。。。对象死亡这块正好刚才在笔记上看了,我似乎是故意说得对象死亡?一环套一环

3、如何判断对象死亡?

(1)引用计数法。正准备说,“这个过时了,早都不用了”。

(2)可达性分析法。从GC Roots 上出发的引用链可以到达则证明对象还活着。

4、哪些可以作为GC Roots?(这跟上一个问题必定连着问) (1)虚拟机栈(栈帧中的本地变量表)中引用的对象

(2)方法区中类静态属性引用的对象

(3)方法区中常量引用的对象。

(4)本地方法栈中JNI引用的对象

5、java有几种引用?他们的应用?

四种:强引用:我们使用new创建的引用,只要引用存在,垃圾回收器就不会回收

软引用:在系统内存溢出之前将这些对象列进回收范围(SoftReference)应用在缓存中

弱引用:只能生存到下一次垃圾收集发生之前

虚引用:最弱,唯一目的是这个对象被回收时收到一个系统通知。

可以参考:http://www.cnblogs.com/huajiezh/p/5835618.html

6、Minor GC 和 full GC 知道吗 (这个没听太清,不知道)

从新生代空间回收内存被称为 Minor GC

full gc 是清理整个堆空间—包括年轻代和永久代。

7、双亲委派模型

当一个类加载器收到类加载请求时,先委托父类加载器去完成,若父类无法完成,则子类自己去加载,启动类加载器是最高层。

8、Java IO模型

就是IO中的所有类的结构吧

9、并发和并行的区别

并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。

10、实现一个优先队列,10亿个数中找中位数

先从无序数组开始说起,到用二叉堆实现,分析了一下复杂度,中间在二叉树和二叉堆纠结了半天。然后让从十亿个数中寻找中位数,当时傻得没用优先队列,主要是想着数据这么大,难道建一个5亿的堆吗?给出了快排切分的那个方法。中途提醒我:不是看你会不会,而是看你分析的思路。

11、设计模式

其实并不太了解。

12、OSI七层模型和 TCP/IP四层模型

物理、数据链路、网络、传输、会话、表示、应用。

13、网络层和传输层的区别

老是说我说的太模糊,还是没有清楚的思路。其实直接往两层的协议不同上说就行。

14、HTTP头部

好吧,忘了。

15、OS的调度算法

先来先服务、高响应比优先,只想起来这两个,高响应比的公式也没说太清。还有短作业优先,基于时间片轮转的调度算法。

16、数据库物理结构和逻辑结构的区别

逻辑结构件就是人对数据库的理解,就比如说认为是一行一行的一个表,物理结构就是数据库本身存储的方式。

17、数据库中的索引是什么

由于对数据库理解的也不是很深,又说我回答的模糊。

18、为什么要三次握手而不是两次

防止失效的连接被服务器接收,若只是两次握手的话,服务器收到请求返回一个确认就认为已经建立连接,然后就开始等待客户端的数据。而客户端收到确认并不会回复,这会持续消耗服务器的资源,故需要但三次握手。

刚开始由于紧张没给手机插电,然后发现手机快没电了,告诉面试官,人家说不用了问题问完了。好,完了。

总结经验:

手机要保持畅通并且有足够面试的电量。

问题回答不上来没问题,但一定要有解决问题的思路,不要轻易说不会。

知识点只知道概念是不够的,尤其是基础知识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  阿里