• 百度一面面经


    链接:https://www.nowcoder.com/discuss/111099
     

    写生产者/消费者代码(使用notify和wait实现)

    wait():进入临界区后的线程在运行到一部分后,发现进行后面的任务所需的资源还没有准备充分,所以调用wait()方法让线程阻塞,等待资源,同时释放临界区的锁,此时线程的状态也从runnable状态变为waiting状态。

    notify():准备资源的线程在准备好资源后,调用notify方法通知需要使用资源的线程,同时释放临界区的锁,将临界区的锁交给使用资源的线程。

    wait,notify这两个方法都必须要在临界区中调用,即在synchronized同步块中调用,不然会抛出IllegalMonitorStateException的异常。

    https://blog.csdn.net/strawqqhat/article/details/88756152

    字符串中出现的第一个只出现过一次的字符

    public static char FirstNotReaptingChar(string str){
      if(string.IsNullOrEmpty())
        return '';
      char[] array = str.ToCharArray();
      const int size = 256;
      unit[] hashtable = new unit[size];
      for(int i=0;i<size;i++)
        hashtable[i] = 0;
      for(int i=0;i<array.length;i++)
        hashtable[array[i]]++;
      for(int i=0;i<array.length;i++){
        if(hashtable[array[i]]==1)
          return array[i];
      }
    }

    设计模式,写观察者模式(没太写出来,换了简单点的单例模式)双重检测单例

    https://blog.csdn.net/qq_35571554/article/details/82769758

    HashMap原理

    Linux 软中断,硬中断

    https://blog.csdn.net/strawqqhat/article/details/88760895

    Tcp/udp区别

    TCP三次握手,四次挥手

    https://blog.csdn.net/strawqqhat/article/details/88761465

    数据库索引及原理

    进程状态转换,进程线程区别

    画网络的五层结构,每层干了什么

    GC root,垃圾回收,引用计数的缺陷

    引用计数的优点:

    简单实时性。

    实时性:一旦没有引用,内存就直接释放了。不用像其他机制等到特定实机。实时性还带来个好处:处理回收内存的时间分摊到了平时。

    引用计数的缺点:

    维护引用计数消耗资源

    循环引用问题

    list1与list2相互引用,如果不存在其他对象对它们的引用,list1与list2的引用  计数也仍然为1,所占用的内存永远无法被回收,这将是致命的。 对于如今 硬件,缺点1尚可接受,但是循环引用导致内存泄露,注定python还将  引用新的回收机制。(标记清除和分代收集)

    NIO原理(select,poll, epoll,区别)

  • 相关阅读:
    三个Bootstrap免费字体和图标库
    前端实时消息提示的效果-websocket长轮询
    带分页的标签
    VMware-workstation安装
    摄影/肥猫的大头贴
    Smith Numbers(分解质因数)
    C
    B
    Ball
    Property Distribution(DFS)
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602175.html
Copyright © 2020-2023  润新知