基础知识2020-4-24

Linux
Question

1查看后台任务命令
2把后台任务调到前台执行命令 暂停的后台任务在后台执行命令
3终止进程命令 参数
4Linux查看系统支持的所有信号
5 搜索文件命令 格式

Answer

1 jobs -l
2
fg
bg
3
kill
基础知识2020-4-24
4
kill -l
基础知识2020-4-24
5
locate filename
whereis 加参数与文件名
find 直接搜索磁盘 较慢
find <指定目录><指定条件><指定动作>

java

Question

1什么是反射
2 什么是Java序列化 什么情况下需要序列化
3动态代理是什么 有哪些应用
4怎么实现动态代理

Answer

1
反射是指程序可以访问、检测和修改它本身状态或行为的一种能力
Java反射,在Java运行环境中,对于任何一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用他的任意一个方法。
Java反射机制主要提供了以下功能
在运行时判断任意一个对象所属的类
在运行时构造任意一个类的对象
在运行时判断任意一个类所具有的成员变量和方法
在运行时调用任意一个对象的方法
2
Java序列化 : 为了保存在内存中的各种对象的状态(实例变量),并且可以把保存的对象状态在读出来。
a 想把内存中的对象状态保存到一个文件中或者数据库的时候
b 当你想用套接字在网络上传送对象的时候
c 想通过RMI传输对象的时候
3
动态代理:
当想要给实现了某个接口的类中的方法加一些额外的处理时,可以给这个类创建一个代理,就是创建一个新的类,这个类不仅包含原来类方法的功能,还在原来的基础上添加了额外处理的新类。这个代理类不是定义好的,是动态生成的。具有解耦意义,灵活,扩展性强。
应用
Spring的AOP
加事务
加权限
加日志
4
首先定义一个接口,还要有一个InvocationHandler处理类(将实现接口的类的对象传递给它),再有一个工具类Proxy,(习惯性将其称为代理类,因为调用他的newInstance()可以产生代理对象,其实他只是一个产生代理对象的工具类)。利用InvocationHandler拼接代理类源码,将其编译成代理类的二进制码,利用加载器加载,并将其实例化产生代理对象,最后返回。

python
Question

1简述多线程 、多进程
2简述any() all()方法
3IOError AttributeError ImportError IndentationError IndexError KeyError SyntaxError NameError分别是什么异常
4 python中 copy 和deepcopy区别
5 列出python中集中魔法方法并简要介绍用途

Answer

1
进程:
操作系统进行资源分配和调度的基本单位,多个进程之间独立
稳定性好,一个进程崩溃不会影响其他进程,但是进程消耗资源大,进程的开启数量有限制
线程:
CPU进行资源调度和分配的基本单位,线程是进程的一部分,是比进程更小的能够独立运行的基本单位,一个进程下的对各线程共享该进程的所有资源
如果IO操作密集,则可以多线程运行 效率高,如果单线程运行,发生崩溃的话会造成进程的崩溃
应用:
IO密集的用多线程,在用户输入、sleep的时候,切换到其他线程减少等待时间
CPU密集的用多进程,假如使用多线程的话,多个线程共享一个全局解释器锁,当前运行的线程会霸占GIL,其他线程没有GIL,就不能充分利用多核CPU的优势。
2
any()一个为真就为真 或
all()所有为真才为真 与
python中什么元素为假
0 空字符串 空列表 空字典 空元组 None False
基础知识2020-4-24
测试any() all()方法
基础知识2020-4-24

3
IOError 输入输出异常
AttributeError 试图访问一个对象没有的属性
ImportError 无法引入模块或包 一般路径问题
IndentationError 语法错误 代码没有正确的对齐
IndexError 下标索引超出序列边界
KeyError 使徒=试图访问字典中不存在的键
SyntaxError python代码逻辑语法出错 不能执行
NameError 使用一个还未赋予对象的变量
4
1 复制不可变数据类型 不管copy还是deepcopy,都是同一个地址,元数据改变后,复制的数据不会发生变化
基础知识2020-4-24
2 复制的值是可变对象(列表 和 字典)
a 复制的对象没有复杂子对象时,元数据的改变不会影响浅复制的值
基础知识2020-4-24
b 复制的对象中有复杂子对象时,改变元数据会影响浅复制的值,不会影响深复制的值
基础知识2020-4-24

5
init:对象初始化方法
new:创建对象时执行的方法,单列模式会需要
str:当使用print输出对象的时候,子要定义了__str__(self())方法,就会打印从这个方法中return的数据
基础知识2020-4-24

del:删除对象执行的方法