面经出现问题,问答合集

From 问题摘自牛客面筋(Python开发、Python测试、爬虫),答案据自身情况所写仅供参考,请勿完全照搬
服用说明:有部分重复题,可多次回答不必删去
严重声明:题源来自各位发帖分享的牛友👉再次鞠躬感谢!


  1. 项目经历,有没有可以优化的地方

    有过三段主要的项目经历:
    第一段是本科阶段的安卓端开发,当时做的主要是两个小工具,护眼和宠物相关;
    第二段是研究生期间因为参与的课题需要,对镇区级别以上的中小学对象进行一个空间性信息获取(当时组里其他同学更倾向性去负责理论性研究),于是开发了个爬虫(使用的scrapy框架和一些自己写的脚本);
    第三段是在XX实习,完成的主要是XX类的数据获取,也是爬虫开发
  2. 你写的Android项目用了哪些框架,介绍一下

    17、18年的时候,那个时候写原生APP,没有使用什么框架(应该前端用的jQuery UI),UI框架倒是关注了一些
  3. HTTP四大动词知道吗?

    (括号里是对应的SQL命令)
    GET(SELECT):从服务器取出资源(一项或多项)。
    POST(CREATE):在服务器新建一个资源。
    PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
    DELETE(DELETE):从服务器删除资源
    ····不常用····
    PATCH(UPDATE):在服务器更新(更新)资源(客户端提供改变的属性,比如说某个字段+1)。
    HEAD:获取资源的元数据。
    OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。
    幂等操作,操作完后对服务器的影响相同
    GET | PUT | DELETE
  4. 熟悉Linux吗,说一说基本命令(列举了一些基本命令和参数)

    还好,有使用经验
    进入 cd mv 
    增 mkdir 装 rpm |npm |apt |dpkg
    删 rm 
    改 vim(要看装没有) cp touch chmod
    查 ls ef cat pwd whereis(whichis) date find echo ipconfig
  5. 说说管道的使用(单向通信、半双工、亲缘进程间、一次性)

    管道是一种两个进程间进行单向通信的机制。
    因为管道传递数据的单向性,管道又称为半双工管道。具有以下特点:
     · 数据只能由一个进程流向另一个进程(其中一个读,一个写);
         要进行双工通信,需要建立两个管道。
     · 管道只能用于父子进程或者兄弟进程间通信,只能用于具有亲缘关系的进程间通信。
    注意:从管道读数据是 一次性 操作,一旦被读,就被抛弃,释放空间以便写更多的数据。
    Linux管道的语法:  | 
    e.g: cat case.py | grep /bin/bash(grep常用:与管道搭配,筛选带某个关键词的输出)
  6. 数据库四大特性

    指事务管理的四大特性 ACID
    A automicity 原子性 事务整个不可再分的
    C consistency 一致性 前后一致
    I islation 隔离性 多用户并发时 相互不影响
    D durability 持久性 事务结束后影响是永久的 就算数据库坏了 也不能影响
  7. 数据库基本的语句说一下

    show databases/tables
    use db
    增 CREATE
    查 SELECT
    改 UPDATE ALTER
    删 DELETE
    DDL(定义数据库对象,表与列),DML(用于操作数据库表中的记录数据),
    DQL(查询数据),DCL(定义访问权限和安全级别)
  8. 列举清空表的方式

    有三种,分别使用 DELETE、TRUNCATE、DROP三条命令,针对不同应用场合:
    DELETE FROM TABLE WHERE 可回退 作为事务被记录 占资源 数据空间不释放 需回滚。对table和view都能操作
    TRUNCATE TABLE  一次性删除 释放数据页来删除数据) 删除不记录(只在事务日志中记录 页的释放) 不能回滚 不能恢复  不会激活删除触发器,占用资源少 速度快 会释放数据空间 只能操作没有关联视图的table
    drop table 删除的是整个表,包括表的结构,数据,定义。永久抹去,空间释放。对table和view都能操作
    由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器,对于外键(foreignkey )约束引用的表,不能使用 truncate table,而应使用不带 where 子句的 delete 语句。
    truncate table不能用于参与了索引视图的表 
  9. 事务了解吗?说说事务

    事务是一组原子性的SQL查询/独立的工作单元。有ACID四个特性,具体表现为:一组操作不可再分,一致性,并发隔离性,影响持久性
  10. 数据库性能调优

    这个项目中几乎没有涉及到,但平时看了一点,尝试回答一下:
    通常调优会按照 硬件表现 系统规模 库内因素 软件环境 这几个方面来考虑,但是我们一般指的是SQL语句层面上的优化,从语句编写/执行环节等考虑:
    (待完善)
  11. TIME_WAIT状态存在的意义

    TIME_WAIT出现在TCP连接主动关闭方,响应完最后一次ACK后,保持TIME_WAIT状态会维持 2MSL(Maximum Segment Lifetime,最长分节生命期)。
    它可靠地实现了TCP全双工连接的终止,解决网络的丢包和网络不稳定所带来的其他问题

    待更新。。。频率大概一天十题,目前题库有两百题左右。