面试题

来源:互联网 发布:exescope是什么软件 编辑:程序博客网 时间:2024/06/08 13:57
linux讲述基本应用层
X windows系统及图形界面使用
常用基本命令
系统基本管理
常用的应用程序
OpenOffice.org
Writer、Calc、
文本编辑器vi的使用
-------------------------------
-------------------------------
简单的shell编程
Linux下c和C++编程介绍
了解Linux与其他系统的联系与区别
了解Linux的内核版本发行版本
掌握Linux系统的组成和特点
Linux的产生于发展,内核版本与发行版本
组成与特点。
三种软件模式:
商业软件:不能改写,拷贝
共享软件:可拷贝
自由软件:可改写,拷贝
-----------------------------------------
Richard M.Stallman黑客历史上最大的黑客,黑客中的黑客
自由软件创始人。
改写该软件来符合使用者自身的需求。
散布该软件的自由。
改善在利用该软件的自由。
-------------------------------------------------
GNU递归
FSF自由软件基金会
Gpl
通过提供技术服务盈利
OSS开放源代码软件
-----------------------------------------------
利用Minix操作系统作为开发平台
,为他自己的操作系统课程和后来的上网
用途陆续编写了若干程序
---------------------------------------------
forward是服务器请求资源,服务器直接访问目标地址URL
把URL的响应内容读取过来,把这些内容在发个浏览器,浏览器不知道内容从哪里来的
所以还是原来的地址


redirect就是服务器端根据逻辑,发送一个状态码,告诉
浏览器重新区请求那个地址,
session 和request都可


short s1=1;s1=s1+1;
连接池驱动: 
创建一定数量的连接
调用完成后标记为空闲
连接时标记为忙




Set里的元素不可重复,用什么区别呢?
iterator()方法来区分重复与否
equals()是判读两个Set是否相等


当一个对象被当做参数传递一个方法后,此方法可改变这个
对象的属性,并返回变化后的结果,那么到底是值传递还是引用传递呢


是值传递
一个对象实例作为参数被传递到方法中时,参数的值就是该对象的引用
对象的内容可以在被调用的方法中改变,但对象的引用永远不会变的




public class Singleton{
private Singleton(){}
private static Singleton instance=null;


public static synchronized Singleton getInstance(){
if(instance==null){
instance=new Singleton();
 return instance;
}
}
}
---------------------------------------------------
常年的类:
BufferedReader BufferedWriter FileReader
FileReader FileWriter String Integer
常见的包:java.lang java.io java.util java.sql;
常见的接口:List Map Document NodeList


jsp有哪些动作?作用分别是什么?
jsp:include.在页面被请求的时候引入一个文件。
jsp:useBean.寻找或者实例化一个javaBean。
jsp:setProperty设置JavaBean属性
jsp:getProperty输出某个javaBean的属性
jsp:forward:把请求转到一个新的页面
jsp:plugin:根据浏览器类型为java插件生成Object或embed
------------------------------------------------------------


tomcat的优化经验
去掉对web.xml的监视,把jsp提前编辑成servlet
有富余物理内存的情况,加大tomcat使用的jvm的内存


servlet有良好的生存期定义,包括加载和实例化、初始化、处理请求以及服务结束
加载实例化初始化处理请求以及服务结束


servlet被服务器实例化后,容器运行其init方法,请求到达时其
service方法,service方法自动派遣运行与请求对应的doxxx方法
(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy
的初始化。


通过调用service()方法实现,根据请求的不同调用不同的do***()方法。
结束服务,web容器调用servlet的destroy()方法。


Servlet的基本架构


public class ServletName extends HttpServlet{


public void doPsot(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{




}
public void doGet(HttpServletRequest request,HttpSevletResponse response)throws
ServletException,IOexception{}
}
servlet api中forward()与redirect()的区别?
forward()中仅是容器中控制权的转向,客户端浏览器地址栏中不会显示出专线后的地址
redirect()后者是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求连接
前者更高效。
后者转到一个其它服务器上的资源,必须使用sendRedirect()方法;


Request对象的主要方法:
getAttribute(String name);
getCookies();
getCharacterEncoding()
getContentLength()
getParameter(Stirng name)
getParameterNames()
getParametervalues(String name);
getRequestURL();
getServletPath();
getServletPort()获取客户端所请求的脚本文件的路径
getServletPort();获取服务器的端口号;
removeAttribute(String name):删除请求中的一个属性;
--------------------------------------------------------------
forward是服务器请求资源,服务器直接访问目标地址的URL,把URL的响应内容读取过来
然后把这些内容在发送浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,
所以它的地址栏中还是原来的地址。


redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址
一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取


getParameter()是获取POST/GET传递的参数值;
getAttribute()是获取session的值。


setAttribute,getAttribute发送接收对象,而getParameter显然只能传字符串


setAttribute是应用服务器把这个对象放在该页面所对应的一块内存中去,
当你的页面服务器重定向到另一个页面,应用服务器会把这块内存拷贝另一个页面
所对应的内存中。这样getAttribute()就能取得你所设下的值,当然这种方法可以传对象
session也一样,只是对象在内存中的生命周期不一样而已。


getParamter只是应用服务器在分析你送上来的request页面的文本时,取得
你设在表单或url重定向时的值。
getAttribute返回的是Object,需要进行转换,可以用setAttribute设置成任意对象,使用很灵活,
可以随时使用。
JSP共有以下9个内置的对象
request用户端请求,此请求会包含来自Get/post请求的参数
response网页传回用户端的回应
pageContext网页的属性是在这里管理
session与请求有关的会话期
application servlet正在执行的内容
out用来传送回应的输出
config servlet的架构部件
page JSP网页本身
exception针对网页错误网页,未捕捉的例外。




request表示HttpServletRequest对象。并且提供了几个用于获取cookie、header、session
response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法
out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于
向浏览器回送输出结果。
pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取
各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
session表示一个请求的,session可以存储用户的状态信息
application表示一个javax.servle.ServletContext对象,者有助于查找有关
servlet引擎和servlet环境的信息。
config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数
page表示从该页面产生的一个servlet实例。


<jsp:include page=include.jsp flush=true>
<jsp:froward page=new=xtpage.jsp/>
前者页面不会转向include所只的页面,只是显示该页的结果,主页面还是原来的页面
执行完后还会回来,相当于函数调用。并且可以带参数,后者完全转向新页面,不会再回来
相当于go to语句。
-------------------------------------------------------------------
页面间对象传递的方法
request,session,application,cookie等


jsp和servlet有哪些相同点和不同点,他们之间的联系是什么?


jsp是servlet技术的扩展,本质上是servlet的简易方式,更强调应用的外表表达。


servlet侧重于控制逻辑,jsp侧重于视图
servlet的应用逻辑是在Java文件中,
JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件
----------------------------------------------------------------
MVC
Model代表的是应用的业务逻辑(通过javaBean,EJB组件实现)
View是应用的表示面(有JSP页面产生)
Controller是提供应用的处理过程控制(一般是一个Servlet)
通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同组件实现。
这些组件可以进行交互和重用。






Jaxp定义了在java中使用Dom,Sax,XSLT的通用接口
JAXM是为SOAP提供访问方法和传输机制的API


SOAP简单对象访问协议,它是用于交换xml编码信息的轻量级协议
UDDI的目的是为电子商务建立的标准UDDI是一套基于web的
分布式的为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业
能将自身提供的web service注册,以使别的企业能够发现的访问协议的实现标准。


EJB的几种类型
设置JNDI服务工厂以及JNDI服务地址系统属性,
查找Home接口,从Home接口调用create方法创建remote接口,通过remote接口调用其
业务方法。


设置JNDI服务工厂以及JNDI服务体系系统属性
查找Home接口,从Home接口调用create方法创建remote接口,
通过remote接口调用其业务方法。


EJB的几种类型
会话Session Bean
实体EntityBean
消息驱动的message driven Bean会话Bean 


会话Session Bean
实体EntityBean
消息驱动的message driven会话Bean








代码产生
持续性管理
安全
事务管理
锁和并发行管理等服务




代码产生
持续性管理
安全
事务管理
锁和并发性管理等




Java bean是可复用组件
实现序列化接口实现持久化
必须有一个无参构造器
不能被跨进程访问的


可以被远程访问


EJB可以被远程访问
EJB客户从不直接访问真正的EJB组件,而是通过容器访问
客户通过容器来访问真正的EJB组件


EJB容器是EJB组件的的代理。EJB组件由容器所创建和管理,客户通过容器来访问真正的E基本组件


J2EE服务器启动时会建立一定数量的池连接


客户端需要的时候池驱动程序会返回一个为使用的吃连接并标记为正忙


当没有空闲的连接的,池驱动就新建一定数量的连接,新建连接的数量有配置参数决定


当连接调用完成后,池驱动程序就将此连接标记为空闲,其他调用就可以使用这个连接


返回的connection是原始connection的代理代理connection的close方法不是真正的关闭连接
而是把它代理的connection对象返回到连接池当中。




orm是一种思想,把object转变成数据库中的记录,或者把数据库中的记录转变成
objectt,我们可以用jdbc来实现这种思想,其实,如果我们的项目是严格按照oop方式
编写的话,我们的jdbc程序不管是有意4还是你无意


我们直接使用这些工具,就省去了直接使用jdbc的繁琐细节,提高了开发效率


xml的解析技术都有哪些?
DOM
SAX
STAX


DOM处理大型文件是性能下降的非常厉害
这个原因是由于DOM树的结构影响的。
这种结构占用内存比较多
Dom必须在解析文件前把整个文档装入内存
适合对xml的随机访问


SAX是事件驱动的xml解析方


压缩打包加密后通过网络传送给接受者,接收解密与解压缩后
在同xml文件中还原相关信息进行处理。
在做软件配置时,利用xml可以很方便的进行如年的额各种配置参数都贮存在xml文件中


xml文档定义有几种形式,他们之间有什么本质区别
解析文档有几种方式?


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


SAX:不限于DOM,SAX是事件驱动型的XML解析方式。它是顺序读取XML文件不需要一次全部装载全部文件


当遇到文件开头文档结束,或者标签开头或者标签结束的时候,它会触发一个事件,用户通过在其
回调事件中写入处理xml文件,适合对xml的顺序访问。




1、Spring实现了工厂模式的工厂类,这个类名BeanFactory,在程序中通常BeanFactory
的子类A评评理cationContext
spring相当于一个大的工厂类,在其配置文件中通过<bean>元素配置用于创建实例对象的类名
和实例对象的属性。


spring提供了对ioc良好的支持,Ioc是一种编程思想,是一种架构艺术
利用哦这种思想可以很好地实现模块之间的解耦IOC也叫依赖注入
Class Programmer{


Computer computer=null;
public void code(){


}
public void setComputer(Computer computer){
this.computer=computer;
}
Aop称为面向切面编程,就是系统中有很多各不相干的类的方法,
在这些众多的方法中加入某种该系统功能的代码,
例如加入日志加入权限判断,加入异常处理,这种应用称为AOP
实现AOP功能采用的是代理技术。
客户端不在调用目标类而是直接调用代理类


代理类和目标类对外具有相同的方法说明,有两种方式可以实现相同
的方法说明,一是实现相同的接口


<bean id="proxy" type="org.spring.framework.aop.proxyBeanFactory">
<property name="target" ref=""></property>
<property name="terget" ref=""></property>
</bean>




Struts的优点是什么?
1、实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现
2、有丰富tag可以用Struts的标记库Taglib,如能灵活动用大大的提高了开发效率
3、页面导航
通过一个配置文件可把握整个系统各部分之间的联系,这对于后期维护有莫大的关系
4、提供Exception处理机制
5、数据库连接池管理
6、支持118N


缺点:
1、转到展示层时,需要配置forward,如果有十个展示层的jsp
需要配置十次struts
而且还不包括有时候目录,文件变更,需要重新修改forward
每次修改需要重新部署整个项目,而tomcat需要重新启动服务器


2、Struts的Action必须是thread-safe方式,他允许一个实例去处理所有
的请求,所以action用到的所有资源都必须统一同步,这就引起了线程安全问题


3、测试不方便


4、类型的转换


5、对Servlet的依赖性过强。Struts处理Action时必须要依赖ServletRequest和
ServletResponse,所有有它摆脱不了Servlet容器。


6、可是JSTL的表达式语言在Collection和索引属性方面处理显得很弱


7、对Action控制困难,Struts创建一个Action。如果想控制它的执行顺序将会非常困难
甚至你要重新去写Servlet来实现你的这个功能需求。


8、对Action执行前和后处理处理操作


9、
Struts的应用
Struts开发Web应用程序的开放源码的framework
采用Struts能开发出基于MVC设计莫斯的应用架构


Struts有如下主要功能:
1、包含一个controller servlet,能将用户的请求发送到相应Action对象。
2、tag库,并且在controller servlet中提供关联支持,帮助开发人员
创建交互式表单应用。
3、提供一系列实用对象
XML处理、通过Java reflection API自动处理javaBeans属性,国际化的提示和消息





























0 0