面试知识汇总

2019-07-15  本文已影响0人  yang_zcybb

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")

银行

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

上一篇下一篇

猜你喜欢

热点阅读