zoukankan      html  css  js  c++  java
  • 开课吧-孤尽公开课视频内容整理笔记

    【地址】
    https://www.kaikeba.com/open/item?c=681&channelCode=gjsh6ytvxy
    ------------------------------------------------------------------------------------
    【面试经验】
    版面整洁,信息精炼:
      最多两页,字句不多余,恰到好处;
      便于快速阅读,关键信息粗体标出,但不超过5处。
    有的放矢,突出优势:
      建立多版本化,如研发,算法,技术支持类...
      有含金量的技术比赛经历和获奖情况。
    切忌正确废话的堆砌。
      吃苦耐劳,学习能力强......
      熟悉,了解,精通满屏飞。

    电话,视频面试
      安静,网络通畅,尽量看着镜头。
    现场面试
      STAR

    •   Surrounding,项目的时间、地点、背景;
    •   Target,任务,描述,要求;
    •   Action,做了什么,工具,困难;
    •   Result,成就,认知,结果量化。

      SA要讲清楚

    互动,节奏,表达连贯;深度广度和要求是否一致;精气神,勇气-指出来面试的问题,让面试官给出答案(态度谦虚);把问题主动难度,深度延伸,结合项目。
    ------------------------------------------------------------------------------------
    【如何清晰地回答好TCP三次握手】
    网络怎么分层的:按照数据格式和解决传输问题的角度来进行分层。
            |-应用层(HTTP/FTP):程序中的数据
          |-传输层(TCP/UDP):定义端口
        |-网络层(IP/ARP):定义IP地址及子网
      |- 链路层:怎么组装有特定意义的数据帧
    物理层:定义帧结构-------------------------
    <画 |- 的目的是为了直观的展示不同数据分层的结构,应用层数据经过组装成为传输层数据,传输层经过组装成为网络层数据......>

    一些要注意的问题:

    • IP报文结构中的TTL:IP报文被路由器丢弃之前可经过的最多路由总数。
    • 区别于MSL:报文的最大存在时间。
    • 区别于RTT:客户端到服务器往返所花费的时间。TCP含有动态估算RTT的算法,会持续估算,因为网络传输拥塞程度是动态的。

    TCP报头的标志性也是高频使用的内容:SYN(建立连接),ACK(响应),FIN(关闭连接)

    TCP共有10种实际状态存在。
    建立连接4中:
    LISTENING,SYN_SENT,SYN_RECEIVED,ESTABLISHED
    断开连接8种:
    ESTABLISHED,FIN_WAIT_1,FIN_WAIT_2,CLOSE_WAIT,LAST_ACK,TIME_WAIT,CLOSING,LISTENING
    其中的LISTENING和ESTABLISHED是重复的。
    它们以 源目的IP+端口号为Key,状态为Value,存储在操作系统中。

    常考:为什么要三次握手?

    1.信息对等:
    关于信息对等的含义就是,不仅要知道对方收到了自己的消息,还要让对方知道我们收到了对方的消息。
    举个例子,两个人背对背坐着,看不到对方,只能通过听来判断。那如果第一个人说,你好,第二个人再说,你好。此时都不说话了,这个时候我们是没办法判断出来第一个人是不是聋子,所以必须要第一个人对第二个人这句话有个回应,才能说双方说话,和听话都是没有问题的。这是下一步交流的基础。

    2.防止请求超时导致的脏连接;
    这里主要是跟2次握手方案的对比,如果是两次握手,那么a和b在建立连接之后,a超时发送给b的数据,b就会建立连接,而此时a是没有连接的,这就是脏连接。

    为什么要4次挥手?
    主要是为了传回未处理完成的包。

    • 1.A发FIN消息
    • 2.B响应ACK消息
    • 3.B做好准备,发送FIN+ACK给A
    • 4.A返回ACK,并TIME_WAIT

    经过2MSL之后,A进入CLOSE,释放TCP;B在收到A的ACK后就进入CLOSE,释放TCP;

    为什么需要TIME_WAIT?
    默认2分钟。确认被关闭方直接进入ACK状态。net.ipv4.tcp_fin_timeout=15。
    ------------------------------------------------------------------------------------
    数据结构-算法复杂度O

      猜数字-100以内的数字,二分法最多几次可以猜到呢?
      算法复杂度的排序O(n!)>O(2^n)>O(n^2)>O(nlogn)>O(n)>O(logn)>O(1)

    面试常考-快排说明
      流程:分界点(pivot)--分区(left, right)--递归处理左右分区
      难点:递归;指针移动与数值交换;复杂度计算与最坏情况
      最坏情况是:升序,倒序或者全部相等,O(nlogn)--O(n^2)

    递归-recursion

    • 1.要有退出条件
    • 2.参数在变化
    • 3.递归方法必须有参数

    实例:计算阶乘(负数阶乘没有意义,13!就超出了int的范围)
    ------------------------------------------------------------------------------------
    HashMap<13>什么时候变为16的?--resize
    异或、>>>无符号位运算、HashMap size()小于64时,一律先扩容,小于64是不可能树化的,没必要。大于64时,节点大于8会树化,小于6会链化,链表长度为8则平均查找次数为4,树化后查找深度为3,有收益;而6时,链化的平均查找长度也是3,树化查找深度为3,收益不大。

    平衡树,AVL树,红黑树概念:

    红黑树的特性(有红必有黑,红红不相连):

    • 根节点必须是黑色;
    • 所有的NIL节点都是黑色;
    • 一条路径不能出现相邻的两个红色节点;
    • 任何递归子树内,根节点到叶子节点的所有路径上包含相同数目的黑色节点。

    AVL绝对的平衡二叉查找树,红黑树不是绝对平衡。红黑树两次就能调整,频繁插入删除时红黑树更合适,avl的旋转成本很高的。

    HashCode与String的神秘31:
    最简单的Hash算法:所有字符的ASCII码相加
    但很容易冲突,选质数31(不容易溢出,31可以被优化-32-1,即i<<5)
    ------------------------------------------------------------------------------------
    线程与线程池:

    • 线程状态:new runnable running dead blocked
    • 线程池状态:running shutdown stop tidying(新任务不能添加了,老任务继续消耗) terminated

    线程池的作用:

    • 利用线程池管理并复用线程、控制最大并发数
    • 增加对线程的管理,快速排查问题
    • 实现任务线程队列的缓存策略与拒绝机制
    • 实现某些与时间相关的功能,如定时执行、周期执行等
    • 隔离线程环境

    ------------------------------------------------------------------------------------
    ConcurrentHashMap类
    AQS

    Spring中的主线:
    BeanFactory,FactoryBean

  • 相关阅读:
    centos7安装kubenetes
    用户密码字典
    curl使用
    docker部署rabbitmq集群
    记一次使用docker搭建fastdfs服务的过程
    filebeat删除多余标签
    Python format格式化输出
    python3 统计NGINX pv uv 最多IP访问
    linux修改网卡名为eth0
    模式查找
  • 原文地址:https://www.cnblogs.com/bruceChan0018/p/15212540.html
Copyright © 2011-2022 走看看