真实面试经历(3)

问题1:SpringMVC怎么将数据传输到后台

1. 基本数据类型

表单中input的name值和Controller的参数变量名保持一致,就能完成数据绑定。

如果Controller方法参数中定义的是基本数据类型,但是从页面提交过来的数据为null或者”"的话,会出现数据转换的异常。

2. 包装类型

和基本数据类型基本一样,不同之处在于,表单传递过来的数据可以为null或”",因为包装数据类型可以定义null。

3. 自定义对象类型

非常简单,只需将对象的属性名和input的name值一一匹配即可。

4. 自定义复合对象类型

详情查看链接:SpringMVC将数据传输到后台的方式详解

问题2:MySql索引

数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树

在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。

借一张图表示:

@侵删

MySql索引分为:单列索引和组合索引。

单列索引:

即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。

包括(主键索引,唯一索引,普通索引)

组合索引:

即一个索引包含多个列。

创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。

上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

建立索引会占用磁盘空间的索引文件。

普通索引:

这是最基本的索引,它没有任何限制。

唯一索引:

它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

问题3:事务解决了什么问题

事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。

事务的提出主要是为了解决并发情况下保持数据一致性的问题。

事务的四个属性:

原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。

一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。

隔离性:

由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为隔离性。

持久性:

事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。

问题4:提高MySql查询效率

1.优化MySQL查询缓存

在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的。

2.建立适当的索引

3.SQL语句优化

sql语句优化详细

4.学会使用EXPLAIN

EXPLAIN :模拟Mysql优化器是如何执行SQL查询语句的,从而知道Mysql是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。

5.拒绝使用默认设置

6.将数据库保存在内存中

问题5:tomcat配置及优化

tomcat可配置:

1.配置端口

2.配置虚拟目录

3.配置连接数

web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

4.配置内存大小

5.安全配置

    (1)访问日志设置

    (2)修改用户名、密码

    (3)屏蔽后台管理入口

    (4)配置403,404,500错误页面

6.配置Log4j日志记录

7.Tomcat5乱码问题

Tomcat5跟Tomcat4对参数处理是不一样的,在Tomcat4中get与post的编码是一样的,所以只要在过滤器中通过request.setCharacterEncoding()设定一次就可以解决get与set的问题。然而,在Tomcat5中,get与post的处理是分开的,对get请求使用URIEncoding进行处理,对post使用request.setCharacterEncoding()处理。Tomcat5中,在server.xml的Connector元素增加了以下配置参数:
 URIEncoding:用来设定通过URI传递的

tomcat优化:

1:提升硬件性能

2:优化连接配置

因版本不同,以tomcat7的参数配置为例,需要修改的是conf/server.xml文件,修改连接数,关闭客户端dns查询。

3:采用集群

4:利用缓存和压缩

对于静态页面最好是能够缓存起来,这样就不必每次从磁盘上读。这里我们采用了Nginx作为缓存服务器,将图片、css、js文件都进行了缓存,有效的减少了后端tomcat的访问。

5:有富余物理内存的情况,加大tomcat使用的jvm的内存

经典问题:

tomcat设置https端口时,8443和443区别:
1. 8443端口在访问时需要加端口号,相当于http的8080,不可通过域名直接访问,需要加上端口号;https://yuming.com:8443。

2. 443端口在访问时不需要加端口号,相当于http的80,可通过域名直接访问;例:https://yuming.com。

*问:https使用域名访问网站,而不显示端口号?

答:将端口号设置为443,即可通过域名直接访问网站

详情点击链接:tomcat配置及优化

猜你喜欢

转载自blog.csdn.net/zaimeiyeshicengjing/article/details/81570049