当前位置 : 主页 > 编程语言 > java >

【面试】小黑盒电话面试

来源:互联网 收集:自由互联 发布时间:2022-06-30
一面 B树和B+树的区别 B和B+树的区别在于,B+树的非叶子结点只包含导航信息,不包含实际的值,所有的叶子结点和相连的节点使用链表相连(所有的叶子节点用链表相连接),便于区间

一面

  • B树和B+树的区别
    B和B+树的区别在于,B+树的非叶子结点只包含导航信息,不包含实际的值,所有的叶子结点和相连的节点使用链表相连(所有的叶子节点用链表相连接),便于区间查找和遍历。

  • https://www.jianshu.com/p/71700a464e97

  • 数据库的死锁
    一、数据库死锁的现象
  • 程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。

    二、死锁的原理

    当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提
    交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,
    此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错。

  • 如何抢占处于死锁的进程
  • 抢占的时机

    1.用户态的抢占时机
    当该进程进行系统调用从内核态返回到用户态的时候,判断如果该进程有TIF_NEED_RESCHED标签,则进行抢占。

    2.内核态的抢占时机
    对内核态的执行中,被抢占的时机一般发生在preempt_enable()中。
    preempt_disable()关闭抢占
    在内核态的执行中,有的操作是不能被中断的,所有在进行这些操作之前,总是先调用preempt_disable()关闭抢占,当再次打开的时候,也就是调用preempt_enable()的时候
    就是一次内核态代码被抢占的机会。

    在内核态也会遇到中断的情况,当中断返回的时候,返回的仍然是内核态度。这个时候也是一个执行抢占的时机。

    二面

  • 服务器怎么判断TCP已经连接
    如何标识一个TCP连接? 系统用一个4元组来标识一个TCP连接:(local ip,local port,remote ip, remote port) 对于accept来说,accept的sock不占新的端口 第一个local ip , local port 代表客户端的ip地址和端口号。
  • b+树的查找过程,怎么去查找一个值
    与二分查找类似
  • 二分查找时间复杂度O(logn)
  • linux怎么查找你的进程占用的那个端口
  • 单核服务器连接数超载了怎么办

  • 上一篇:【Java】异常
    下一篇:没有了
    网友评论