Hero Image

11 每日一面 Ucloud rpc sql优化,如何解决高并发 explain 慢查询,建索引 什么方式实现缓存,什么情况下需要用到token,token失效怎么办等 主从复制 数据库四种隔离级别,分别举例子,每种在上一种的基础上加了什么锁(很简单不说了) Tcp,坚持计时器。keepalive计时器。 写了一个shell命令,列出重复数据。awk+unique+sort很简单也不说了。 网络协议 计算机网络五层协议:物理层、数据链路层、网络层、传输层、应用层 计算机网络的七层OSI协议: 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 路由器属于网络层 网卡与交换机数据数据链路层 TCP和UDP TCP 是面向连接的字节流服务,对系统资源要求比较多。程序结构复杂,保证数据的正确性和顺序性。 UDP是无连接的,面向数据报,对系统的资源要求比较少,程序结构简单,不能保证数据的正确性和顺序性 网站安全与防护 sql 注入 使用例如PDO的预处理,使用或者编写类似mysql_real_escape_string的方法对sql的特殊字符进行转义 **XSS(cross site script)**跨站脚本攻击 将外部脚本植入到页面中 **CSRF(cross-site request forgey)**跨站请求伪造 伪造受信任的用户信息来请求网站 算法相关 冒泡排序 选择排序 ​ 快速排序 快速排序思想:通过一趟排序将序列分成两部分,一部分所有数据比另一部分所有数据小,然后在这两个序列的内部再分别进行快速排序操作,直到最后形成一个有序序列 二分插入排序思想(之前的序列为有序):插入第i个元素时,对前面的0~i-1进行折半,当前元素与中间元素比较,如果小,前半部分再次折半,如果大,后半部分进行折半,直到最后left>right,然后把目标位置到i-1的所有元素整体后移,把当前元素放进去 基本查找算法: 顺序查找 二分法查找(折半查找):将序列分为两部分,找到序列的中间值,如果查找值大于中间值,继续对右半部分进行折半,如果查找值小于中间值,对左半部分进行折半,直到找到或front>end结束,时间复杂度O(log2n)以2为底n的对数 设计模式 MVC是一种设计框架,而不是设计模式,框架是比模式更高的概念 model负责数据逻辑 controller负责用户交互 view负责数据显示流程: 用户对控制器的某个方法发出请求,控制器调用相应的模型返回数据,然后将数据渲染到视图中返回给用户 单例模式i. 私有化构造方法和__clone方法ii. 提供公有的静态的方法返回实例iii. 提供私有的静态属性保存实例 简单工厂模式(重点在创建不同对象,作用就是用来创建对象的) - 例如一个计算器的加减乘除求余取整i. 定义抽象基类让子类分别继承并实现相应方法ii. 定义Factory工厂类里面提供静态方法用于根据不同的参数实例化相应的子类对象 策略模式(重点在于实例化不同类的解决策略不同,作用是根据不同的情况调用相应的策略或算法) - 例如qq普通用户 vip svip购买皮肤的优惠策略i. 定义抽象基类让子类分别继承并实现相应的方法ii. 根据不同的场景实例化相应的类,然后调用其中的方法获取结果 观察者模式 i. 需要有一个抽象的主题接口和一个抽象的观察者接口 ii. 实现一个主题,实现多个观察者