zoukankan      html  css  js  c++  java
  • 啥玩意都有 新看的知识

    后端面试进阶指南目录 https://xiaozhuanlan.com/topic/2167809435  

    小林coding:https://www.cnblogs.com/xiaolincoding/ 强烈推荐

    微信扫码登录原理解析

    在数据库中,视图有什么用?什么时候需要用到视图?

    C++浅拷贝与深拷贝

    •      系统默认是浅拷贝,当数据成员没有指针时,其实就是没有内存资源时,浅拷贝是可行的;但有指针时,用浅拷贝会使两个类中的两个指针指向同一个地址,当对象快结束时,会调用两次析构函数,使指针悬空。
    •      深拷贝时会把开辟新内存把指针指向的对象也拷贝出来。

           A(const A& _A) : size(_A.size){

                  data = new int[size];

           } // 深拷贝

    软连接与硬链接

    • 硬链接:硬链接与源文件都指向同一个inode,是文件的不同入口,想要删除文件需要把所有硬链接和源文件都删除。对目录不能创建硬链接。
    • 软连接:windows的快捷方式就是软连接,软连接是创建个新的inode,存着一个block,block存着源文件路径名,是和源文件不同的文件,文件类型也不同。如果源文件没了,软连接依然存在,只是无法访问源文件。

    用nullptr不用NULL

    • null在c++中就是无类型的0,而nullptr不是整型类别,也不是指针类型,但能转换成任意指针类型。

    从键盘按下字符到它出现在显示器的过程详解 (存疑)

    1. 键盘被按下后,产生了硬件中断信号。
    2. 计算机高级中断控制器(IOAPIC)选择CPU处理核心以及软件中断编号,并发送给中断描述符表(IDT)处理。
    3. 计算机根据IDT选择中断处理函数。
    4. 处理函数处理并通知端口驱动获取按键的信息。
    5. 端口驱动将数据封装,以IRP(I/O request package)形式传递给上层处理程序。
    6. 等待输入的进程获得数据,处理并交给目标进程。
    7. 目标进程显示输入。

    另个解释:https://blog.csdn.net/bingjing12345/article/details/7830710

    TCP 和 HTTP 中的 KeepAlive 机制总结:

    https://xie.infoq.cn/article/398b82c2b4300f928108ac605

    SEND和RECV优缺点

    如果 SYN 半连接队列已满,只能丢弃连接吗?

    https://www.cnblogs.com/xiaolincoding/p/12995358.html

    这里给出几种防御 SYN 攻击的方法:

    • 增大半连接队列;
    • 开启 tcp_syncookies 功能
    • 减少 SYN+ACK 重传次数:加快处于 SYN_REVC 状态的 TCP 连接断开。

    InnoDB与MyISAM有哪些区别呢? 

    https://blog.csdn.net/qq_41453285/article/details/107813140

     

    如何用通俗易懂的话来解释非对称加密?

     https://www.zhihu.com/question/33645891
     

    联合索引

    https://segmentfault.com/a/1190000015416513

    Utf8编码

    话说进程和线程

    https://www.bilibili.com/video/BV1H541187UH?from=search&seid=692598712846930104

    https://www.bilibili.com/video/BV1KD4y1U7Rr?from=search&seid=7668303275125709327

    进程:进程控制块pcb  pcb有个指针,存储当前进程页目录的物理地址,页目录里存着指针,指向页表,页表存储着物理内存页的起始地址。两级页表可以寻址1024*1024*4KB = 4GB 内存空间大小。线性地址32,10位是在页目录中选择一个页表,10位在页表中选择一个物理内存页,12位是物理内存页的偏移量。

    进程先向操作系统申请内存地址,linux中通过进程对应的task_struct找到记录内存分配的链表,每个链表记录该进程已经分配的一段连续内存地址空间。但真正进行映射要到进程访问这段内存时才会进行。Cup中的内存管理单元(MMU)负责线性地址到物理地址转换,该进程页目录的物理地址会保存到特定的寄存器,cup会把已经转换的地址关系存放在TLB中,需要转换地址时先去tlb查找,找不到去查页表写入tlb。切换进程时,页目录地址会改变,之前的TLB缓存会失效需要重新查询页表,这也是进程切换代价比较高的一个重要原因。

    而线程共享进程的虚拟地址空间,tlb缓存不会失效。

    进程拥有的资源包括:内存空间中的代码、数据等;I/O 资源;文件;处理机等。

    线程资源:线程控制块tcb  

    为何引入进程:为了程序的并发执行

    四个范式

    Mysql的MyISAM与innoDB

    • Innodb是数据和索引不分离的,myisam是索引存放的是数据的地址。
    • Innodb要有主键,sam可以没有。
    • Innodb有行级锁,支持事务,支持外键
    • Myisam优点是存储空间更大,支持全文索引。

    面向报文(udp)面向字节流(TCP)

    • 面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。    DNS 视频面试
    •  面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。  文件传输

    Redo log的机制

    https://www.jianshu.com/p/336e4995b9b8

    分布式储存的哈希一致性:

    https://segmentfault.com/a/1190000021199728

    分布式存储的一致性 两段提交:

    https://segmentfault.com/a/1190000012534071

    一篇文章讲透分布式存储

    https://zhuanlan.zhihu.com/p/55964292 

    什么时候使用指针?什么时候使用引用?什么时候应该按值传递?

    https://blog.csdn.net/hbtj_1216/article/details/56843014

    通过虚函数表调用虚函数与通过虚函数表(绕过访问权限控制)

    https://blog.csdn.net/iicy266/article/details/11906807

  • 相关阅读:
    苹果是如何做到快速发货的?
    亚马逊危险了!面临创业公司和科技巨头的颠覆
    We are writing to let you know we have removed your selling privileges
    亚马逊获20亿美元信用额度:有助新业务投资
    亚马逊与美国邮政合作试营快递生鲜服务
    2013下半年(11月)信息系统项目管理师考试题型分析(综合知识、案例分析、论文)
    SQL Server Profiler参数说明
    SQL2005查询所有表的大小
    SQL中EXISTS的用法和效率
    在线生成APK
  • 原文地址:https://www.cnblogs.com/philo-zhou/p/14469514.html
Copyright © 2011-2022 走看看