好久没写面试总结了,因为最近面了十几个也基本麻木了,问的问题都差不多,现在基本就是不怎么准备就去面试了,也都能发挥的不错。但是今晚乐信这个还是问到了没好好复习的知识,所以写下来总结一下。
1.问我博客项目中 写博客然后存储这个功能 数据库字段类型 这个忘记了 还有markdown转html的事情也忘记了
2.还是问项目 我提到图数据库 他有问对图数据库的了解 我只回答了这部分想要用图数据库去改进 但是还没有去了解
3.http的问题答得也不是很好 问了常用的状态码 200 404 302 500说了这四个 但是他问301是什么 我想不起来了 状态码还是要好好看看
200状态码:表示请求已成功,请求所希望的响应头或数据体将随此响应返回
301状态码(永久重定向):被请求的资源已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302状态码(临时重定向):请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求。
401状态码:请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403状态码:服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。
404状态码:请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。
4.问mysql默认端口 问我用的jdk版本 mysql版本 这个都完全不记得了
mysql的默认端口是3306,可以编辑用户目录下的 .my.cnf 文件进行修改
5.问了比较多计网的东西 三次握手流程 IOS五层都是哪五层 输入网址以后 用到哪些协议 我刚说到DNS 就给我打断了 问我DNS运输层协议是什么 我也没复习 唉
DNS可以用UDP也可以用TCP
6.进程通信方式 你用过哪些进程通信方式
1.管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
2.命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
3.消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
4.共享存储SharedMemory:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。
5.信号量Semaphore:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
6.套接字Socket:套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
7.信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
7.linux查看cpu的命令
除了常用的cd pwd cp mv rm touch mkdir这些 还有
-
find
:查找文件 -
cat:
查看文本文件内容 -
tail -10
: 查看文件的尾部的10行 -
head -20
:查看文件的头部20行 -
grep(global search regular expression)是一个强大的文本搜索工具。grep 使用正则表达式搜索文本,并把匹配的行打印出来。
在文件 myfile 中查找包含字符串 mystr的行
grep -n mystr myfile
显示 myfile 中第一个字符为字母的所有行
grep '^[a-zA-Z]' myfile
在文件 myfile 中查找首字符不是 # 的行(即过滤掉注释行)
grep -v '^#' myfile
列出/etc目录(包括子目录)下所有文件内容中包含字符串“root”的文件名
grep -lr root /etc/*
8.设计模式的原则
单一职责原则 一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
开闭原则 一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展
里氏代换原则 里氏代换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。
依赖倒置原则 高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象,其核心思想是:要面向接口编程,不要面向实现编程。
接口隔离原则 使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
迪米特法则 一个软件实体应当尽可能少地与其他实体发生相互作用。应该尽量减少对象之间的交互,如果两个对象之间不必彼此直接通信,那么这两个对象就不应当发生任何直接的相互作用,如果其中的一个对象需要调用另一个对象的某一个方法的话,可以通过第三者转发这个调用。简言之,就是通过引入一个合理的第三者来降低现有对象之间的耦合度。
总结一下 这场面试面的不好的原因就在于 问的太基础 而这些基础在最近面试中都被我忽视了
所以接下来
1.把http所有常见状态码记清楚
2.计网的东西再好好看看
3.进程通信方式了解
4.linux常用命令了解
5.项目中发布博客那个功能再去好好复习一下