JAVA中级工程师面试题_第1页
JAVA中级工程师面试题_第2页
JAVA中级工程师面试题_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(一) 一条sql执行过长的时间,你如何优化,从哪些方面?答:1、查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余 或者合并成临时表(业务和算法的优化)2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度4、针对数量大的表进行历史表分离(如交易流水表)5、数据库主从分离,读写分离,降低读写针对同一表同时的压力,至于主从同步,MySQL有自带的 binlog实现主从同步(二)HTTP协议,GET和POST的区别答:1、GET提交,请求的数据会附在URL之后就

2、是把数据放置在HTTP协议头中),以?分割URL 和传输数据,多个参数用&连接。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如 果是中文/其他字符,则直接把字符串用BASE64加密,得出如:E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。POST提交:把提交的数据放置在是HTTP包的 包体中。上文示例中红色字体标明的就是实际的传输数据。因此,GET提交的数据会在地址栏中显 示出来,而POST提交,地址栏不会改变。2、传输数据的大小:首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没 有对URL长度进行限制。(三)说说

3、你知道的几个Java集合类答:list、set、queue、map 等(四)锁机制有什么用?简述悲观锁和乐观锁机制。答:有些业务逻辑在执行过程中要求对数据进行排他性的访问,于是需要通过一些机制保证在此过程 中数据被锁住不会被外界修改,这就是所谓的锁机制。悲观锁,顾名思义悲观的认为在数据处理过程中极有可能存在修改数据的并发事务(包括本系统的其 他事务或来自外部系统的事务),于是将处理的数据设置为锁定状态。悲观锁必须依赖数据库本身的 锁机制才能真正保证数据访问的排他性。乐观锁,顾名思义,对并发事务持乐观态度(认为对数据的 并发操作不会经常性的发生),通过更加宽松的锁机制来解决由于悲观锁排他性的数据

4、访问对系统性 能造成的严重影响。最常见的乐观锁是通过数据版本标识来实现的,读取数据时获得数据的版本号, 更新数据时将此版本号加1,然后和数据库表对应记录的当前版本号进行比较,如果提交的数据版本 号大于数据库中此记录的当前版本号则更新数据,否则认为是过期数据无法更新。提示:使用乐观锁会增加了一个版本字段,很明显这需要额外的空间来存储这个版本字段,浪费了空 间,但是乐观锁会让系统具有更好的并发性,这是对时间的节省。因此乐观锁也是典型的空间换时间 的策略。(五)数据库的事务处理是什么?有哪些特性?答:事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。事务性质:原子性、隔离性、一致性、持久性。l

5、原子性。即不可分割性,事务要么全部被执行,要么就全部不被执行。l 一致性或可串性。事务的执行使得数据库从一种正确状态转换成另一种正确状态l隔离性。在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务,l持久性。事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障,事务 的处理结果也会得到保存。(六)说一下你对存储过程的理解?答:存储过程:存储过程就是编译好了的一些sql语句。1存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。可保证数据的安全性和完整性。通过存储过程可以使没有权限的用户在控制之下间接地存取数据 库,从而保证数据的安全。通过存储过程可

6、以使相关的动作在一起发生,从而可以维护数据库的完整 性。可以降低网络的通信量。存储过程主要是在服务器上运行,减少对客户机的压力。:存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原 因:存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。(七)内联接,外联接区别?答:内连接是保证两个表中所有的行都要满足连接条件,而外连接则不然。在外连接中,某些不满足条件的列也会显示出来,也就是说,只限制其中一个表的行,而不限制另一 个表的行。分左连接、右连接、全连接三种。(八)什么是OOP?什么是类?请对比类和对象实例之间的关系。答:OOP是Ob

7、ject_oriented Programming面向对象编程)的缩写。这主要是为了区别于以前的面向 过程的程序设计!指的是用对象的观点来组织与构建系统,它综合了功能抽象和数据抽象,这样可以 减少数据之间的耦合性和代码的出错几率。使用面向对象编程技术可以使得软件开发者按照现实世界 里人们思考问题的模式编写代码,可以让软件开发者更好地利用代码直接表达现实中存在的对象,将问 题空间直接映射到解空间!类:即class在面向对象的程序设计中,专门用类”来表示用户定义的抽象数据类型(user_defined abstract typ)。它将具有相同状态、操作和访问机制的多个对象进行了抽象。类具有继承、数

8、据隐 藏和多态三种主要特性。利用类的这三种特性可以更好地表示现实世界中事物。类是同一类对象实例 的共性的抽象,对象是类的实例化。对象通常作为计算机模拟思维,表示真实世界的抽象,一个对象 就像一个软件模块,可以为用户提供一系列的服务一可以改变对象的状态、测试、传递消息等。类定 义了对象的实现细节或数据结构。类是静态的,对象是动态的,对象可以看作是运行中的类。类负责 产生对象,可以将类当成生产对象的工厂(Object fac tor).谈一下你对数据库视图的理解?答:视图是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的。视图本质上讲,就 是保存在数据库中的select查询。视图并不是数据库中存储的数据值的集合。对最终用户的好处- 结果更容易理解-获得数据更容易。对开发人员的好处-限制数据检索更容易-维护应用程序更方 便(十)谈一下你对MVC的理解?答:MVC设计模式(应用观察者模式的框架模式)M: Model(Business process layer)模型,操作数据的业务处理层,并独立于表现层 (Independent of presen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论