从零开始的面经总结DAY1

这篇博客总结了面试中常见的技术问题,包括水印实现、区块链中的密码学应用、同态加密在云计算中的作用、指针的指针用途、操作系统用户态与内核态的原理、Spark使用体验以及RSA加密算法的介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Q1:水印项目
A1:两种方案 shadow dom/canvas 绘图

shadow dom 优点:1.低耦合,shadow dom 与原先DOM树隔离,不会影响系统原有功能

             缺点:1.shadow DOM 不能够被监听到 2.水印文案及DOM 被篡改的成本较低  3.实现逻辑比较复杂

canvas 绘图  优点:1.实现逻辑比较清晰 2.水印数据生成图片,用户想篡改比较难 3. 水印被篡改能够被监听到

             缺点:1.水印图片是被放在backgroud-image 里面的 ,如果原先在class里面设置了backgroud-image属性的话会被覆盖掉

Q2:音频数字水印
A2:将数字水印通过水印嵌入算法,嵌入到音频文件中

在这里插入图片描述
Q3:区块链项目(哪些地方使用了密码学)
A3:区块链可看作是一个去中心化的数据库(分布式数据库)
涉及领域:支付领域/内容/防伪溯源/预测市场/加密通信/游戏娱乐/资产交易/物联网/去中心化交易/数据存储。
在每个区块中包含自己和上一个区块的hash值,使用密码学关联产生的数据块。

Q4:同态加密的原理,应用?云计算中用到
A4: 同态加密:对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。
通俗解释:好处就是我对(F(X))运算,对结果进行解密之后,就是想要的原文运算结果,那么我把数据加密后给云,云只要计算计算密文,在不知真实数据情况下帮助计算,再发给我,再机器解密就是结果。
应用领域:云计算,电子商务,物联网。

Q5:指针的指针有什么用?
A5:用于指向另一个指针的地址,为了提高函数封装性,避免使用全局变量。
eg:使用链表时,有一个头结点指针,若需要函数进行修改,只将头结点指针作为形参传入函数,作用域仅在函数内部,不能影响真正的头指针。一种解决方法就是头结点指针定义为全局变量,但不符合强封装要求,另一种方法则是传递头结点指针的指针,就是将头结点指针的地址传入,即可在函数内操作

Q6:操作系统的用户态和内核态的原理和关系
A6: 在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃。比如:清内存、设置时钟等。如果所有的程序都能使用这些指令,那么你的系统一天死机n回就不足为奇了。所以,CPU将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通的应用程序只能使用那些不会造成灾难的指令。Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3。

linux的内核是一个有机的整体。每一个用户进程运行时都好像有一份内核的拷贝,每当用户进程使用系统调用时,都自动地将运行模式从用户级转为内核级,此时进程在内核的地址空间中运行。

当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态。因为中断处理程序将使用当前进程的内核栈。这与处于内核态的进程的状态有些类似。

Q7:你对SPARK的使用?
A7:同行软件Hadoop,MapReduce 专为大规模处理而设计的快速通用的计算引擎,在Scala语言中实现

Q8:RSA
A8:RSA加密算法是一种非对称加密算法,因数分解越困难,加密越可靠,目前只要钥匙长度足够长,即无法破解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值