2020/06/01-面试

1、Mysql优化

1.选取合适的字段属性

2.用连接(JOIN)代替子查询

3.使用联合(UNION)代替手动创建的临时表

4.使用外键

5.使用索引

6.优化查询语句

2、AJAX

1.介绍

AJAX是创建交互式网页应用的网页开发技术

2.工作原理

AJAX在用户和服务器之间增加了一个中间层(AJAX引擎),使用户的操作和服务器的响应异步化,不是所有用户的请求都发送给服务器,一些数据验证和数据处理AJAX引擎可以自己操作,只有确定需要从服务器提取新数据时,在由AJAX引擎向服务器提交请求

3.AJAX同步、异步

同步请求:浏览器访问服务器请求,用户看的到页面刷新,重新发送请求,请求完毕,页面刷新,用户看到新内容

异步请求:浏览器访问服务器请求,用户看不到页面刷新,正常操作,浏览器后端进行请求,请求完毕,页面不刷新,用户看到新内容

4.AJAX优、缺点

优点:页面不刷新,在页面内与服务器进行通信,用户体验好

   使用异步的方式与服务器通信,响应速度快,不打断用户操作

   可以把由服务器负担的工作转接给客户端,减轻服务器负担,

   基于标准化并被广泛支持的技术,不需要下载插件或小程序

缺点:对浏览器后退机制进行破坏,没有办法和JS进行很好的合作,用户往往希望通过后退按钮来取消上一步操作,这和AJAX框架要求的快速开发是相悖的

   安全问题,AJAX技术就如同对企业数据建立了直接通道,使得开发者不经意暴露了更多服务器逻辑和数据

   对搜索引擎的支持比较弱

3、国产数据库

1.南大通用

2.武汉达梦

3.人大金仓

4.神州通用

语法和mysql、oracle大同小异

4、SVN和Git的区别

1.Git是分布式的,SVN不是

2.Git把内容按元数据方式存储,SVN是按文件进行存储

3.Git和SVN的分支不同

4.Git没有全局版本号,SVN有全局版本号

5.Git的完整性要优于SVN

5、Tomcat调优

1.内存调优(修改内存等JVM相关配置)

2.并发调优(调整Connector(连接器)的配置)

3.开启线程池

4.缓存调优

6、Hibernate和Mybatis的区别

1.最大的区别

针对简单逻辑,Hibernate和mybatis都有响应的代码生成工具,可以生成简单的DAO层方法

针对高级逻辑,mybatis需要手动书写SQL语句和ResultMap,Hibernate具有良好的映射机制,开发者无需关心SQL的生成和映射,更专注于流程

2.开发难度的区别

hibernate的开发难度大于mybatis,hibernate相较于mybatis,比较复杂,学习周期比较长

mybatis比较简单,并且mybatis主要依赖于SQL的书写,开发者更加熟悉

3.SQL书写比较

hibernate也可以自己书写SQL,但是就破坏了hibernate开发的简洁性,hibernate具有自己的日志统计

mybatis的SQL是自己书写的,可以指定字段进行查询,mybatis没有日志统计,需要借助log4j来记录

4.数据库拓展性

hibernate与数据库的关联在XML中,所以对具体用什么数据库不是很关心

mybatis由于所有的SQL都是依赖数据库书写,所有迁移性,扩展性比较差

5.缓存机制

hibernate的二级缓存是在sessionfactory中生成配置文件,进行详细配置,然后在具体的表对象映射中具体配置是哪种缓存

mybatis的二级缓存配置是在具体表对象映射中配置,针对不同的表可以使用不同的缓存机制

7、SpringBoot和SpringMVC的区别

SpringMVC是Spring的一个模式,是一个Web框架,提供了一个轻度耦合的方式开发Web应用

SpringBoot是习惯优于配置,降低了项目搭建的难度

SpringMVC需要使用到Tomcat服务器,SpringBoot则内嵌了Tomcat服务器

8、SVN发生版本冲突,解决办法

放弃修改的内容,进行revert操作,回到提交前的版本,然后在update更新为最新的版本,在进行修改提交

9、Mysql和Oracle的语法区别

1.模糊查询

oracle:where a like '参数'

mysql:where a like concat '参数'

2.删除

oracle:delete 表名 where id = '1'

mysql:delete from 表明 where id = '1'

3.时间函数

oracle:to_date()

mysql:str_to_date()

4.排序问题(null)

oracle:可以使用nulls first或者nulls last将null值排到最前或者最后

mysql:没有提供类似的函数,可以说使用mysql的if或者ifnull函数,如果为空,返回1,否则返回0

5.分页问题

oracle:使用嵌套查询进行分页

mysql:使用limit进行分页

posted @ 2020-06-02 17:59  Jn2booo  阅读(82)  评论(0)    收藏  举报