albb 软件测试实习生面试问题

这篇博客介绍了Linux中的scp命令用法,包括文件和目录的上传与下载。接着讨论了Linux死锁的概念、产生原因及避免策略。在数据结构部分,探讨了循环和递归的效率比较。最后,详细阐述了Python内存管理,包括变量与对象的关系、内存地址判断以及垃圾回收机制。

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

1、Linux系统中的scp是什么?

scp是远程拷贝文件命令

上传目录:scp -r   ./util   用户名@192.168.1.65:/home/wwwroot/limesurvey_back/scp

上传文件:scp   ./util   用户名@192.168.1.65:/home/wwwroot/limesurvey_back/scp 

a、将本机文件复制到远程服务器上

#scp     /home/administrator/news.txt     root@192.168.6.129:/etc/squid

#scp      本地文件的绝对路径/要复制到远程服务器上的文件名       root用户登录到远程服务器@远程服务器的ip地址:本地文件复制到远程服务器上的路径

b、将远程服务器上的文件复制到本机

#scp    remote@www.abc.com:/usr/local/sin.sh     /home/administrator

#scp    remote用户登录到远程服务器@远程服务器的域名:要复制到本地的远程服务器上的文件名    将远程文件复制到本地的绝对路径

2、Linux中的死锁

死锁定义:一组进程中的每个进程都在无限期的等待一个资源,而这个资源被同进程中另外一个进程占用且永远不会释放。

产生死锁的原因:资源不足;进程推动顺利非法。

产生死锁的四个必要条件

互斥:某种资源一次只能被一个进程所占用,其他进程不能在访问该资源。

不可抢夺:一旦某个资源被其他进程占有,其他进程不能抢夺。

占用并等待:某个进程占有了某种资源,但是还有其他资源的要求,但是其他资源被专用了,故而等待其他资源被释放。

循环等待:在发生死锁时必然存在一个进程等待队列{P1,P2,…,Pn}其中P1等待P2占有的资源,P2等待P3占有的资源,…,Pn等待P1占有的资源,形成一个进程等待环路,环路中每一个进程所占有的资源同时被另一个申请,也就是前一个进程占有后一个进程所申请的资源。

避免死锁的方法:设置加锁顺序;设置加锁时限;死锁检测。

3、数据结构中循环和递归哪个效率高

递归:运行需要调用函数本身,每次调用函数本身都需要保存局部变量、形参、调用函数地址、返回值,这势必会影响效率。但是递归代码少,程序容易理解,容易验证正确性。(斐波函数,阶乘)。所有递归都可以用循环代替。

循环:循环效率高,速度快、结构简单。但是有些问题用循环的话程序会特别复杂,不容易理解。

4、Python内存管理

变量与对象

注意:Pyhton中变量名没有类型,对象才有类型(因为变量引用对象,所以类型随对象),变量引用什么类型的对象,变量就是什么类型的。Python的内置函数id()。它用于返回对象的身份(identity),就是该对象的内存地址

1变量:通过变量指针引用对象变量指针指向具体对象的内存空间,取对象的值。

2对象:类型已知,每个对象都包含一个头部信息(头部信息:类型标识符和引用计数器)

3、Python缓存了整数和短字符串,因此每个对象在内存中只存有一份,引用所指对象就是相同的,即使使用赋值语句,也只是创造新的引用,而不是对象本身;

4、Python没有缓存长字符串、列表及其他对象,可以由多个相同的对象,可以使用赋值语句创建出新的对象。

5、通过is进行引用所指判断,is是用来判断两个引用所指的对象是否相同。

6、查看对象的引用计数:sys.getrefcount()。当Python的某个对象的引用计数降为0时,说明没有任何引用指向该对象,该对象就成为要被回收的垃圾。

注意

        a、垃圾回收时,Python不能进行其它的任务,频繁的垃圾回收将大大降低Python的工作效率;

        b、Python只会在特定条件下,自动启动垃圾回收(垃圾对象少就没必要回收)

        c、当Python运行时,会记录其中分配对象(object allocation)和取消分配对象(object deallocation)的次数。当两者的差值高于某个阈值时,垃圾回收才会启动。

5、数据结构中常见搜索和排序法复杂度

搜索算法:

最小项搜索:O(n)

顺序搜索:O(n)

二叉搜索:O(log{_{2}}^{n})     (最坏的情况)

红黑树(R-B Tree):一种特殊的二叉查找树,红黑树的每个节点都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。

红黑树的特点:

                      (1)每个节点或者是黑色或者是红色。

                      (2)根节点是黑色的

                      (3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]

                      (4)如果一个节点是红色的,那它的子节点必须是黑色的

                      (5)从一个节点到该节点的子孙节点的所有路径上都包含相同数目的黑色节点

红黑树主要用来存储有序的数据(Linux虚拟内存管理),时间复杂度为O(lgn),效率非常高。

排序算法:

选择排序、冒泡排序、插入排序(最坏情况)、快速排序:O(n)

合并排序:O(nlogn)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值