面试二:linux基本操作、python垃圾回收机制、单例模式、python与其他语言区别、lambda函数、重写与重载、static、final

1.linux的基本操作

Shell:是系统的用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,shell编程。

常用基本命令
Pwd 确定当前目录
cd [目录] 切换目录
cd ~ , 当前用户目录

      cd / ,根目录

      cd   -    , 上一次访问的目录

      cd   ..     , 到上以及目录

     cd /usr      切换到指定目录

     cd ./         切换到当前目录下某个目录

     cd            切换到用户主目录

ls 查看目录下的所有内容/文件夹

mkdir 创建目录
rmdir 删除文件夹
cat 文件名 查看文件内容.
Cat /etc/sysconfig/iptables 查看防火墙

more 查看更多内容
q 退出

空格 查询下一屏内容

Find命令: 查找文件或者目录

           语法:find [要搜索的目录] [参数]

                -name        指定字符串作为寻找文件和目录的名称

                find  /  -name  'test*'

touch 文件名 创建文件

tail 主要用于查看日志

               格式:tail [必要参数] [选择参数] [文件]

                     -n <行数>    显示行数

                     -f            循环读取

                使用ping命令,将ping命令输出的内容写入文件,文件名为ip.log

              &后台输出内(写入文件的具体内容)  >写入文件<文件名>  如果

是>> 是在原本基础上追加内容

例子:ping 127.0.0.1 > ip.log &

tail -f ip.log

& 表示后台运行,否则占用终端

           Tail  -n  -f   100 ip.log  

           Ctrl +c      退出

Vim 文件名 用于编辑文件

rm 删除

   rm  文件名                          删除文件,需要确认

   rm  -f  文件名                       删除文件,不提示

   rm  -rf  文件名                      递归删除(rm -rf * 删除所有)

cp a文件 b文件 将a文件复制到b文件
mv a文件 b文件 删除a文件复制成b文件
tar –zcvf(自考潍坊) 要被创建出来的文件夹名或文件名 /xxx/xxx(要被打包的内容) 如果是:*(当前目录所有内容打包)

tar –zxvf(直销潍坊) 要被解压的文件夹名或文件名 可以加参数 –C /xxx/xx要被解压文件输出的指定位置   例如:tar -zxvf  ip.log.tar.gz -C ../  

Kill -9 进程的id 杀死进程

2.描述Python的垃圾回收机制

Python在内存中存储了每个对象的引用计数(reference count)。如果计数值变成0,那么相应的对象就会消失,分配给该对象的内存就会释放出来用作他用。

偶尔也会出现引用循环(reference cycle)。垃圾回收器会定时寻找这个循环,并将其回收。
举个例子,假设有两个对象o1和o2,而且符合o1.x == o2和o2.x == o1这两个条件。如果o1和o2没有其他代码引用,那么它们就不应该继续存在。但它们的引用计数都是1。

Python中使用了某些启发式算法(heuristics)来加速垃圾回收
例如,越晚创建的对象更有可能被回收。对象被创建之后,垃圾回收器会分配它们所属的代(generation)。每个对象都会被分配一个代,而被分配更年轻代的对象是优先被处理的。

3.设计模式——单例模式

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建
1.单例类只能有一个实例
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例

主要解决:一个全局使用的类频繁地创建与销毁

4.Python与其他编译语言的区别

高级语言通过编译或者解释变成机器语言执行。

编译型(代表):C(万恶之源)/C++(加了OOP的万恶之源)

解释性(代表):Java(世界上最好的语言)、Python、C#。

编译型语言是为了将高级语言编写的语言转化为语义相同的机器语言,编译只需要编译一次可以生成可执行文件。(编译后再执行)

解释型语言,根据需要一条一条的分析和执行源代码的程序,每一次都需要源代码,需要解释器(边解释边执行)

编译型和解释型的优缺点:

编译型:.速度快、开放度高、资源消耗低。.

解释型:安全性好、移植性好、友好简单易上手、开发效率高、.生态强大、代码简洁。

5.python中的lambda函数

lambda是python中的保留字,也是匿名函数。

lambda后面接一个表达式,而不是一个代码块,比def简单很多;
lambda的主体是一个表达式,仅仅能在lambda表达式中封装有限的逻辑进去;
lambda表达式是起到一个函数速写的作用,允许在代码内嵌入一个函数的定义

lambda定义的是单行函数,如果需要复杂的函数,应该定义普通函数
lambda参数列表可以包含多个参数,如 lambda x, y: x + y
lambda中的表达式不能含有命令,而且只限一条表达式

重写与重载区别

重写:子类方法覆盖父类方法,其函数名、参数、返回值都相同,子类异常不能超过父类异常,子类访问级不能低于父类访问级。

重载:同一类中两个或以上的方法,函数名相同,参数和函数体不同。最常见的就是构造函数。

static/final

static关键字的作用在C语言中
1.static修饰函数时:静态函数作用范围仅限于它的源文件,即只有本文件内才可以调用,函数名在其他文件内不可见

2.static修饰局部变量时,局部静态变量局限于特定函数,但出作用域并不释放在函数体内静态变量的值也能维持

3.static修饰全局变量时,全局静态变量作用范围局限于它的源文件,即只有本文件内的代码才可以访问它,变量名在其他文件内不可见。

4.存放位置
程序开始时,存放在全局数据区,结束时释放空间,默认初始化值为0,使用时可以改变其值。

具体作用
1.隐藏
未加static前缀的全局变量和函数具有全局可见性,static可以作为函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏。

2.保持变量内容的持久
static修饰局部变量后,改变了它的存储方式,把局部变量存储到静态存储区,改变了局部变量的生存期,生存期为整个源程序,作用域仍在定义该变量的函数内。
static修饰全局变量后,改变了它的作用域,限制了它的使用范围,作用域局限于它的源文件,只有本文件内的代码可以访问,变量名在其他文件不可见。
3.默认初始化为0<static变量>
全局变量也具备这一属性,因为全局变量和被static修饰的局部变量都存放在静态数据区,内存中所有的字节默认值都是0x00.

总结:static最主要的功能是隐藏,其次static变量存放在静态存储区,所以它具备持久性和默认值0.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值