zoukankan      html  css  js  c++  java
  • 百度一面面经

    链接: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,区别)

  • 相关阅读:
    吃货联盟项目
    字串符笔记
    带有参的方法
    js:自动亮起100盏灯
    JS字面量创建方式的优缺点
    为什么说对象字面量赋值比new Object()高效?
    javascript 字面量
    vue学习(一)、Vue.js简介
    Redis(二):c#连接Redis
    Redis(一):centos下安装。
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602175.html
Copyright © 2011-2022 走看看