面试问题采集

synchronize和lock性能比较

中断了解吗?CPU在中断时会干嘛?

解释下这两个方法,ADD来加入一个事件,RUN来执行事件,有点像缓存这些事件,到点了把执行完的事件删除。
1
2
3
ADD(int x, func *y) // x 是等待秒数,y是函数指针,意思是这个函数x秒后会执行
RUN() // 操作系统每一秒会执行一次
操作系统提供API:获取time(从1970年至今的秒数)
一开始想到了有序链表,ADDO(N)、RUNO(1);然后让我优化,想到了最小堆,ADDO(logN),RUN因为需要调整堆,也是O(logN);再然后类比LRU,想到用这个函数的开始执行时间(当前时间+等待秒数)作为key,然后value为链表中的节点位置,用HashMap来存储,用一个链表来存储事件指针,ADDO(1),在面试官提醒下发现删除可以再用一次搜索(搜索当前时间)O(1)。

栈空间在什么时候进行回收?Java的栈大小是多少?能不能把栈中的数据都分配在堆上?什么时候进行full GC?GC为什么要分代?

用SQL语句实现,在一个有唯一索引的表中插入一条数据,如果这个索引值已经存在,那么就更新这一行,如果不存在,直接插入

数据库如果数据很多,我想查询的数据偏后,怎么样可以快速查询,(回答了分页/limit/偏移量都不对)

为什么tcp三次握手的时候的seq初始化时随机地,而不是从0开始

网卡收到一条数据到进程处理数据,这之间经历了什么(中断的上半部下半部,网络层协议拆包)

大数据量(内存够用)下,快排与堆排序的对比(考察缓存命中率的对比)

全部评论

相关推荐

刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务