Linux、Git、Maven、Jenkins、软件工程面经知识点总结

Linux

  1. Linux查询Java进程?
    ps -ef | grep java
    ps:将某个进程显示出来
    -e  显示所有程序。
    -f  显示UID,PPIP,C与STIME栏位。

  2. 怎么杀死进程?
    kill -9 PID来强制杀死进程。

  3. Linux命令,怎么日志文件里面找关键字?
    cat 路径/文件名 | grep 关键词
    例如:cat test.log | grep "http"  # 返回test.log中包含http的所有行

  4. Linux环境下,在10g数据中如何找到包含某字符串的一行?

  5. 常用的Linux命令。查找某端口的进程与用户?
    lsof -i:端口号,用于查看某一端口的占用情况,比如查看22号端口使用情况,lsof -i:22

  6. 写出你熟悉的Linux命令?
    top, cd, pwd, cp, rf, mkdir, cat, touch, grep, kill, chmod 777, reboot

  7. Linux怎么把日志输入到文件中?
    使用>输出重定向到文件中。

  8. 64位和32位的区别?
    32位操作系统通用寄存器的数据宽度是32位的,一次最多能处理32位数据。相应的,64位操作系统一次处理数据要比32位高一倍,一次能运行64位的数据。

  9. 讲一下系统内存是怎样的?分段分页虚拟内存?

  10. Windows和Linux内存管理对比?

  11. 你能解释一下Linux的软链接和硬链接吗?
    硬链接文件与源文件的inode节点号相同,而软链接文件相当于windows下面的快捷方式(inode节点号与源文件不同)。硬链接和源文件具有相同的inode,软链接和源文件具有不同的inode。文件的链接数显示的是硬链接的个数,和软链接个数无关。

  12. 操作系统分页、分段?

  13. 缺页机制能说一下吗?

Git

  1. 写你知道的Git命令
    1. 初始化一个Git仓库,使用git init命令。
    2. 使用命令git commit -m "备注", 提交到仓库;
    3. 掌握工作区的状态,使用git status命令。
    4. 关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
    5. git pull origin master
    6. git push -u origin master;
    7. git clone 远程地址

Maven

  1. 熟悉maven是吧?我们来聊下maven的源码原理,maven冲突的时候,怎么选择依赖包,我们怎么查,我们遇到两个不一样的版本,我们应该如何去选择,为什么?

Jenkins

TODO

软件工程

  1. 什么是敏捷开发,防御式编程。
    敏捷开发:
    1. 敏捷并不是快,而是灵活。灵活地适应需求的变化;
    2. 敏捷不需要面面俱到的文档,但是离不开文档;
    3. 敏捷开发要求项目透明,最小化验证(灵活),及时调整,增量迭代;
    4. 缺点是:对人的要求高,强调自组织;强调沟通,对技术人员打断太多,降低工作效率;

防御性编程:防御性编程是一种编程习惯,是指预见在什么地方可能会出现问题,然后创建一个环境来测试错误,当预见的问题出现的时候通知你,并执行一个你指定的损害控制动作。

问面试官

  1. 你有没有什么想问的?常规三问:您是哪个部门的,做什么?对我今天面试的表现,简单评价一下?对我今后的学习或者工作提些建议?)