




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.forward和redirect差异从地址栏显示来说forward是服务器央求资源,服务器直接接见目标地址的URL,把那个URL的响应内容读取过来,尔后把这些内容再发给阅读器.阅读器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.redirect是服务端依照逻辑,发送一个状态码,告诉阅读器重新去央求那个地址.所以地址栏显示的是新的URL.从数据共享来说forward:转发页面和转发到的页面能够共享request里面的数据.redirect:不能够共享数据.从运用地方来说forward:一般用于用户登陆的时候,依照角色转发到相应的模块redirect:一般用于用户注销登陆时返回主页面和跳转到其他的网站等
.
.从效率来说forward:高.redirect:低.2.servlet3.ArrayList
的几个方法dogetdopost里装了Person
差异
Person
类的属性年龄来排序HashMap的键值可否能够是任意对象面试总结第一自我介绍1.2.3.针对2webservlet对应的是哪一个部分4.由前两个问题牵引出web.xml5.对spring认识吗6.springspring7.8.9.10.11.123MVC4567SE8Struts用的什么版本。10Struts2Struts1有什么差异。11Spring的AOP121.第一自我介绍2.问最熟悉的项目3.画出STRUTS框架响应jsp的流程图.4.针对2webservlet对应的是哪一个部分由前两个问题牵引出web.xml对spring认识吗7.springspring8.9.Struts基层的相关知识10.11.12.第一自我介绍在你所用过的框架中你比较喜欢那个问你做过的这些项目中那个收获最大,收获到了什么4.ibatis和Hibernate的差异5.servlet的生命周期spring的两个主要特点(AOP和IOC)说一下你所理解的J2EE是什么为什么说JBOSS吻合J2EE的要求,而TOMCAT不吻合J2EE的要求Hibernate的优点和缺点你以为在项目中最重要的是什么若是分给你的任务,你感觉完成有困难,你会怎么办最后你对支付宝有什么要问的这是依照问你项目而延伸的一些Sql,UML特别感兴趣。主要问1.2.历有没有作假。回答必然不要考虑。3.4.你的人5.6.7..8.Oracle中的分页Sql9.简单地向一个不懂计算机的人说明一下java的多态。说一下你知道的java设计模式。11.struts,spring中应用了哪写java12.说下springspring代理模式的类图。13.14.UML图。1简单介绍自己依照你的介绍提问mvc开发模式有哪些模式你的人生规划业余爱好近来所做的项目中除了你做的模块,还有哪些你都去过哪做项目总结:依照面试官不同样,他可能喜欢的人也不同样,这个面试官喜欢做事有计划的你对Java说说Hashtable与HashMap平时用过的ListArrayList和LinkedListArrayList和LinkedList的ArrayListProperties线程安全?===============================================(我提到了Struts2)请说一下Struts2(从源代码角度出发)CGLIB我以为他会接着问CGLIB,请说一下Struts2是如何把Action交给Spring你们页面的表单请说一下Struts2======================================================请说一下线程池的中断策略(4个)请说一下Tomcat如何实现动向部署请说一下Java你认识最新的ServletStringBuffer与StringBuilder请说一下Tomcat可否能够说说Java他说没关系--请说一些Mysql由于我从前有提还了解一些什么其他的技术范围。SOA=====================================================时间赶-----PS二。==================================================================你对Java的JavaHashMap,Hashtable,HashSet,ArrayList,Vector,LinkedList,Collections,Arrays;说说Hashtable与HashMap的差异(源代码级别)1.最明显的差异在于Hashtable是同步的(每个方法都是synchronized)HashMap则不是.2.HashMap继承至AbstractMap,Hashtable继承至Dictionary,前者为Map其内部已经实现了Map所需它的子类只需要实现它的少量方法即可拥有Map且该类已过时3.两者检测可否含有keyhashHashMap内部需要将key的hash码重新计Hashtable则直接利用key自己的hash码来做考据。HashMap:Java代码inthash=(key==null)?0:hash(key.hashCode());-----staticinthash(inth){h^=(h>>>20)^(h>>>12);returnh^(h>>>7)^(h>>>4);}inthash=(key==null)?0:hash(key.hashCode());-----staticinthash(inth){h^=(h>>>20)^(h>>>12);returnh^(h>>>7)^(h>>>4);}HashtableJava代码inthash=key.hashCode();Java代码inthash=key.hashCode();4.HashMap内部为16*0.75,Hashtable为11*0.75HashMap:Java代码1.staticfinalintDEFAULT_INITIAL_CAPACITY=16;staticfinalfloatDEFAULT_LOAD_FACTOR=0.75f;publicHashMap(){this.loadFactor=DEFAULT_LOAD_FACTOR;5.threshold=(int)(DEFAULT_INITIAL_CAPACITY*DEFAULT_LOAD_FACTOR);6.table=newEntry[DEFAULT_INITIAL_CAPACITY];init();}JavastaticfinalintDEFAULT_INITIAL_CAPACITY=16;staticfinalfloatDEFAULT_LOAD_FACTOR=0.75f;publicHashMap(){this.loadFactor=DEFAULT_LOAD_FACTOR;threshold=(int)(DEFAULT_INITIAL_CAPACITY*DEFAULT_LOAD_FACTOR);table=newEntry[DEFAULT_INITIAL_CAPACITY];init();}Hashtable:JavapublicHashtable(){this(11,0.75f);}-----publicHashtable(intinitialCapacity,floatloadFactor){..........this.loadFactor=loadFactor;table=newEntry[initialCapacity];threshold=(int)(initialCapacity*loadFactor);}publicHashtable(){this(11,0.75f);}-----publicHashtable(intinitialCapacity,floatloadFactor){..........this.loadFactor=loadFactor;table=newEntry[initialCapacity];threshold=(int)(initialCapacity*loadFactor);}ArrayListArrayListLinkedList
LinkedList
4ListList
2
Vector.ArrayListLinkedList1.ArrayListLinkedListJava(ArrayList)privatetransientObject[]elementData;3.5.(LinkedList)privatetransientEntry<E>header=newEntry<E>(null,null,null);/8.//.10.privatestaticclassEntry<E>{11.Eelement;//12.Entry<E>next;//13.Entry<E>previous;//Entry(Eelement,Entry<E>next,Entry<E>previous){this.element=element;this.next=next;this.previous=previous;}19.}Java20.(ArrayList)21.privatetransientObject[]elementData;22.25.(LinkedList)26.privatetransientEntry<E>header=newEntry<E>(null,null,null);/27.28.//.29.privatestaticclassEntry<E>{30.Eelement;//31.Entry<E>next;//32.Entry<E>previous;//Entry(Eelement,Entry<E>next,Entry<E>previous){this.element=element;this.next=next;this.previous=previous;}38.}
Object.24.2.
ArrayList
继承于
AbstractList,
而LinkedList
继承于
AbstractSequentialList.
两者都实现了
List问形式趋向于Java代码1.publicclassArrayList<E>extendsAbstractList<E>2.---------------------------------------------------------------------------------------publicclassLinkedList<E>extendsAbstractSequentialList<E>Java代码publicclassArrayList<E>extendsAbstractList<E>5.---------------------------------------------------------------------------------------6.publicclassLinkedList<E>extendsAbstractSequentialList<E>3.ArrayListLinkedListArrayList上一点谈到了ArrayListJava代码24.25.(LinkedList)26.privatetransientEntry<E>header=newEntry<E>(null,null,null);/链表头27.28.//内部链表类.29.privatestaticclassEntry<E>{30.Eelement;//数据元素31.Entry<E>next;//前驱32.Entry<E>previous;//后驱Entry(Eelement,Entry<E>next,Entry<E>previous){this.element=element;this.next=next;this.previous=previous;}38.}2.
ArrayList
继承于
AbstractList,
而LinkedList
AbstractSequentialList.
List问形式趋向于Java代码publicclassArrayList<E>extendsAbstractList<E>---------------------------------------------------------------------------------------publicclassLinkedList<E>extendsAbstractSequentialList<E>Java代码publicclassArrayList<E>extendsAbstractList<E>---------------------------------------------------------------------------------------6.publicclassLinkedList<E>extendsAbstractSequentialList<E>3.ArrayListLinkedList要慢。ArrayList上一点谈到了ArrayListJava代码1.publicvoidensureCapacity(intminCapacity){modCount++;intoldCapacity=elementData.length;if(minCapacity>oldCapacity){ObjectoldData[]=elementData;//这里扩大的大小为原大小的大概60%intnewCapacity=(oldCapacity*3)/2+1;if(newCapacity<minCapacity)9.newCapacity=minCapacity;10.//创办一个指定大小的新数组来覆盖原数组elementData=Arrays.copyOf(elementData,newCapacity);}}publicvoidensureCapacity(intminCapacity){modCount++;intoldCapacity=elementData.length;if(minCapacity>oldCapacity){ObjectoldData[]=elementData;//这里扩大的大小为原大小的大概60%intnewCapacity=(oldCapacity*3)/2+1;if(newCapacity<minCapacity)9.newCapacity=minCapacity;10.//创办一个指定大小的新数组来覆盖原数组elementData=Arrays.copyOf(elementData,newCapacity);}}Properties线程安全吗?Properties继承于Hashtable,,所以它是线程安全的.其特点是:load()Java代码<SPANstyle="FONT-WEIGHT:normal">publicsynchronizedvoidload(InputStreaminStream)throwsIOException{将输入流变换成LineReaderload0(newLineReader(inStream));}privatevoidload0(LineReaderlr)throwsIOException{char[]convtBuf=newchar[1024];intlimit;intkeyLen;intvalueStart;charc;booleanhasSep;booleanprecedingBackslash;一行一行办理while((limit=lr.readLine())>=0){c=0;keyLen=0;valueStart=limit;hasSep=false;precedingBackslash=false;//下面用2个循环来办理key,valuewhile(keyLen<limit){c=lr.lineBuf[keyLen];//needcheckifescaped.if((c=='='||c==':')&&!precedingBackslash){valueStart=keyLen+1;hasSep=true;break;}elseif((c==''||c=='\t'||c=='\f')&&!precedingBackslash){valueStart=keyLen+1;
break;}if(c=='\\'){precedingBackslash=!precedingBackslash;}else{precedingBackslash=false;}keyLen++;}while(valueStart<limit){c=lr.lineBuf[valueStart];if(c!=''&&c!='\t'&&c!='\f'){if(!hasSep&&(c=='='||c==':')){hasSep=true;}else{break;}}valueStart++;}Stringkey=loadConvert(lr.lineBuf,0,keyLen,convtBuf);Stringvalue=loadConvert(lr.lineBuf,valueStart,limit-valueStart,convtBuf);//Hashtable内部的方法.put(key,value);}}</SPAN>Java代码<SPANstyle="FONT-WEIGHT:normal">publicsynchronizedvoidload(InputStreaminStream)throwsIOException{将输入流变换成LineReaderload0(newLineReader(inStream));}privatevoidload0(LineReaderlr)throwsIOException{char[]convtBuf=newchar[1024];intlimit;intkeyLen;intvalueStart;charc;booleanhasSep;booleanprecedingBackslash;一行一行办理while((limit=lr.readLine())>=0){c=0;keyLen=0;valueStart=limit;hasSep=false;precedingBackslash=false;//下面用2个循环来办理key,valuewhile(keyLen<limit){c=lr.lineBuf[keyLen];//needcheckifescaped.if((c=='='||c==':')&&!precedingBackslash){valueStart=keyLen+1;hasSep=true;break;}elseif((c==''||c=='\t'||c=='\f')!precedingBackslash){valueStart=keyLen+1;break;}if(c=='\\'){precedingBackslash=!precedingBackslash;}else{precedingBackslash=false;}keyLen++;}while(valueStart<limit){c=lr.lineBuf[valueStart];if(c!=''&&c!='\t'&&c!='\f'){if(!hasSep&&(c=='='||c==':')){hasSep=true;}else{}
break;}valueStart++;}Stringkey=loadConvert(lr.lineBuf,0,keyLen,convtBuf);Stringvalue=loadConvert(lr.lineBuf,valueStart,limit-valueStart,convtBuf);//
Hashtable
内部的方法
.put(key,value);}}</SPAN>
LineReader
Properties
Java
代码<SPANstyle="FONT-WEIGHT:normal">classLineReader{publicLineReader(InputStreaminStream){this.inStream=inStream;inByteBuf=newbyte[8192];}publicLineReader(Readerreader){this.reader=reader;inCharBuf=newchar[8192];}byte[]inByteBuf;char[]inCharBuf;char[]lineBuf=newchar[1024];intinLimit=0;intinOff=0;InputStreaminStream;Readerreader;/***读取一行**@return*@throwsIOException*/intreadLine()throwsIOException{intlen=0;charc=0;booleanskipWhiteSpace=true;//空白booleanisCommentLine=false;//说明booleanisNewLine=true;//可否新行.booleanappendedLineBegin=false;//加至行开始booleanprecedingBackslash=false;//反斜杠booleanskipLF=false;while(true){if(inOff>=inLimit){//定数量的字节并将其储藏在缓冲区数组inCharBuf/inByteBuf中,这里
从输入流中读取一区分字节流和字符流inLimit=(inStream==null)?reader.read(inCharBuf)inStream.read(inByteBuf);inOff=0;//读取到的为空.if(inLimit<=0){if(len==0||isCommentLine){return-1;}returnlen;}}if(inStream!=null){//ISO8859-1来解码c=(char)(0xff&inByteBuf[inOff++]);}else{c=inCharBuf[inOff++];}if(skipLF){skipLF=false;if(c=='\n'){continue;}}if(skipWhiteSpace){if(c==''||c=='\t'||c=='\f'){continue;}if(!appendedLineBegin&&(c=='\r'||c=='\n')){continue;}skipWhiteSpace=false;appendedLineBegin=false;}if(isNewLine){isNewLine=false;if(c=='#'||c=='!'){//.isCommentLine=true;continue;}}//读取真切的属性内容if(c!='\n'&&c!='\r'){//这里近似于ArrayList的内容
.lineBuf[len++]=c;if(len==lineBuf.length){intnewLength=lineBuf.length*2;if(newLength<0){newLengthInteger.MAX_VALUE;}
=char[]buf=newchar[newLength];System.arraycopy(lineBuf,0,buf,0,lineBuf.length);lineBuf=buf;}if(c=='\\'){precedingBackslash=!precedingBackslash;}else{precedingBackslash=false;}}else{//reachedEOL文件结束if(isCommentLine||len==0){isCommentLine=false;isNewLine=true;skipWhiteSpace=true;len=0;continue;}if(inOff>=inLimit){inLimit=(inStream==null)?reader.read(inCharBuf)inStream.read(inByteBuf);inOff=0;if(inLimit<=0){returnlen;}}char[]buf=newchar[newLength];System.arraycopy(lineBuf,0,buf,0,lineBuf.length);lineBuf=buf;}if(c=='\\'){precedingBackslash=!precedingBackslash;}else{precedingBackslash=false;}}else{//reachedEOL文件结束if(isCommentLine||len==0){isCommentLine=false;isNewLine=true;skipWhiteSpace=true;len=0;continue;}if(inOff>=inLimit){inLimit=(inStream==null)?reader.read(inCharBuf):inStream.read(inByteBuf);inOff=0;if(inLimit<=0){returnlen;}}if(precedingBackslash){len-=1;skipWhiteSpace=true;appendedLineBegin=true;precedingBackslash=false;if(c=='\r'){skipLF=true;}}else{returnlen;}}}}}</SPAN>Java代码<SPANstyle="FONT-WEIGHT:normal">classLineReader{publicLineReader(InputStreaminStream){this.inStream=inStream;inByteBuf=newbyte[8192];}publicLineReader(Readerreader){this.reader=reader;inCharBuf=newchar[8192];
}byte[]inByteBuf;char[]inCharBuf;char[]lineBuf=newchar[1024];intinLimit=0;intinOff=0;InputStreaminStream;Readerreader;/**读取一行*@return@throwsIOException*/intreadLine()throwsIOException{intlen=0;charc=0;booleanskipWhiteSpace=true;//空白booleanisCommentLine=false;//说明booleanisNewLine=true;//可否新行.booleanappendedLineBegin=false;//加至行开始booleanprecedingBackslash=false;//反斜杠booleanskipLF=false;while(true){if(inOff>=inLimit){//从输入流中读取必然数量的字节并将其储藏在缓冲区数组inCharBuf/inByteBuf中,这里区分字节流和字符流inLimit=(inStream==null)?reader.read(inCharBuf):inStream.read(inByteBuf);inOff=0;//读取到的为空.if(inLimit<=0){if(len==0||isCommentLine){return-1;}returnlen;}}if(inStream!=null){//ISO8859-1来解码c=(char)(0xff&inByteBuf[inOff++]);}else{c=inCharBuf[inOff++];}if(skipLF){skipLF=false;if(c=='\n'){continue;}}if(skipWhiteSpace){if(c==''||c=='\t'||c=='\f'){continue;}if(!appendedLineBegin&&(c=='\r'||c=='\n')){continue;}skipWhiteSpace=false;appendedLineBegin=false;}if(isNewLine){isNewLine=false;if(c=='#'||c=='!'){//.isCommentLine=true;continue;}}//读取真切的属性内容if(c!='\n'&&c!='\r'){//这里近似于ArrayList的内容.lineBuf[len++]=c;if(len==lineBuf.length){intnewLength=lineBuf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑楼体防护网安装工程技术考核试卷
- 2023-2024学年广东省名校联盟高一下学期期中质量检测语文试题(解析版)
- 探索光的奥秘
- 江苏名校2024-2025学年高考化学试题模拟题及解析(全国Ⅰ卷)含解析
- 天津机电职业技术学院《材料成型原理与工艺》2023-2024学年第二学期期末试卷
- 苏州大学应用技术学院《生物反应工程实验》2023-2024学年第二学期期末试卷
- 四川省成都市龙泉驿区达标名校2025届初三第6次月考数学试题含解析
- 辽宁工业大学《藏族文化概论》2023-2024学年第一学期期末试卷
- 四川铁道职业学院《跨文化交际(日)》2023-2024学年第一学期期末试卷
- 2025年小学数学期末考试试卷及答案
- (一模)临沂市2025届高三高考第一次模拟考试地理试卷
- GB/T 18760-2025消费品售后服务方法与要求
- 国内外引信弹道炸事故及其原因综述
- 《大学物理(上册)》课件-第8章
- 小学高年级学生身体满意度和人际关系困扰的关系及自尊的中介作用
- 河南省郑州市2025届高三上学期二模英语试题(含解析含听力原文无音频)
- 医院保密知识培训课件
- 移动端安全标准与合规性-洞察分析
- 第4章我们生活的大地知识点清单-2024-2025学年浙教版七年级下册科学
- 中西文化鉴赏知到智慧树章节测试课后答案2024年秋郑州大学
- 管理心理学-第二次形成性考核-国开(SC)-参考资料
评论
0/150
提交评论