PHP面试常见问题(个人整理)
目录
- 1、设计模式
- 1.1、PHP设计模式知道哪些
- 1.2、设计模式应用场景
- 2、Redis
- 2.1、数据类型有哪些?
- 2.2、Hash中,获取数据的时间复杂度?
- 2.3、怎么实现数据的递减
- 3、MySQL优化
- 4、三次握手四次挥手原理
- 4.1、三次握手
- 4.2、四次挥手
- 5、MySQL的锁机制
- 6、消息队列
- 7、Git分支管理
- 8、开发环境上修改数据库字段怎么同步到生产环境
- 9、创建一个多商户商城系统,要怎么架构系统
- 9.1、系统前台
- 9.2、系统后台
- 9.3、业务拆分
- 9.4、服务器集群与分布式
- 10、浏览器输入‘www.baidu.com’展示出页面,都用了那些技术原理
- 11、常见的HTML攻击类型
- 12、事务是怎么保持原子性的
- 13、Redis是怎么实现高并发的
- 14、Nginx的缺点,Nginx与Apache的区别
- 15、面向对象的特点
- 16、商城的商品怎么保证不被多买
- 17、怎么实现秒杀功能
- 18、socket是怎么保证数据不会丢包的
- 19、正向代理反向代理
- 正向代理:
- 反向代理
- 总结
- 20、swool
- 21、消息队列的两种模式
- 21.1、点对点模式
- 21.2、发布/订阅模式
- 22、Nginx优化
- 23、索引的优化
- 1、索引失效
- 2、永远小表驱动大表
- 3、order by排序
- 4、注意的点
- 5、优化
- 24、http常见消息头部的含义
- 1、请求头的含义
- 2、响应头的含义
- 25、swoole的websocket的热更新问题
- 26、死锁是怎么解决的
- 1、产生原因
- 2、处理思路
- 3、避免死锁
- 27、两台服务器一台挂掉了,Nginx怎么保证请求不会去到挂掉的服务器
- 28、什么是面向对象
- 1、面向过程
- 2、面向对象
- 29、大文件是怎么读取的
- 30、fpm是用来干什么的
- 31、print、echo、print_r 有什么区别?
- 32、什么叫视图?游标是什么?
- 33、索引的作用?和它的优点缺点是什么?
- 34、对于大流量的网站,采用什么样的方法来解决各个页面访问量统计问题?
- 35、什么是构造函数,什么是析构函数,作用是什么?
- 36、常用的魔术方法有哪些?
- 37、ThinkPHP如何防止SQL注入?
- 38、smarty配置主要有哪几项?
- 39、ThinkPHP常用配置
- 40、laravel常用配置
1、设计模式
PHP常用设计模式
1.1、PHP设计模式知道哪些
答:共23种设计模式,可分为三大类
创建型模式:常用的有 单例、工厂、建造者、原型等
结构型模式:适配器、装饰器、代理、外观、组合等
行为型模式:策略、观察者、解释器、命令、备忘录等
1.2、设计模式应用场景
- 单例模式:数据库连接
- 工厂模式:解耦,(流水线工作)
- 外观模式和装饰器模式可以用来封装接口
- 命令模式可以用来传递
- 迭代器模式可以用来遍历对象
- 观察者模式用来监听状态变化
- 模板模式用来处理相同的操作步骤
- 策略模式用来进行策略选择
- 代理模式用来附加功能,属性或隐蔽
2、Redis
2.1、数据类型有哪些?
答:
string、list、hash、set、zset
2.2、Hash中,获取数据的时间复杂度?
2.3、怎么实现数据的递减
decr key
3、MySQL优化
MySQL的优化主要分为四大方面:
- 设计:存储引擎、字段类型、范式与逆范式
- 功能:索引、缓存、分区分表
- 架构:主从复制、读写分离、负载均衡
- SQL优化:测试、经验
4、三次握手四次挥手原理
4.1、三次握手
- 客户端产生一个初始序列号 SEQ 作为 SYN,发送给服务端,客户端进入请求连接状态,等待服务端确认
- 服务端收到后将客户端的 seq加1作为确认号 ack 与自己的syn一起返回给客户端,进入收到请求状态
- 客户端为了确认服务端的syn,将服务端 seq+1作为ack返回给服务端,然后两者进入已连接状态
4.2、四次挥手
- 客户端在连接状态时 给服务端发送 FIN 个seq,进入终止等待状态
- 服务端收到后 将客户端的seq+1作为ack返回给客户端 服务端进入关闭等待状态
- 服务端向客户端发送 FIN与自己的seq, 进入最后确认状态
- 客户端收到FIN后,进入时间等待状态,接着将服务端的seq+1作为ack发送给服务端 ,服务端进入关闭状态
5、MySQL的锁机制
分为共享锁与排他锁:
- 共享锁为S锁:lock in share mode
- 排他锁为X锁:for update
6、消息队列
kafka
分布式消息队列:具有高吞吐量、低延迟、持久性、可靠性、容错性、可拓展性等特点
可以用来日志收集、消息系统、用户活动追踪、运营指标等
7、Git分支管理
分两个分支
master 主分支,项目随时可以发布
develop:开发分支,平行于master分支
开发时创建一个自己本地分支,完成功能后合并到develop分支,组长进行代码review与测试,通过后组长合并到master分支
8、开发环境上修改数据库字段怎么同步到生产环境
可以用工具实现
laravel框架可以用 add_username_to_users_table 来实现
9、创建一个多商户商城系统,要怎么架构系统
9.1、系统前台
主要功能模块包括:商品类型、商品检索、首页、频道页、单品页、营销专题、订单支付、购物流程、客户中心、帮助中心
9.2、系统后台
商品管理、类目管理、营销案管理、订单管理、供货商管理、配送商管理、会员管理、仓储管理、对账管理、互动管理、权限管理等
9.3、业务拆分
可以划分为:产品子系统、购物子系统、支付子系统、评论子系统、客服子系统、接口子系统(如短信等第三方外部系统)
又可以分为核心系统和非核心系统
- 核心系统:产品子系统、购物子系统、支付子系统
- 非核心系统:评论、客服、接口
每个子系统可以由单独的团队去负责,并且单独部署在服务器上
9.4、服务器集群与分布式
每个子系统可以分布在不同的服务器上,也可以同一个子系统多个服务器(也就是集群),可以提高业务处理的效率
数据库可使用主从复制,读写分离
缓存使用 Redis集群
再加上负载均衡
10、浏览器输入‘www.baidu.com’展示出页面,都用了那些技术原理
输入域名
向DNS服务器查询网站IP地址
DNS服务器返回网站IP地址(域名解析)
浏览器得到地址后,把输入的域名转化为http服务请求
服务器收到请求后,返回网页信息
展示成可以查看的网页形式
域名解析
发起连接,构造请求(三次握手)
数据转发
11、常见的HTML攻击类型
XSS(跨站脚本攻击)、CSRF(跨站请求伪造)、SQL注入、DDOS攻击、命令行注入、流量劫持
12、事务是怎么保持原子性的
一个事务要么全部提交成功,要么全部提交失败。
要保持原子性就要提到一致性,数据在执行前后是一致的。
要一致就需要说道它的隔离性,
13、Redis是怎么实现高并发的
redis是基于内存的操作的,单线程的,避免了不必要的上下文切换
14、Nginx的缺点,Nginx与Apache的区别
缺点:
- nginx仅能支持http、HTTPS、和email协议,适用范围小一点
- 对后端服务器的健康检查只能通过端口来检测,不支持通过URL来检测,不支持session的直接保持,但能通过ip_hash来解决
Nginx相对Apache的优点:
- 轻量级、同样起web服务,比Apache占用更少的内存及资源
- 抗并发、Nginx处理请求是异步非阻塞的,而Apache则是阻塞型的,在高并发下Nginx能保持低资源低消耗高性能
- 编写模块相对简单
- 社区活跃
- 本身就是一个反向代理服务器
- 支持七层负载均衡
- 适合做静态,简单、效率高
Apache相对Nginx的优点:
- rewrite(重写),比Nginx的重写强大
- 模块多
- 少bug
- 超稳定
- 适合做动态,稳定功能强
15、面向对象的特点
抽象、封装、继承、多态
16、商城的商品怎么保证不被多买
使用redis的队列来实现,将要促销的商品数量以队列的方式存入redis中,每当用户抢到一件促销商品则从队列中删除一个数据,确保商品不会被多买。
17、怎么实现秒杀功能
redis消息队列 list数据类型, rpush lpop
18、socket是怎么保证数据不会丢包的
心跳机制与重连机制
19、正向代理反向代理
代理:代理其实是一个中介,A和B本来可以直连,中间插入一个C,C就是中介
正向代理:
代理访问外部资源
用途:
- 访问原来无法访问的资源,如谷歌
- 可以做缓存,加速访问资源
- 对客户端访问授权,上网进行认证
- 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理
反向代理实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器
作用:
- 保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,web服务器是内网
- 负载均衡,通过反向代理服务器来优化网站的负载
总结
正向代理即是客户端代理,代理客户端,服务端不知道实际发起请求的客户端(买票的黄牛)
反向代理即是服务端代理,代理服务端,客户端不知道实际提供服务的服务端(租房的代理)
20、swool
swoole是一个协程高性能的网络通信引擎
解决了php缺失的功能,比如异步通信、持久连接等
进程:资源分配的最小单位,一个程序就是一个进程
线程:cpu调度执行的最小单位,多个线程可以并发执行,共享进程的所有资源
协程:比线程更轻量级,是由程序所控制的,具有极高的执行效率,没有线程切换的开销,不需要多线程的锁机制
21、消息队列的两种模式
消息队列包括两种模式,点对点模式,和发布/订阅模式
21.1、点对点模式
队列、不可重复消费
点对点模式下包括三个角色:
- 消息队列
- 发送者(生产者)
- 接收者(消费者)
消息发送者生产消息发送到队列中,然后消息接收者从队列中取出并消费消息。消息被消费后,队列中不在有存储,所以消息接收者不可能消费到已被消费的消息。
点对点模式的特点
:
- 每一条消息只有一个消费者(即一旦被消费,消息就不存在消息队列中)
- 发送者和接收者间没有依赖性,生产者发送消息后,不管有没有消费者在运行,都不会影响到发送者下次发送消息;
- 消费者在成功接收消息之后需向队列应答成功,以便消息队列删除当前接收的消息;
队列实现了一个可靠的负载均衡
21.2、发布/订阅模式
主题、可重复消费
发布/订阅模式下包括三个角色:
- 角色主题(Topic)
- 发布者(Publisher)
- 订阅者(Subscriber)
发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。
发布/订阅模式特点:
- 每个消息可以有多个订阅者(消费者)
- 发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息
- 为了消费消息,订阅者需要提前订阅该角色主题,并保持在线运行
22、Nginx优化
- 隐藏版本信息
- 更改nginx服务的默认用户
- 降权启动nginx
- 优化进程个数
- 优化绑定不同的进程到不同的cpu上
- 事件处理模型优化
- 调整单个进程允许的客户端最大连接数
- 配置进程最大打开文件数
- 开启高效传输模式
- pastCGI相关参数调优
- 优化linux内核参数(最大文件数量)
- 增加数据包头部缓存大小
- 对页面进行压缩处理
- 服务器内存缓存
- 浏览器本地缓存静态数据
- 关闭access.log日志打印
23、索引的优化
1、索引失效
- 最好全值匹配
- 最左前缀法则:如果索引了多列,查询从索引的最左前列开始,且不能跳过索引中间列
- 不在索引列上做任何操作(计算、函数、类型转换),会导致索引失效而转向全表扫描
- 存储引擎不能使用索引中范围条件右边的列,即范围之后全失效
- 尽量使用覆盖索引,只访问索引的查询(索引列和查询列一致),减少select *
- MySQL在使用不等于的时候无法使用索引会导致全表扫描
- is null, is not null也无法使用索引
- like 以通配符开团(’ %aa ')索引会失效,变成全表扫描
- 字符串不加单引号,索引失效
- 少用 or,用它来连接时会索引失效
2、永远小表驱动大表
in 和 exists 的选择
3、order by排序
order by 语句使用索引最左前列
4、注意的点
- 当访问数据占表数据 20%左右的时候,不走索引
- 查找大量数据列而不能使用到覆盖索引
- 表 数据量过少,也会不走索引
5、优化
使用index hint优化(确定非聚集索引能带来更好性能)
- force index(index_name):强制走某个索引
- use index(index_name):告诉优化器可以选择使用索引,但实际上优化器会自己判断进行选择,不一定会使用到
- ignore index(index_name):告诉优化器在选择索引时忽略掉该索引
24、http常见消息头部的含义
1、请求头的含义
请求头一般都是客户端通过这个头,告诉服务器的消息:
- Accept:客户端支持的数据类型
- Accept-Charset:客户端采用的编码
- Accept-Encoding:客户机支持的数据压缩格式
- Accept-Language:客户机支持的语言环境
- Host:想访问的主机名
- If-Modified-Since:资源的缓存时间
- Referer:它是从哪个资源来访问服务器的
- User-Agent:客户机的软件环境
- Cookie:可以向服务器带数据
- Connection:请求完后是关闭还是保持链接
- Date:客户机当前请求时间
2、响应头的含义
响应头一般都是服务器通过这个头,告诉浏览器的消息:
- Location:这个头配合302状态码使用,告诉用户端找谁
- Server:告诉浏览器服务器的类型
- Content-Encoding:告诉浏览器数据采用的压缩格式
- Content-Length:告诉浏览器回送数据的长度
- Content-Language:告诉服务器的语言环境
- Content-Type:回送数据的类型
- Conent-Disposition:告诉浏览器以下载的方式打开数据
- Last-Modified:告诉浏览器当前资源的缓存时间
- Refresh:告诉浏览器隔多长时间刷新一次
- Transfer-Encoding:告诉浏览器数据的传送格式
- ETag:与缓存相关的头
- Expires:告诉浏览器把回送的数据缓存多长时间。-1或0不缓存
- Cache-Control和Pragma:也可以控制浏览器不缓存数据
- Connection:响应完是保持链接还是关闭链接
- Date:返回响应的时间
25、swoole的websocket的热更新问题
Server->reload
swoole底层提供了柔性终止/重启的机制。
26、死锁是怎么解决的
1、产生原因
是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去,此时称系统处于死锁状态或系统产生了死锁,这些永远互相等待的进程称为死锁进程。
表级锁不会产生死锁,所以死锁主要还是针对于常用的InnoDB。
形成死锁的四个必要条件:
- 互斥条件:一个资源每次只能被一个进程使用
- 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
- 不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺
- 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系
2、处理思路
处理死锁的思路如下:
- 预防死锁:破坏四个必要条件中的一个或多个来预防死锁
- 避免死锁:在资源动态分配的过程中,用某种方式防止系统进入不安全的状态
- 检测死锁:运行时产生死锁,及时发现死锁,将程序解脱出来
- 解除死锁:发生死锁后,撤销进程,回收资源,分配给正在阻塞状态的进程
3、避免死锁
避免死锁:
- 加锁顺序:线程按照一定的顺序加锁
- 加锁时限:线程尝试获取锁的时候加上一定的时限,超过时限则放弃对该锁的请求,并释放自己占有的锁
- 死锁检测
27、两台服务器一台挂掉了,Nginx怎么保证请求不会去到挂掉的服务器
在配置中增加 proxy_connect_timeout (代理连接超时)配置
默认时间为60秒,修改为1秒。
server {listen 80;server_name www.test.comlocation / {proxy_pass http://www.test.com; proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 1;proxy_read_timeout 1; // 也可不设置proxy_send_timoute 1; // 也可不设置}...
28、什么是面向对象
面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤和行为。
将繁琐的步骤,通过行为、功能,模块化,这就是面向对象。
1、面向过程
- 优点:性能上它是优于面向对象的,因为类在调用的时候需要实例化,开销过大
- 缺点:不易维护、复用、扩展
- 用途:单片机、嵌入式开发、Linux/Unix等对性能要求较高的地方
2、面向对象
优点:易维护、易复用、易扩展。由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活,更加易于维护
缺点:性能比面向对象低
类是一组相关的属性和行为的集合。是一个抽象的概念
对象是该类事务的具体表现形式。具体存在的个体。
29、大文件是怎么读取的
- 内存映射
- 使用linux命令 tail
- 使用fseek函数
- sql库函数
30、fpm是用来干什么的
nginx本身不能处理php,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返给客户端。
nginx一般是把请求发送 FastCGI管理进程处理,FastCGI管理进程选择CGI子进程处理结果并返回给nginx。
PHP-FPM是一个PHP FastCGI管理器,旨在将FastCGI进程管理整合进PHP包中。
PHP-FPM提供了更好的php进程管理方式,可以有效控制内存和进程,可以平滑重载php配置。
31、print、echo、print_r 有什么区别?
- echo可以输出一个或多个字符串,多个以逗号隔开就行
- print也可以输出一个或多个字符串,多个要用连接符
- print_r 可以打印数组;对象
解析速度:echo>print>print_r
32、什么叫视图?游标是什么?
- 视图:是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增、改、查操作,视图通常是有一个表或多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。
- 游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。
33、索引的作用?和它的优点缺点是什么?
索引就是一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。就类似目录。
索引可以是唯一的,创建索引允许指定单个列或多个列。
缺点:它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
34、对于大流量的网站,采用什么样的方法来解决各个页面访问量统计问题?
- 首先,确认服务器硬件是否足够支持当前的流量
- 其次,优化数据库访问
- 第三,禁止外部的盗链
- 第四,控制大文件的下载
- 第五。使用不同主机分流主要流量
- 最后,使用流量分析统计软件。
35、什么是构造函数,什么是析构函数,作用是什么?
- 构造函数(方法):是对象创建完成后第一个被对象自动调用的方法。它存在于每个声明类中,是一个特殊的成员方法。作用是执行一些初始化的任务。 PHP中使用 _construct()声明构造方法,并且只能声明一个。
- 析构函数(方法):作用和构造函数相反,是对象被销毁之前最后一个被对象自动调用的方法。 是 PHP 5 中新添加的内容,作用是用于实现在销毁一个对象之前执行一些特定的操作,诸如关闭文件和释放内存等。
36、常用的魔术方法有哪些?
- __construct:构造函数,每次创建新对象时先调用此方法
- __desstruct:析构函数,销毁对象时调用的
- __call():在对象中调用不可访问方法时, 会被调用
- __callStatic():在静态文件上下文中调用一个不可访问方法时,会被调用
- __set():在给不可访问的属性赋值时调用
- __get():读取不可访问的属性值时调用
- __isset():当对不可访问的私有属性使用 isset 或 empty时调用
- __unset():当对不可访问的私有属性使用unset时,自动调用
- __toString():当一个类的实例对象,被当成一个字符串输出时调用
37、ThinkPHP如何防止SQL注入?
- 查询条件尽量使用数组方式
- 如果必须使用字符串查询条件,使用预处理机制
- 开启数据字段类型验证,可以对数值类型做强制转换
- 使用自动验证和自动完成机制
- 对所有公共的操作方法做必要的安全检查,防止用户通过url直接调用
- 不要缓存需要用户认证的页面
- 对于用户的上传文件,做必要的检查,例如上传路径和非法格式
- 富文本过滤
- 对项目进行充分的测试,不要生成业务逻辑的安全隐患
- 做好服务器的安全防护
38、smarty配置主要有哪几项?
- 模板文件目录
- 编译目录
- 配置文件目录
- 缓存目录
- 开启缓存
- 设置缓存有效期
<?php
iclude "./libs/Smarty.class.php";$tpl = new Smarty();// 模板文件目录
$tpl -> temlate_dir = 'templates/';
// 编译目录
$tpl -> compile_dir = 'templates_c/';
// 配置文件目录
$tpl -> config_dr = 'config/';
// 缓存目录
$tpl -> cache_dir = 'cache/';
// 开启缓存
$tpl -> caching = 1;
// 设置缓存有效期
$tpl -> cache_lifetime = 60 * 60 * 24;
$tpl -> left_delimiter = '<{';
$tpl -> right_delimiter = '}>';?>
39、ThinkPHP常用配置
- 调度器配置
- URL模式配置
- 是否检查文件大小写
- 是否开启插件
- 是否开启session
- 日志设置
- 错误设置
- 系统变量设置
- 模块和操作设置
- 模板设置
- 分页设置
- 模型设置
- 静态缓存设置
- 语言时区设置
- 数据库设置
- 数据库缓存设置
- 运行时间设置
- 模板引擎设置
- cookie设置
- 数据格式设置
40、laravel常用配置
- 开发者模式是否开启
- 加密字符串设置
- MySQL设置
- 主机名配置
PHP面试常见问题(个人整理)相关推荐
- 江苏事业单位计算机类结构化面试,2017江苏事业单位结构化面试常见问题及应对方法...
原标题:2017江苏事业单位结构化面试常见问题及应对方法 在事业单位面试中,大多数时候都是采取的结构化面试,而结构化面试是对一个考生综合能力的全方位考察,在面试过程中,考生会出现一系列问题,那么这些常 ...
- 中职计算机平面设计教师考试面试,中职教师面试常见问题
中职教师面试常见问题 在中职教师面试中如何更好的突出自己呢?中职教师面试会问哪些问题?以下是小编为你整理的中职教师面试常见问题,希望能帮到你. 中职教师面试常见问题 1.学生记忆有什么特点?学科教学如 ...
- 数据库面试常见问题总结
数据库面试常见问题总结 写在前面 本文记录了一些数据库面试常见问题,本意用于考研复试,以下面试题为网上整理的问题以及自己加入的一些问题,答案仅供参考! Q:事务四大特性(ACID) A: 原子性:事务 ...
- 研究生计算机专业知识复试面试常见问题
研究生计算机专业复试面试常见问题 操作系统 1. 进程和线程区别和联系 2. 常见的调度算法 3. 死锁的产生和解决 4. 虚拟内存,页面置换算法 5. 磁盘调度 数据结构 1. 常见的排序算法过程和 ...
- 【基础概念】 Redis简介和面试常见问题
Redis简介和面试常见问题 简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起 ...
- html手机端适配怎么调试,html5面试常见问题及答案:移动端布局与适配篇
原标题:html5面试常见问题及答案:移动端布局与适配篇 1. 移动布局自适应不同屏幕的几种方式 (1)响应式布局 (2)100%布局(弹性布局) (3)等比缩放布局(rem) 2. iscroll安 ...
- python面试常见问题-Python面试常见问题,涉及Python各个方面
原标题:Python面试常见问题,涉及Python各个方面 爬虫面试常见问题 一.项目问题: 1.你写爬虫的时候都遇到过什么反爬虫措施,你是怎样解决的 2.用的什么框架.为什么选择这个框架 二.框架问 ...
- 前端面试知识点目录整理
前端面试知识点目录整理 基本功考察 1.关于Html 1.html语义化标签的理解.结构化的理解:能否写出简洁的html结构:SEO优化. 2.h5中新增的属性,如自定义属性data.类名classN ...
- 【面试】Java面试常见问题汇总(不含答案)、面试指导学习笔记
面试常见问题角度 String是基本数据类型吗? int和Integer有什么区别? HashMap和HashTable的区别,及其实现原理. ArrayList/HashMap的源码.如何实现源码 ...
最新文章
- php mysql insert数组_PHP – MySQL编写的INSERT数组语句
- 在项目中添加引用的意思
- 通过Corosync实现Mysql高可用,以及LVS+ldirectord高可用并状态检测
- 132.非对称加密?数据安全的特征?
- mysql 列级权限授予用户_mysql 用户及权限管理 小结
- LeetCode283——Move Zeroes(将0移动到数组最后面)
- C++基础12-类和对象之操作符重载-string练习
- 3G了 由PC-手机 我们想了些什么呢
- linux 渲染程序图层管理,Linux驱动多图层开发--lcdc/framebuffer的注册(RK平台)
- 服务器增加驱动器,向存储空间直通添加服务器或驱动器
- php 输出数据库取出来的html源码 正常显示解决,替换显示数据库中的html代码
- 实现MySQL导入sql脚本
- spring StopWatch用法
- 信捷PLC编程工具软件是款编程工具
- IOS逆向需用到的工具汇总
- typecho图片插件_Typecho 文章缩略图插件
- 最大熵马尔可夫模型MEMM
- 如何编写一份合格的架构设计文档
- win10隐藏网络计算机,连接隐藏网络,教你win10系统电脑连接隐藏网络的方法
- whai is gradient vanishing and exploding ?