二. 面试准备篇——术语名词解释

1. 上下文

定义

上下文,上下文代表了程序当下所运行的环境,联系你整个app的生命周期与资源调用,是程序可以访问到的所有资源的总和,资源可以是一个变量,也可以是一个对象的引用。

举例:

  1. 比如我们在Spring中的数据源,就是存储在上下文中的,这个时候,不论是哪里的代码,都是可以通过上下文获取到数据连接并进行相关的操作,同样的,我们可以在任何地方通过spring中的上下文获取到bean和其他的配置信息,当然,这里的任何地方是我们Spring初始化工作完成之后的地方。
  2. 再比如我们应用进行线程切换的时候,切换前都会把线程的状态信息暂时储存在寄存器中,这里的上下文就包括了当时寄存器的值,把寄存器的值都保存起来,等下次该线程又得到CPU时间的时候再恢复寄存器的值,这样线程才能正确的运行。

一个简单的概念含义本身是清晰的,一万人看完以后,又给出一万个解释,每个人的解释又不能说是错的。然后新人又不得不把这一万个解释理解了,归纳成自己的理解。什么是上下文,可惜书里从没记载,终于摸出来但岁月却不回来。

参考:

2. SpringBoot项目的ClassPath,什么意思?

SpringBoot项目中的ClassPath路径指的是哪个路径?

定义

顾名思义,classpath就是class的path,也就是类文件(*.class的路径)。

  • classpath指的是src.main.java和src.main.resources路径(class路径)
  • classpath*除了上面两个路径外,还包含第三方jar包的根路径(包含这三个路径)

参考:

3. 什么是快照?

定义:

个人理解:

快照相当于一张表,记录着地址和数据的映射关系。地址分逻辑地址、快照地址、物理地址。

物理地址是不变的,

  • 通过逻辑地址与物理地址的映射关系,可找到已修改后的数据。
  • 通过快照地址与物理地址的映射关系,可找到做快照的数据。

举例:

哪里用到了这个名词?

  • Redis持久化策略的RDB方式:在指定的时间间隔内,将内存中的数据集的快照写入磁盘。

参考:https://blog.csdn.net/Rex_WUST/article/details/96349878?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166420597916782248561706%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall%255Fv2.%2522%257D&request_id=166420597916782248561706&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2all_v2first_rank_ecpm_v1~hot_rank-2-96349878-null-null.142v50control_1,201v3control_1&utm_term=%E5%BF%AB%E7%85%A7&spm=1018.2226.3001.4187

4. 冷备?热备?

也就是冷备份,热备份

定义

个人理解:
(1)冷备份:数据库关闭时,做的备份。
(2)热备份:数据库正在运行时,做的备份。

举例
  • Redis的RDB持久化策略,需要关闭主进程进行备份(无论是save命令方式,还是bgsave命令方式,都需要关闭主进程,后者是又创建了一个子进程,但主进程同样也是关闭了)。

参考:https://www.infocode.com.cn/blog/414.html

5. 字面量?直接量?

  • 在java中,字面量literal,又叫直接量literal,你能看到的确切的值就是字面量,看到什么就是什么。(他们的英文都一样)。
var num = 1; // 意思是把字面量1赋值给变量num
const str = "JavaScript"; // 意思是把字面量"JavaScript"赋值给了常量str

参考:https://blog.csdn.net/qq_43738157/article/details/84397637

  • 在js中,他们有一点区别:
<!--对象字面量-->
<!--字面量与直接量创建方式例子:-->
var obj = new Object() //对象字面量
var obj = {} //对象直接量

参考:https://blog.csdn.net/qq_42572514/article/details/91391855

6. 套接字socket?

TCP/IP4层模型:*

  • 应用层
  • 传输层
  • 网络层(也叫网络互连层)
  • 数据链路层(也叫主机到网络层,网络访问层)

定义

网络应用(应用层)通信的实质是进程之间的通信。应用层接收的是传输层的数据,传输层真正连接的是套接字,通过套接字将数据发送给特定的进程。
如下图:

参考:https://blog.csdn.net/shang_0122/article/details/104273944

7. java环境变量classpath(作用)

定义

我们在安装jdk时,一般都要配置环境变量classpath,这个环境变量classpath的作用是指定在哪里运行class文件,但是有的时候不对这个环境变量做配置,也不会影响程序运行。这是因为在jdk1.5之后,环境变量classpath默认把当前路径设置为classpath指定的路径(在哪里文件夹下,就指定哪个路径为classpath)。当然也可以指定环境变量classpath,但是这样做有很多弊端,无论在哪里运行java程序,都会在classpath指定的路径中去寻找并加载class文件。

作用

classpath环境变量的作用是指定在哪里运行class文件,jdk1.5之后,环境变量classpath默认把当前路径设置为classpath指定的路径(在哪里文件夹下,就指定哪个路径为classpath)。
(这这说明了另一道题——类加载器,启动类加载器默认加载classpath环境变量下路径中的类,也就是说启动类加载器默认加载程序开发者自己编写的java类。)

参考:https://www.bilibili.com/video/BV1SQ4y1K7Cr/?spm_id_from=333.880.my_history.page.click

8. 单工?半双工?全双工通信?

定义

  • 单工:只能单向发送数据
  • 半双工:半双工通信允许信号(数据)在两个方向上传输,但同一时刻只允许信号在一个信道上单向传输。(因为只有一个信道)
  • 全双工通信:全双工通信允许数据同时在两个方向上传输,即有两个信道,因此允许同时进行双向传输。

参考:https://blog.csdn.net/iningwei/article/details/100134783

9. 寄存器

定义

什么是寄存器?

  • 寄存器就是你的口袋。身上只有那么几个,只装最常用或者马上要用的东西。
  • 内存就是你的背包。有时候拿点什么放到口袋里,有时候从口袋里拿出点东西放在背包里。
  • 硬盘就是你家里的抽屉。可以放很多东西,但存取不方便。

或者可以比作:
如果把被储存的东西比作能量:

  • 寄存器就是 ATP,可以随时拿来用,性能高,但数量有限;
  • 内存就是葡萄糖,性能一般,但是存量可以比较多;
  • 外存(比如硬盘)就是脂肪,容量可以非常大,性能很差,要先转化为葡萄糖(存进内存),然后转化为 ATP(放到寄存器)才能直接利用(存取)。

参考:https://www.zhihu.com/question/20539463

感觉这个东西没有必要知道的过于细节,知道干什么就行,日后用到再查。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值