java面试常见难点概念总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面试问题总结

1、面向对象和面向过程的区别

面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术[1]发展到一定阶段后的产物。面向对象是以功能来划分问题,而不是步骤。

面向过程是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

例子:围棋

面向对象:1.黑白双方,这两个的行为是一模一样的2.棋盘系统,负责绘制画面3.规则系统,负责判断输赢

面向过程:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。

2、mysql和oracle的区别

mysql主要应用到中小型系统中,oracle一般应用在大型系统

增长类型的区别:mysql有increment自增长方式,而oracle利用sequence实现增长

mysql可以使用limit限制分页处理 eg:select * from table_name

ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个rownum字段标明它的位置,并且只能用rownum<100,不能用rownum>80。以下是经过分析后较好的两种ORACLE 翻页SQL语句(ID是唯一关键字的字段名):

Select id from table_name where id in (select id from (select rownum as numrow,id from table_name where 条件1 order by 条件2) where numrow >80 and numrow <100) order by 条件3;

数据类型的区别:比如oracle的varchar2,而mysql没有,mysql有int而oracle 没有

3、Struts 2 和Servlet和JSP

(1)Struts2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了

合并的全新的Struts 2框架。它以webwork为核心采用拦截器机制对用户请求进

行处理,也是一个按照MVC设计模式设计的一个web层框架,也是一个很大的

Servlet。他也可以有多个配置文件,各自的模块执行各自的功能

Struts2处理过程:请求交给action之前会将请求数据封装成一个formbeaan对象,然后对formbena调用validate方法进行校验,通过校验的然后交给action的

execute方法去处理返回一个响应的结果,没有通过校验的则返回一个错误页面,

一般使用input指定。

(3)Servlet是一种java服务器端的应用程序具有独立于平台和协议的特性,可以生成

动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器

响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务

器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

Servlet生命周期:加载、实例化(一般是servlet容器来完成)、初始化(执行init 方法)、运行service方法(根据请求方式的不同分为doGet和doPost)处理请求、服务终止执行destroy销毁。

Servlet执行过程:当用户发送一个请求到某个Servlet的时候,Servlet容器会创建一个ServletRequst和ServletResponse对象。在ServletRequst对象中封装了用户的请求信息,然后Servlet容器把ServletRequst和ServletResponse对象,传给用户所请求的Servlet,Servlet把处理好的结果写在ServletResponse中,然后Servlet容器把响应结果传给用户。

Servlet与JSP有什么区别?JSP是一种java动态页面技术,由html和java代码和tag组成。而jsp编译以后实际上也是一个servlet,JSP擅长页面表现,而Servlet擅长处理逻辑用来控制业务流程,在struts2的MVC设计模式中中servlet 充当控制层而JSP充当表现层。‘

4、Hibernate和JDBC

概念比较 : Hibernate是对JDBC的轻量级封装,是将对象持久化的框架,Hibernate 可以用在任何JDBC可以使用的场合,Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系。而JDBC是一个可以执行SQL语句的JAVA程序。由一组java类和接口组成。

性能比较:

1、内存消耗:采用JDBC的架构无疑是最省内存的,Hibernate的架构次之

2、运行效率:如果JDBC的代码写的非常优化,那么JDBC架构运行效率最高,但

是实际项目中,这一点几乎做不到,这需要程序员非常精通JDBC,运用Batch语句,调整PreapredStatement的Batch Size和Fetch Size等参数,以及在必要的情况下采用结果集cache等等。而一般情况下程序员是做不到这一点的。因此Hibernate 架构表现出最快的运行效率。

3、开发效率:小项目中JDBC相率较高,Hibernate次之。但在一般的大型项目中

Hibernate的效率大的惊人。

相同点:

◆两者都是JAVA的数据库操作中间件。

◆两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭。

◆两者都可以对数据库的更新操作进行显式的事务处理。

不同点:

◆JDBC使用标准SQL语言,而Hibernate使用HQL面向对象查询语言

◆JDBC操作的是数据,是将SQL语句传送到DB中执行,而Hibernate操作的是持

久化对象,由底层持久化对象的数据更新到数据库中。

◆数据状态不同:JDBC操作的数据是“瞬时”的,变量的值无法与数据库中的值随

相关文档
最新文档