java面试题12

1、  jsp与servlet的区分?

答:Servlet和JSP都是基于java语言上的动态网页技术,Servlet程序其实就是java程序,只不过它所使用的类库为JAVA Servlet API,用于编写服务器端的程序.Servlet继承了Java语言所具有的优点----                        跨平台,安全性,易开发.但是,Servlet的页面现实和业务逻辑没有分离,使其编写难度较大.      为此,sun公司退出了一种新的动态网页技术---JSP.jsp是在传统的HTML页面中加入java程序,片段和jsp标记构成.这样,就可以将页面表示层和业务逻辑层进行分离.将页面表示层和业务逻辑层分离的好处是:Web开发人员可以使用HTML来设计页面的显示部分,而程序开发人员可以使用jsp指令和java程序片段来实现业务逻辑功能.      Servlet和jsp作为J2EE开发平台的一部分,它们最大的好处就是跨平台性,可实现一次编写,处处运行.

2、  解释下xml的解析,在哪些地方用到的?

答:SAX和DOM 两种 Java里面用的是JDOM。                                                       

○ 解析方式有:                                                 

⑴   DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问;                                                       

⑵SAX:不同于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问。                                                   

○ 定义方式:DTD(文档类型定义)和Schema。

3、设有关系EMP(ENO,ENAME,SALARY,DNO),其中各属性的含义依次为职工号、姓名、工资和所在部门号,列出各部门中工资不低于600元的职工的平均工资

答:SELECT AVG(sal) FROM EMP WHERE sal >=600

4、

                                       

答:120

5、

答:

 

6、下面的哪些叙述为真()

A.equals()方法判定引用值是否指向同一对象。

B.= = 操作符判定两个不同的对象的内容和类型是否一致。

C.equals()方法只有在两个对象的内容一致时返回true。

D. 类File重写方法equals()在两个不同的对象的内容和类型一致时返回true。

答:A

7、

答:B

8下列程序段执行后的结果是(  )。

String s=new String("abcdefg");

for(int i=0;i<s.length();i+=2){

System.out.print(s.charAt(i));}

A) aceg

B) ACEG

C) abcdefg

D) abcd

答:A

9、Request对象的主要方法(最少7个)

答:setAttribute(String name,Object):设置名字为name的request的参数值

getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例

getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body的长度

getHeader(String name):获得HTTP协议定义的文件头信息

getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例

getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(String name):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

10、说出数据连接池的工作机制是什么?

答:J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱

动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建

连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个

连接。

11、项目中如何体现Spring中的切面编程,举例说明

答:面向切面编程:主要是横切一个关注点,将一个关注点模块化成一个切面。在切面上声明一个通知(Advice)和切入点(Pointcut); 通知: 是指在切面的某个特定的连接点(代表一个方法的执行。通过声明一个org.aspectj.lang.JoinPoint类型的参数可以使通知(Advice)的主体部分获得连接点信息。)上执行的动作。通知中定义了要插入的方法。切入点:切入点的内容是一个表达式,以描述需要在哪些对象的哪些方法上插入通知中定义的方法。

   项目中用到的Spring中的切面编程最多的地方:声明式事务管理。

   a、定义一个事务管理器

   b、配置事务特性(相当于声明通知。一般在业务层的类的一些方法上定义事务)

   c、配置哪些类的哪些方法需要配置事务(相当于切入点。一般是业务类的方法上)

12、springmvc工作机制(流程)

答:spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
DispatcherServlet请请求提交到目标Controller
Controller进行业务逻辑处理后,会返回一个ModelAndView
Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
视图对象负责渲染返回给客户端

原文地址:https://www.cnblogs.com/Blogyin/p/8145400.html