`

面试对JavaEE的一些整理。。。

阅读更多
1.HTML是什么?XML又是什么?两者什么区别?XML解析有哪几种常用的方式?
HTML是超文本标记语言,用于描述网页文档的一种标记语言;
XML是具有结构性可拓展标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言;
XML解析常用有四种:
DOM(JAXP Crimson 解析器):以层次结构组织的节点或信息片断的集合,采用建立树形结构的方式访问 XML 文档,需要加载整个Document;(实现接口)
SAX 逐行扫描的方法一边扫描一边解析,可任意时刻停止;
JDOM 成为 Java 特定文档模型,是在 Apache 许可证变体下发布的开放源码;自身不包含解析器,通常使用 SAX2 解析器来解析和验证输入 XML 文档;(使用具体类)
DOM4J在最初是JDOM 的一种智能分支,Hibernate正在使用。(不考虑可移植性)

区别:
HTML是数据的显示,标记不一定成对出现,不区分大小写;而XML是数据的内容,标记一定成对出现,大小敏感;

2.简述下javascript?可以做什么?不能做什么?与java的区别。
JavaScript是一种基于对象和事件驱动的能够嵌入页面中的弱类型(解释性)语言,为了完成页面数据的初步校验,以及在页面中实现一些动态效果,增强客户体验。
包括浏览器对象(Navigator),屏幕对象,文档对象(Document),位置对象(Location),历史对象(History),Window对象;
内置对象:String,Array,Math,Date,RegExp,Global

能够做到:
使网页更具有交互性,节省业务开支,处理表单,设置cookie,创建基于web的应用程序。
不能做到:
不允许读写客户机器上的文件;
不允许写服务器上的文件;
不能关闭不是由它打开的窗口;
不能从来自另一个服务器的已经打开的网页中读取信息。

区别:
java      javascript
强变量      弱变量
面向对象    基于对象
代码格式不一样
嵌入方式不一样
动态联编    静态联编  //对象引用必须在编译时进行

3.简述下JQuery,Ajax。
JQuery是继prototype之后的轻量级js库,兼容CSS3,还兼容各种浏览器 ;
Ajax--Asynchronous JavaScript And XML:是一种创建交互式网页应用的网页开发技术;异步 JavaScript 及 XML;
Ajax主要包含的技术:
   基于web标准(standards-based presentation)XHTML+CSS的表示;   
使用 DOM(Document Object Model)进行动态显示及交互;   
使用 XML 和 XSLT 进行数据交换及相关操作;  
使用 XMLHttpRequest 进行异步数据查询、检索;

4.JSP的九个内置对象;简述Servlet的生命周期
application,page,request,response,exception,config,out,session,pagecontext

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

5.简述反射和动态代理机制原理。
反射:通过“包名.类名”的字符串能够完成类的加载、对象的实例化以及方法的调用
JAVA的代理
代理模式
代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。
按照代理的创建时期,代理类可以分为两种。
静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
动态代理:在程序运行时,运用反射机制动态创建而成。 

与静态代理类对照的是动态代理类,动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。java.lang.reflect 包中的Proxy类和InvocationHandler 接口提供了生成动态代理类的能力。

动态代理:在不改变原有代码流程的前提下,实现对业务逻辑的干预
JDK动态代理:只能够代理实现了接口的类,因为JDK动态代理就是通过产生父接口对象来代理实现类的对象。
CGLib动态代理:不能够代理final类,CGLib动态代理是通过产生被代理类的子类对象,来完成代理的


6.SSH三大轻量级框架的原理:
Hibernate是一个ORM框架:就是将java中的类和数据库中的表映射起来,当我们对这个类的对象进行操作的时候,Hibernate就会对其将转换成对映射表的数据的操作;
Struts2:(完成视图层和模型层之间的数据传输)将页面中的数据提交到Java代码中,同时也把Java中的数据传递到页面中,作用代替了Servlet功能;核心是拦截器;
Spring:两大核心思想--》Ioc和AOP
IoC:(控制反转)不再通过new关键字获取对象,而是将创建对象的认为反转给Spring容器去创建;
(依赖注入)spring容器不仅能够创建对象,我们还能依赖于spring容器给创建好的对象属性赋值;
AOP:面向切面,是一种编程思想,OOP的延续。将系统中非核心的业务提取出来,进行单独处理。比如事务、日志和安全等。这个简单来说就是可以在一段程序之前或者之后做一些事;

7.WebService的简述:
基于网络的;对外提供服务。
不同应用程序之间的数据共享;提高了应用程序的复用性(使用价值);

实现流程:
①服务创建服务,并且生成一个WSDL文件,用于描述对外的服务
②客户端在正式访问服务之前,要获取WSDL文件,并进行解析(了解服务)
③客户端根据解析的内容进行访问
客户端想要访问某个WebService服务:
①获取WSDL文件;
②解析获取到的WSDL-->生成一系列的访问规则;
③根据规则访问;

8.单元测试:
白盒测试,黑盒测试

9.CVS/SVN是用来做什么的?
在项目组开发时候用于对统一环境下代码维护的管理工具;通俗的说就是许多人做同一件事情,并对其扩充达到完成这件事情。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics