美文网首页
面试知识汇总

面试知识汇总

作者: yang_zcybb | 来源:发表于2019-07-15 08:19 被阅读0次

    Linux

    1. linux Ctrl+C发生了什么
    2. ping底层协议
    3. 项目中的md5可以解密吗
      (答:md5是单向加密,所以不能解密,一般密码要找回只能通过邮箱手机,重修设置密码。md5只是一种散列算法,不可逆,对于md5并没有加解密的概念。md5不加salt的话,计算得到的值是固定的,所以有记录md5值的散列字典,可以通过字典查询 字典攻击得到原文,但这并不是通过逆向计算出来的,从密码学角度看这个过程不能叫做加解密。另外,王小云找到了md5碰撞的方法,也就是有方法找到具有相同散列值的不同数据,所以md5不可靠了。)
    4. _exit(0)和exit(0)

    数据库

    1. redis知识
    2. 分库分表
    3. 事务、分布式事务
    4. 一条SQL执行的很慢的原因
    5. mysql索引相关
    6. mysql都有那些引擎 有什么区别

    设计模式

    1. 单例:double chick+volatile、关键字final, static, volatile, sychronized
      (final修饰形参,匿名内部类会用到,解释了相关原理(值传递而不是引用传递)
      synchronized修饰类和实例的区别
      volatile:可见性、原子性)https://www.jianshu.com/p/c1cab562c23d
      单例模式-上
      单例模式-下
    1. 简单工厂
    2. 建造者模式
      建造者模式

    网络

    1. cookies和session
    2. cookie和session以及cookie在浏览器怎么储存
    3. 通信的具体方式:http或RPC(dubbo以及spring cloud)
    4. RPC协议
    5. 三次握手、四次挥手、TIME_WAIT和CLOSE_WAIT阶段的作用
    6. http相关请求类型
    7. http和https
    8. 项目中多用到tcp,为什么不用http
      (答:理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。http是建立在tcp基础上的一种应用。tcp在传输层,http在应用层,作用本质上不一样)
    9. get能不能上传数据,与post区别
    10. DNS解析过程
    11. 输入url发生了什么(有DNS转换啊,ip网络寻址啊,三次挥手啊,可能还有NAT地址转换啊,还有ARP啊)
    12. TCP 和 UTP 有什么区别?(一个面向连接一个非面向连接,一个可靠一个非可靠,TCP有流量控制,拥塞控制,面向流以及基于这些区别,他们的使用场景)
      TCP协议详解(慢启动,流量控制,阻塞控制之类)

    数据结构

    1. 面试HashMap之追命5连问
    2. hashMap存储null的位置
    3. 红黑色、
    4. b树、b+树
    5. hash如何存储很长的key(在文件中查找特别长的字符串出现的次数)
    6. Redis
    7. hashmap:线程安全、如何保证安全、不安全会发生什么
    8. 快排:中轴

    Java类

    Collections和Collection
    java集合类
    java集合类(jdk1.8变化)
    hashmap里的取索引index = key.hasCode()&(n-1)
    当 lenth = 2n 时,X % length = X & (length - 1)
    hashmap为什么要用红黑树
    抽象函数、接口、子类父类等等
    设计模式
    虚拟机堆栈的区别
    Java内存模型、进程通信、进程同步
    scala统计单词个数

    scala统计单词个数

    进程线程并行

    进程和线程的区别和联系
    并发编程
    线程安全
    进程间通信-总
    进程间通信1
    进程间通信2
    进程间同步
    线程池
    阻塞队列
    wait、notify和notifyAll
    死锁的四个必要条件和解决办法
    锁机制,死锁解除
    cas原理
    volatile原理(只有在某些场合才能够使用volatile。使用它必须满足如下两个条件:对变量的写操作不依赖当前值; 该变量没有包含在具有其他变量的不变式中。

    正确使用volatile

    计算机组成原理

    物理内存和虚拟内存(程序分配的地址)
    fork()
    栈内存为什么要用栈结构

    CUDA

    CUDA入门
    CUDA简介
    cuda
    cuda分层
    cuda内存
    cuda分层-详细

    分布式相关

    负载均衡
    Nginx
    分布式系统
    TCC、最终一致性、2PC
    分布式消息中间件:RabbitMQ

    算法

    三色标记问题
    DFS岛问题变形

    其他

    头条-阿里面试题
    设计一个文本编辑器,具有插入字符和删除字符的功能,使用什么数据结构。怎么优化时间和空间复杂度。
    spring boot

    @RestController = @Controller + @ResponseBody
    @RestController是相当于返回字符串,页面就跳转不了了;@Controller可以跳转页面(当使用@Controller 注解时,spring默认方法返回的是view对象(页面)。而加上@ResponseBody,则方法返回的就是具体对象了。@RestController的作用就相当于@Controller+@ResponseBody的结合体)
    @JsonIgnore 是添加在POJO包下的实体类里的对象前面,如果为null,就不返回null
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss a", locale = "zh", timezone = "GMT+8")

    银行

    安全事态感知
    科来
    零信任
    堡垒机

    相关文章

      网友评论

          本文标题:面试知识汇总

          本文链接:https://www.haomeiwen.com/subject/rqhufctx.html