2020 金山云 面经

1.项目

感觉与岗位无关的内容说的太多了,与Java贴合度不够高

2.线程池

https://blog.csdn.net/qq_24598059/article/details/102526966

3.内存管理

  1. 块式:把程序作为一个整体,或者说作为一个基本单位load入主存,就算该程序片段只有几个字节也必须全部占用,方便管理,但是极大的浪费空间。
  2. 段式:把程序按照逻辑关系分为若干段load入主存,每个段都有自己的名字和长度。好处是可以实现共享、分段保护以及动态链接,很好的满足用户需求。
  3. 页式:把程序按照物理存储关系分为若干页load入主存,每页长度相等。好处是程序不必连续存放,空间利用率高。
  4. 段页式:结合了段式和页式的优点,先把主存分成若干段,每个段有分成若干页,通过3次访问即可获取数据。

4.Cache替换算法

  1. 随机算法:用随机数发生器产生一个要替换的块号,将该块替换出去。
  2. 先进先出算法:将最先进入Cache的信息块替换出去。
  3. 近期最少使用算法(LRU):将近期最少使用的Cache中的信息块替换出去。
  4. 最优替换算法(OPT):必须先执行一次程序,统计Cache的替换情况,有了这样的先验信息,在第二次执行该程序时可以用最有效的方式来替换,以达到最优的目的。

5.spring IOC源码

https://blog.csdn.net/qq_24598059/article/details/98184520

6.进程和线程区别

进程是系统进行资源分配和调度的独立单位。从概念上说,每个进程拥有他自己的虚拟CPU。

线程是CPU调度和分配的基本单位,线程自己基本上不拥有系统资源,只拥有在运行中必不可少的资源(如程序计数器、一组寄存器和栈)。

进程与线程之间的区别如下:

1. 所属关系:一个线程必定只属于一个进程,而一个进程可以拥有多个线程并且至少拥有一个线程(线程必须在某个进程中执行);

2. 切换代价:线程被称作轻量级进程,进程有进程控制块,线程也有线程控制块。但是线程控制块比进程控制块要小得多。线程切换代价小,进程间切换代价大;

3. 内存空间:每个进程都有独立的内存空间,而线程是共享其所属进程的内存空间;

4. 并发性:进程让操作系统的并发性成为可能,而线程让进程的内部并发成为可能。

7.新生代老年代

https://blog.csdn.net/qq_24598059/article/details/101148386

8.TCP三次握手四次挥手

9.同步和异步

同步就是共享资源:比如进程需要相互合作、协同工作,他们之间需要协调对同一块资源的使用。

异步就是独占资源:比如多个进程因争用临界资源而互斥执行,在一段时间内只允许一个进程访问资源。

举几个例子:

1.spring中使用@Async注解进行异步处理

2.线程

10.kafka负载均衡

https://blog.csdn.net/qq_24598059/article/details/100598772

11.平时都是怎么调试代码的?

12.平时都是怎么处理异常的?

13.对国企和私企的看法

你可能感兴趣的:(面经)