阿里一面 目测已挂


这次阿里拜的原因主要是在面试前经历了好几次狼来了的游戏,每次打来电话都以为是面试,结果发现都不是,所以导致我以为这次也是一次乌龙,没好好重视。

面试时间:1h左右

项目

  1. TCP和UDP的区别
    我讲到了TCP粘包的问题,然后有了第二个问题。
  2. 什么是粘包,后面还问我我们是怎么处理粘包的
    我说我们是有定义包头包尾的,所以就算有粘包,等下次补齐剩下一部分就好。
  3. 为什么TCP分段是以1500分的?
    其实这里我也不太清楚,之前猴子面试也被问到,我之前查了,可是没查到啊。我只能说是链路层以太网的规定,如果链路层选择其他网络传输可能会不同。
  4. 为什么不直接用keepAlive?
    因为我说到心跳包。我说因为keepAlive在Qt上只能用标志位设置,面试官给我说可以把fd取出来设置啊,我。。。。
    然后我说心跳包的里另外一个原因是时间戳,因为网关太low了,没法带时间戳。
  5. 心跳包多大?是单独发送的吗?
    我当时说的是单独发送的,他问我确定吗。我就有点怕了,但是我一想当时校准的时间是没有问题的,所以我就很肯定的说了。然后我也补充说这样传输代价很高,我也承认。
  6. 并发数是多少?怎么保证并发的?
    我说是新有连接就新建一个链表,有消息之后会异步通过Qt的槽和信号机制来实现。事实上也是这么做的。我觉得幸亏没有胡嘴什么多线程多进程。因为如果多线程多进程涉及非常复杂的数据同步(缓冲区),多进程开销又比较大。
  7. Qt的槽信号机制是什么,底层怎么实现的
    这还是第一次有面试官问我Qt的问题。我说槽和信号其实都是两个处理函数,用connect连接。当有信号的时候,就触发slot的函数执行。其实这块我有点记不清。底层就不知道怎么实现了。
  8. 异步和同步是什么?异步底层是怎么实现的。
    异步和同步概念说了。
    但是异步我没看啊,晕,我只看了IO复用,我给他说异步是通过iocp实现的。他说iocp怎么实现的。我就直接时候不知道了。

Java

Java问的问题都是我很早以前看的,但是已经忘记的东西,包括限制符和JVM

  1. 几种限制符,分别代表什么。protected修饰的在同名的包类的其他类可不可以访问。
  2. 内部类有几种。public static修饰的内部类是什么(布吉岛)
  3. 了解JVM吗,JVM是什么
  4. 垃圾收集。几种垃圾收集算法比较

算法

1.刚开始让我写插入排序,然后改变主意让我写选择排序,说选择排序比较简单。呵呵,我这两个都忘记了。我就问他能不能写快排,我说选择排序忘记了。他说好,然后写完了。

  1. 给一个字符串让转换成HashMap
  2. 不让用split又转了一次。

问他我有什么说不对或者不好,他说都挺好,我就很生气,阿里面试官都这样,根本不指出你的问题,一直说你好,完了把你一挂。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容