资源描述
必看的java编程面试题概述MVC体系结构?答:MVC涉及三类对象,mode是应用对象,vie是视图,troller是控制器,它定义用户界面对用户输入的响应方式。在M体系中,模型通常被称为”业务逻辑”,是真正完毕任务的代码,视图就是使用界面,反映数据的变化。控制器控制着模型和视图之间的交互过程,它决定着向用户返回如何的视图、检查通过界面输入的信息以及选择解决输入信息的模型。在MVC中,表达层和逻辑层分离,各部分可互相独立进行开发,便于开发和维护,提高了开发效率。概述strt,以及t如何实现MVC架构的?答:ruts famework是一种基于JVA编程的技术,Wb应用程序开发人员通过strus framework即可充足运用面向对象设计、代码重用以及”编写一次、到处运营”的优点。truts提供了一种创建We应用程序的框架,其中相应用程序的显示、表达和数据的后端代码进行了抽象。Stru采用jsp作为MVC的视图,由Ationervt具体指定的ation动作类作为控制器即MVC中的C,负责视图与模型之间的交互。控制器的每个入口点都由名为strus-onfg.xml的配置文献设立。该文献把来自视图的请求映射为特定的JAV类以进行相应的解决,控制器还指定下一个视图的位置。Srts中的模型重要指的就是jvab,它是模型的代表,重要封装数据和业务逻辑。Struts的解决流程:l、控制器进行初始化工作,读取配置文献,为不同的Strut模块初始化相应的ModlCofig对象。2、控制器接受Htt请求,并从ActinConig中找出相应于该请求的Action子类,假如没有相应的Action,控制器直接将请求转发给JP或者静态页面,否则控制器将请求分发至具体的Acto类进行解决。3、在控制器调用品体的Ain的Execut方法之前,Actionrm对象将运用Htp请求中的参数来填充自已。还可以在 tnFom类中调用Valate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的ctionros对象。4、执行具体的的Eect的方法,它负责执行相应的业务逻辑。执行完后,返回一个ActionForwa对象,控制器通过该 AcinFoar对象来进行转发工作。也可以把Acton要解决的业务逻辑封装在Jaaea中,假如系统中尚有EB,那么通过 JavaBn调用EJ以完毕业务解决;假如没有EJ,那么就直接在Javaan中连接数据库,进行数据库相关的操作。1n和integr的区别inge是一个类,对它的操作要通过类的方法,int是种基本数据类型之一(八种数据类型:字符类型:cha,布尔类型ooan以及数值类型bt、shot、in、lo、flo、duble)。intge是对int的封装。声明int的变量不需要实例化。声明nteer变量需要实例化。in不需要实例化。2Strin和Strngufer的区别Sg声明的数组长度是拟定的,不能随意增长其容量。线程安全的可变字符序列。trnguffe可随意增长容量,线程安全的字符序列3.运营时异常和一般异常的区别运营时异常时程序运营时也许报出的异常。可以用 cth获得,也可以不做解决。比如:IndeOtOxepton、lassasetexepton、nlpoioerxcption、lsnotfounecti一般异常,这些异常时在定义方法是声明抛出的,这些异常必需用try cath抛出,或throw解决,假如不解决,假如不解决,程序将编译失败。比如:Ioxcpton、filenotodexceptin、sqlexptio.例举5个常用的包、类、接口包名:jva.til,ava.io,jaa.at,jva.lang,jav.wn类名:trin,rngBfer,Dae,Calenda,Hahp,HasSe接口: octin,ton,riale,toSuport,apVect和LikLisVector:由于使用了synchronized方法(线程安全),通常性能上较AraLit差LinkedList:使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,插入速度较快。6.连接池的工作机制连接池控制着和数据库的链接,它来控制启动几个链接,关闭几个链接,什么时候关闭,调用什么方法,在hibrate中的,nnectionPovder相称于一个连接池,它来维持ession和数据库的链接状态。7.应用服务器有哪些omt,bos,WebLoic.集合有哪些,集合的方法有哪些集合:Collcton,Ma方法:dd,clr,remve,cntains,equas,Hashcode,Clear,cle,ize,isempy,put,et9.MC各部分有哪些技术实现,是如何实现Ve:产生http响应,请求模型更新,提供for表单用于用户请求ode:封装应用状态响应状态查询,暴露应用接口oroller:验证请求数据,将请求数据与模型更新相映射,返回响应的视图。10.Strut的配置文献有哪些,解释glbaFowars、ActionMapping、MegeResorceStrutconf.ml返回公共页面的配置,比如:返回到错误页面,登录页面配置aon的相关信息,涉及pat,tpe,ame,liate,scoe,npu描述该模块的一起配合使用的消息资源,mesae esource对象11.简述Anor和Actn在Struts中扮演的角色aionom封装请求的数据acton解决用户请求产生响应2.方法里有一个reurn语句,那么紧跟在这个ty后的fnal里的code会不会执行?会,并且先执行fiall,在执行try13.在Web应用中,你都使用那些技术或方法来改善系统的性能?Ajx,ctio(线程安全,运营慢),p,写一些公共的类,方法,进行调用对服务器访问人数控制。编程用av实现将C盘的一个文本文献复制到盘impor jav.oFleRader;import jaa.FleWritr;iprt ava.o.IOxceptin;/* 需求:将c盘的一个文本文献复制到d盘。* 思绪:* ,需要读取源,*2,将读到的源数据写入到目的地。* 3,既然是操作文本数据,使用字符流。*publicclas CpyTexTest/*prmargs*throwsIOExepto/pbcsttic vi main(tringags) thrws IOEptio /1,读取一个已有的文本文献,使用字符读取流和文献相关联。FilRedrfr =new FilReader(“IO流2.tx”);/2,创建一个目的,用于存储读到数据。FleWrer fw = new FieWriter(“copytet_1.txt”);3,频繁的读写操作。int ch= 0;le((ch=fr.rd()!=-1)f.wite(ch);/4,关闭流资源。fwclose();fr.clse();以下是借助了数组,即缓冲区,并进行了异常解决import java.o.Filde;mpor aa.oFilrter;impor java.i.IExceion;publicasCopyTextTest2 pivte stati finalint UFERSIZE =1024;/* pam rg*/ublic stat void ai(tring rg) FileRader f =nul;Flert fw n;trfr =leReder(“IO流_2.txt”);fw = e lrit(“copyest_2.t”);/创建一个临时容器,用于缓存读取到的字符。char buf =new arFER_SIZE;/这就是缓冲区。/定义一个变量记录读取到的字符数,(其实就是往数组里装的字符个数)int 0;while(l=frrea()!-1)f.write(buf, 0, len); catch (xcpione)/ Sse.ou.println(“读写失败”);hrwnw RnimeExceptio(“读写失败”);fiallf(w!=nl)y fw.lose(); cch (IOceptio e) e.pritStackace();i(r!nul)tyfrcose(); ctch (Oxcptione) .printackTace();在Java中,构造方法必须满足什么样的规则,构造方法可以被tai, final, synhrnied, abstract和ate修饰吗?请说明你的理解。答:构造方法一般需要满足以下几条规则:(1)方法名必须与类名保持一致。(2)不要声明返回类型。()不能被stai, final, snhoni,bstract和native修饰。构造方法不能被子类继承,所以用inal和absract修饰没有任何意义。构造方法用于初始化一个新建对象,所以用statc修饰没故意义。多个线程不会同时创建内存地址相同的对象,因此使用synchroizd修饰也是没有必要的。此外,Jaa语言目前还不支持ate类型的构造方法。知识扩展:用his语句来调用其他构造方法时,必须遵守以下规则:(1)假如在一个构造方法中使用了thi语句,那么它必须作为构造方法的第一条语句(不考虑注释语句)。(2)只能在一个构造方法中使用tis语句来调用类的其他构造方法,而不能在实例方法中用ths语句来调用类的其他构造方法。(3)只能用this语句来调用其他构造方法,而不能通过方法名来直接调用构造方法。同样,使用ue语句调用父类的构造方法时,也必须遵守以下语法规则:(1)在子类的构造方法中,不能直接通过父类方法名来调用父类的构造方法,而是使用super语句。(2)假如子类的构造方法中有up语句,它必须作为构造方法的第一条语句。
展开阅读全文