面试记录-Git
将本地文件推向远程仓库的完整过程
git init //初始化版本库
git add //添加文件到版本库,只是添加到缓存区
git commit -m "注释" //把添加的文件添加到版本库并填写备注
git remote add origin 远程地址 //把本地库与远程库关联
git push -u origin master //第一次推送
git push origin master //第一次推送后,直接使用该命令即可推送修改
面试记录-Linux
常用的Linux命令
ls 展示当前文件夹的可见文件
ls -a 展示当前文件夹所有文件(包括隐藏文件)
pwd 显示目前的目录
cd 切换目录
mkdir 创建文件夹
touch test.txt 创建文件
rm test.txt 删除文件
ln 创建链接
ln命令用于将一个文件创建链接,链接分为软链接(类似于windows系统中的快捷方式)和硬链接(相当于对源文件copy,程序或命令对该文件block的另一个访问路口),命令默认使用硬链接。
软链接:不可以删除源文件,删除源文件导致链接文件找不到,出现文件红色闪烁
硬链接:可以删除源文件,链接文件可以正常打开
面试记录-MySQL存储引擎
常见的MySQL存储引擎主要有什么,区别是什么?
答:MySQL常见的存储引擎有三种分别为:InnoDB、MyISAM、MEMORY(很少用)。
InnoDB的优势在于提供了良好的事务处理、崩溃修复功能和并发控制。缺点是读写效率较差、占用的数据空间相对较大。
MyISAM的优势在于占用空间小、处理速度快。缺点是不支持事物的完整性和并发性。
关联查询:不建议使用join查询?
- 不利于写操作。执行读操作时会锁住被读的数据,阻塞其他业务对该部分数据的更新操作。如果涉及多个聚合函数相当于同时锁住多张表不能读写,直接影响其他业务从而影响系统的整体性能。
- 不利于维护。业务发生变动时,比如join中一张表改了,可能导致系统中原有的sql不可用,最终导致基于sql执行结果的上层显示失败。
面试记录-PHP7特性
- 可以使用字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool),来声明函数的参数类型与函数返回值。
- 大文件上传支持(可以上传超过2G的大文件)
- JSON扩展已经被JSOND取代
- NULL合并运算
如果变量存在且值不为NULL,它就返回自身的值,否则返回它的第二个参数
$username = $_GET['user'] ?? 'nobody';
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
//结果相同
- 整除函数(intdiv)
- 平方运算
- 常量定义数组
面试记录-TP5框架的特点
- 高级模型:可以轻松支持序列化字段、文本字段、只读字段、延迟写入、乐观锁、数据分表等高级特性。
- 视图模型:轻松动态的创建视图模型,多表查询相对简单。
- 关联模型:简单灵活的完成多表查询
- 缓存机制:支持多种动态数据缓存类型
- 编译机制:减少OOP开发中文件加载的性能开销
- 自动验证和完成:自动完成表单数据的验证和过滤,生成安全的数据对象。
- AJAX支持:内置AJAX数据返回方法
- 查询语言:内建丰富的查询机制,包括组合查询、复合查询
面试记录-对MVC模式的理解
MVC全名是Model View Controller,是模型-视图-控制器的英文缩写,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里,在改进和个性化定制界面及用户交互的同时不需要重新编写业务逻辑。
Model(模型):通常模型对象负责在数据库中存取数据。
View(视图):是应用程序中处理数据显示的部分。
Controller(控制器):通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
面试记录-设计模式
- 工厂模式:使我们最常用的实例化对象模式,是用工厂方法代替new操作的一种模式。
- 单例模式:是一种常见的软件设计模式。在它的核心结构中只包含一个单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源