2020年最新阿里面试题整理附答案
关于epoll和select的区别,哪些说法是正确的?
【A】epoll和select都是I/O多路复用的技术,都可以实现同时监听多个I/O事件的状态。
【B】epoll相比select效率更高,主要是基于其操作系统支持的I/O事件通知机制,而select是基于轮询机制。
【C】epoll支持水平触发和边沿触发两种模式。
【D】select能并行支持I/O比较小,且无法修改。
答案:ABC
从innodb的索引结构分析,为什么索引的key长度不能太长? key 太长会导致一个页当中能够存放的 key 的数目变少,间接导致索引树的页数目变多,索引层次增加,从而影响整体查询变更的效率。
MySQL的数据如何恢复到任意时间点?
恢复到任意时间点以定时的做全量备份,以及备份增量的 binlog 日志为前提。恢复到任意时间点首先将全量备份恢复之后,再此基础上回放增加的 binlog 直至指定的时间点。
输入 ping IP 后敲回车,发包前会发生什么?
首先根据目标IP和路由表决定走哪个网卡,再根据网卡的子网掩码地址判断目的IP是否在子网内。如果不在则会通过ARP缓存查询IP的网卡地址,不存在的话会通过广播询问目的IP的mac地址,得到后就开始发包了,同时mac地址也会被ARP缓存起来。
请解释下为什么鹿晗发布恋情的时候,微博系统会崩溃,如何解决?
《 参考思路 》 A. 获取微博通过 pull 方式还是 push 方式 B. 发布微博的频率要远小于阅读微博 C. 流量明星的发微博,和普通博主要区分对待,比如在 sharding 的时候,也要考虑这个因素
现有一批邮件需要发送给订阅顾客,且有一个集群(集群的节点数不定,会动态扩容缩容)来负责具体的邮件发送任务,如何让系统尽快地完成发送?请详述技术方案! A. 借助消息中间件,通过发布者订阅者模式来进行任务分配 B. master-slave 部署,由 master 来分配任务 C. 不借助任何中间件,且所有节点均等。通过数据库的 updatereturning,从而实现节点之间任务的互斥
有一批气象观测站,现需要获取这些站点的观测数据,并存储到 Hive 中。但是气象局只提供了 api 查询,每次只能查询单个观测点。那么如果能够方便快速地获取到所有的观测点的数据? A. 通过 shell 或 python 等调用 api,结果先暂存本地,最后将本地文件上传到 Hive 中。 B. 通过 datax 的 httpReader 和 hdfsWriter 插件,从而获取所需的数据。 C. 比较理想的回答,是在计算引擎的 UDF 中调用查询 api,执行UDF 的查询结果存储到对应的表中。一方面,不需要同步任务的导出导入;另一方面,计算引擎的分布式框架天生提供了分布式、容错、并发等特性。
给定一个链表,删除链表的倒数第 N 个节点,并且返回链表的头结点。给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明:给定的 n 保证是有效的。要求:只允许对链表进行一次遍历。
参考答案
我们可以使用两个指针而不是一个指针。第一个指针从列表的开头向前移动 n+1n+1 步,而第二个指针将从列表的开头出发。现在,这两个指针被 nn 个结点分开。我们通过同时移动两个指针向前来保持这个恒定的间隔,直到第一个指针到达最后一个结点。此时第二个指针将指向从最后一个结点数起的第 nn 个结点。我们重新链接第二个指针所引用的结点的 next 指针指向该结点的下下个结点。
代码示例 :
public ListNode removeNthFromEnd(ListNode head, int n) { ListNode dummy = new ListNode(0); dummy.next = head; ListNode first = dummy; ListNode second = dummy; // Advances first pointer so that the gap between first and second is n nodes apart for (int i = 1; i <= n + 1; i++) { first = first.next; } // Move first to the end, maintaining the gap while (first != null) { first = first.next; second = second.next; } second.next = second.next.next; return dummy.next; }
复杂度分析:
时间复杂度:O(L),该算法对含有 L 个结点的列表进行了一次遍历。因此时间复杂度为 O(L)。空间复杂度:O(1),我们只用了常量级的额外空间。
假如给你一个新产品,你将从哪些方面来保障它的质量?可以从代码开发、测试保障、线上质量三个方面来保障。在代码开发阶段,有单元测试、代码Review、静态代码扫描等;测试保障阶段,有功能测试、性能测试、高可用测试、稳定性测试、兼容性测试等;在线上质量方面,有灰度发布、紧急回滚、故障演练、线上监控和巡检等。
请评估一下程序的执行结果?
public class SynchronousQueueQuiz { public static void main(String[] args) throws Exception { BlockingQueue<Integer> queue = new SynchronousQueue<>(); System. out .print(queue.offer(1) + " "); System. out .print(queue.offer(2) + " "); System. out .print(queue.offer(3) + " "); System. out .print(queue.take() + " "); System. out .println(queue.size()); } } A. true true true 1 3 B. true true true (阻塞) C. false false false null 0 D. false false false (阻塞)
参考答案 D
总结
以上所述是小编给大家介绍的2020年最新阿里面试题整理附答案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关文章
- 这篇文章主要介绍了2020最新版MyBatis高频面试题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2020-02-25
- 这篇文章主要介绍了JVM面试题小结(2020最新版),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2020-02-21
- 这篇文章主要介绍了2020Java面试题最新(五锁机制篇),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2020-02-12
- 这篇文章主要介绍了2020年12道高频JavaScript手写面试题及答案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编2020-01-06
- 这篇文章主要介绍了2020年JVM高频率面试题整理,真是小编下了血本给大家整理出来的,值得大家收藏,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-03-09
最新评论