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进行分页
浙公网安备 33010602011771号