面试常见问题总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wang7807564/article/details/70649826

一.PHP

(1)isset 和 empty的区别:

若变量不存在则返回 FALSE 
若变量存在且其值为NULL,也返回 FALSE 
若变量存在且值不为NULL,则返回 TURE 

若变量不存在则返回 TRUE 
若变量存在且其值为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE 
若变量存在且值不为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 FALSE 

(2)有关数组的函数

Array 函数

array_combine()通过合并两个数组来创建一个新数组。

array_merge()     把一个或多个数组合并为一个数组

array_pop() 删除数组的最后一个元素(出栈)。

array_push() 将一个或多个元素插入数组的末尾(入栈)。

array_shift() 删除数组中首个元素,并返回被删除元素的值。

array_search() 搜索数组中给定的值并返回键名。

count() 返回数组中元素的数目。

sort() 对数组排序。

(3)Session原理

1)客户端与服务器建立联系 

 2)客户端将session id传递给服务器 

 3)服务器根据session id建立相应的session id文件(session id序列化保存,读取时反序列化) 

唯一标识的方法有两种:cookie或者通过GET方式指定

(4)PHP session 配置

session.cookie_path = / #cookie的有效路径 

session.save_path = "/var/lib/php/session" #session id存放路径

session.gc_maxlifetime =1440 #过期时间(默认24分钟,单位秒) 

(5)apache配置php

LoadModule php5_module D:/php/php5apache2_2.dll

PHPIniDir "D:/php"

二.Linux

(1)df:列出文件系统的整体磁盘使用量

(2)du:检查磁盘空间使用量

(3)在Linux下查看内存使用用free

(4)查看端口netstat -ant

(5)进程 ps,top

(6)iptables

iptables是控制Netfilter的工具,防火墙(Firewall),网址转换(NAT),数据包(package)记录,流量统计,这些功能是由Netfilter子系统所提供的。

service iptables status可以查看到iptables服务的当前状态

iptables -L 查看防火墙规则

iptables包含4个表,5个链:

raw>mangle>nat>filter

5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

80端口映射

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.138.21

在网关服务器进行透明代理

内网开放22端口

iptables -A INPUT -p tcp -s 192.168.138.0/24 --dport 22 -j ACCEPT

(7)DenyHosts用于防止SSH暴力破解,先检查hosts.deny,再检查hosts.allow,后者设定可越过前者限制。

三、计算机网络

(1).TCP三次握手

客户机请求,发送SYN,服务器回复 ACK+SYN,客户端发送ACK,连接建立,状态变为ESTABLISHED

ACK表确认,SYN同步标志,FIN表示断开连接

(2).四次挥手

请求断开方发送FIN请求断开,被断开方回复ACK,表示收到报文;

被断开方发送FIN表示可以断开,请求断开方回复ACK表示收到。

(3)TCP的状态

客户机:

SYN-SENT    ESTABLISHED   建立连接

FIN_WAIT   TIME_WAIT CLOSED 关闭连接

服务器:

CLOSED   LISTEN   SYN_RCVD   ESTABLISHED  建立连接

(4).子网掩码作用:

划分子网,将某个IP地址划分成网络地址和主机地址两部分,扩大网络容量,实现复用。

子网掩码进行二进制与运算,广播地址-1是最后一个可用IP

(5).TCP的可靠性主要体现

数据校验,面向连接的三次握手,超时重发,直到相应为止,失序数据进行重新排序。

(6).TCP与UDP区别

TCP与UDP基本区别
  1.基于连接与无连接
  2.TCP要求系统资源较多,UDP较少; 
  3.UDP程序结构较简单 
  4.流模式(TCP)与数据报模式(UDP); 
  5.TCP保证数据正确性,UDP可能丢包 
  6.TCP保证数据顺序,UDP不保证 

TCP的可靠性主要体现

四、数据库

(1).Mysql引擎

InnoDB:

尽管要比ISAM和 MyISAM引擎慢很多,但是InnoDB包括了对事务处理和外来键的支持

ISAM:

ISAM执行读取操作的速度很快,但是不支持容错机制和事务处理机制。

MyISAM:

很好的多并发处理,支持快速读取。

HEAP:

基于内存的存储,速度快,但不能够持久化。

(2)Mysql主从复制

创建两个 不同服务器上的数据库,A数据库(master)用于写数据,同时通过网络将写入日志发送给B数据库,B数据库(slave)实现与A数据库的同步。

同时,读取数据可以对B数据库进行读取。

这样做的好处:

增加冗余,提高异地容灾能力,同时,当前服务器基本都是读多写少,可以减缓服务器压力。

(3)mysql查看表结构

desc table_name

(4)索引

mysql的索引分为单列索引(主键索引,唯索引,普通索引)和组合索引.

1.使用Mysql全文检索fulltext的先决条件,表的类型必须是MyISAM(新版本的InnoDB也可以)
建立全文检索的字段类型必须是char,varchar,text

eg.SELECT * FROM articles WHERE MATCH (tags) AGAINST ('旅游' IN BOOLEAN MODE);

普通的:

SELECT * FROM 'user' WHERE 字段1 like "%关键字%";

五、数据结构

(1).解决哈希(HASH)冲突的主要方法

1、开放定址法

2.拉链法

(2).排序,搜索算法复杂度,稳定性。

六、操作系统

(1).进程状态:

就绪,执行,阻塞

有些还具有挂起状态。

展开阅读全文

没有更多推荐了,返回首页