校园招聘面试试题合集总结_第1页
校园招聘面试试题合集总结_第2页
校园招聘面试试题合集总结_第3页
校园招聘面试试题合集总结_第4页
校园招聘面试试题合集总结_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.forward和redirec区另*]

1.从地址栏显示来说

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后

把这些内容再发给

浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地珏.redirec是

服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的

URL.

2.从数据共旱来说

forward:转发页面和转发到的页面可以共享request里面的数据.

redirect能共享数据.

3.从运用地方来说

forward-般用于用户登陆的时候,根据角色转发到相应的模块.

redirect般用于用户注销登陆时返回主页面和跳转到其它的网站等.

4.从效率来说

forward:高.

redirec低.

2.servlet几个方法dogetdopost区别

3.ArrayLisM.装了Person美对象怎样根据Person类的属性年龄来排序

4.HashMap的键值是否可以是任意对象

面试总结

首先自我介绍

I.面试官拿着你的简历会挑其中的一个项目然后让你说出这个框架的流程

2.画出框架的流程图会问每一个部份都是干什么用的

3.针对2的问题我们做的都是web项目在那个框架中5©“归5应的是哪一个部

4.由前两个问题牵引出web.xml文件配置中都有哪些属性以及他的作用

5.对spring了解吗

6.spring的依赖注入方式有哪几种注意不是spring的注入方式是依赖注入

7.有关事物的问题做项口中做到哪些与事物有关的事物是怎么控制的怎么去写

8.触发器存储过程也说了一点

9.项目开辟中如果遇到一个问题你自己也不知道该用什么技术去解决怎么去解决该如何去

10.你有三年项目开辟经验觉得自己比别人有优势的地方在哪

11.最后会问对他们公司有什么要了解的给你个机会让你去问问题

I自我介绍自己做过的项目擅长的技术。

2用过的框架最擅长的那个

3所知道的MVC框架还有哪些

4时常去些什么样的网站对自己将来有什么样的打算规划。

5喜欢技术吗喜欢。举个例子来说明你喜欢技术。

6以前项目中有没有加班频率、加班时间长度。对加班的看法。

7以前的项目主中要做什么内容SE级别还是开辟。

8在项目组怎样做项目没有详细设计能做吗

9Struts用的什么版本。

10Struts2用过吗和Strutsl有什么区别。

11Spring的AOP了解吗主要用在项目的那些方面。12以前的项目规模都是多大的。

1.首先自我介绍

2.问最熟悉的项目

3.画出STRUTS框架响应jsp的流程图.

4.针对2的问题我们做的都是web项目在那个框架中servle#应的是哪一个部份

5.由前两个问题牵引出web.xml文件配置中都有哪些属性以及他的作用

6.对spring了解吗

7.spring的依赖注入方式有哪几种注意不是spring的注入方式是依赖注入

8.有关事物的问题做项FI中做到哪些与事物有关的事物是怎么控制的怎么去写

9.Struts底层的相关知识

10.项目开辟中如果遇到一个问题你自己也不知道该用什么技术去解决怎么去解决该如何去

11.你有三年项目开辟经验觉得自己比别人有优势的地方在哪

12.最后会问对他们公司有叶么要了解的给你个机会让你去问问题

1.首先自我介绍

2.在你所用过的框架中你比较喜欢那个

3.问你做过的这些项目中那个收获最大,收获到了什么

4.ibali痢Hibernale的区别

5.servlel的生命周期

6.spring的两个主要特性(AOP和IOC)

7.说一下你所理解的J2EE是什么

8.为什么说JBOSS符合J2EE的要求,而TOMCAT不符合J2EE的要求

9.Hibernate的优点和缺点

10.你认为在项目中最重要的是什么

11.要是分给你的任务,你感到完成有艰难,你会怎么办

12.最后你对支付宝有什么要问的

这次去杭州支付宝面试因为我的面试官是个开辟主管框架方面的技术问的很少大部份都是根据问你

项目而延

伸的一些Sql,UML等问题简历的项目之中如果有快钱的项目要好好准备下对快钱的项目非常感

兴趣。主要问

题有以下

1.首先面试官自己自我介绍然后让你自我介绍。

2.哪家公司的哪年出生的哪年毕业的工作几年了这些问题都是在看你的回答是不是跟简历

不一样简

历有没有作假。回答一定不要考虑。

3.对于协力员工的看法

4.你的人生规划职业规划是怎么样的

5.对于项目加班有什么看法你加班的极限是多少

6.熟悉一个新框架需要多长期支付宝自己有个自己的框架

7.说出你认为对你影响最深的项目并说出原因.

8.Oracle中的分页Sql怎么写

9.简单地向一个不懂计算机的人说明一下java的多态。

10.说一下你知道的java设计模式。

11.struts,spring应用了哪写java设计模式

12.说下spring的代理模式画下spring代理模式的类图。

13.快钱的项目中所担当的模块根据你的问答就此展开一些问题。

14.宝钢物流的项目的入库那个模块在开辟中大致都用了哪些类哪些接口并画下UML图。

以上是主要的问题还有些问题都是根据你的回答延伸的。

1简单介绍自己

2根据你的介绍提问

3mvc开辟模式有哪些模式

4你的人生规划

5业余爱好

6最近所做的项目中除了你做的模块,还有哪些

7你都去过哪做项目

总结:根据面试官不同,他可能喜欢的人也不同,这个面试官喜欢做事有计划的

你对Java的集合框架了解吗能否说说常用的类

说说Hashtable与HashMap的区别源代码级别的区别呢

平时用过的Lis侑哪些除了ArrayLis^PLinkedLislArrayLis八PLinkedLis—区别

ArmyList八特点内部容器是如何扩充的

Properlies八的特点线程安全?

平时使用过的框架有哪些俄提到了Struts?)

请说一下Struts?的初始化和类的创建从源代码角度出发)

据你了解除了反射还有什么方式可以动态的创建对象我提到了CGLIB我以为他会

接着问

CGLIB,揪心中结果他没问

请说一下Stnils2是如何把Aciion交给Spring托管的它是单例的还是多例你们页面的表单

对象是多例还是单例

请说一下你们业务层对象是单例还是多例的

请说一下Struts2源代码中有哪些设计模式

请说一下你觉得你最熟悉的技术特点我提到了并发编程

请说一下线程安全浮现的原因

请说一下线程池的中断策略(4个)各有什么特点

请说一下Tomcal配置不同应用的不同端口如何配置如何配置数据源如何实现动态部署

请说一下Java常用的优化

你了解最新的Servlet规范吗简单说一下我提到了推

那请你说一卜“推”是如何实现的

线程安全下StringBuffeiAStringBuilde的区别它们是如何扩充内部数组容量的源

6.)

Java代码

1.inthash=(key==null)?0:hash(key.hashCode());

2.—

3.staticinthash(inth){

4.hA=(h»>20)A(h»>12);

5.returnhA(h»>7)A(h»>4);

6.(

Hashtable

Java代码

Linthash=key.hashCode();

Java代码

1.inthash=key.hashCode();

4.两者初始化容量大小不一致HashM叩内部为16*0.75,Hashtablc%11*0.75HashMap:

Java代码

1.staticfinalintDEFAULTJNITIAL.CAPACITY=16;

2.staticfinalfloatDEFAULT_LOAD_FACTOR=().75f;

3.publicHashMapO(

4.this.loadFactor=DEFAULT_LOAD_FACTOR;

5.threshold=(int)(DEFAULT_INITIAL_CAPACITY*DEFAULT_LOAD_FACTOR);6.

table=newEntryfDEFAULTJNITIAL-CAPACITY];

7.init();

8.}

9

Java代码

1.staticfinalintDEFAULTJNITIAL_CAPACITY=16;

2.staticfinalfloatDEFAULT_LOAD_FACTOR=0.75f;

3.publicHashMapO(

4.this.loadFactor=DEFAULT_LOAD_FACTOR;

5.threshold=(int)(DEFAULT_INITIAL_CAPACITY*DEFAULT_LOAD_FACTOR);

6.table=newEntry[DEFAU[T」NITIAL_CAPACITY];

7.init();

8.)

9

Hashtable:

Java代码

I.publicHashtablc()(

2.this(11,0.75f);

3.)

4.--

5.publicHashtable(intinitialcapacity,floatloadFactor)(

6..................................

7.this.loadFactor=loadFactor;

8.table=newEntry[initialCapacity];

9.threshold=(int)(initialCapacity*loadFactor);

10.)

Java代宿

1.publicHashtable(){

2.this(11,0.75f);

3.)

4.-——

5.publicHashtable(intinitialcapacity,floatloadFactor){

6..................................

7.this.loadFactor=loadFactor;

8.table=newEntry[initialCapacity];

9.threshold=(int)(initialcapacity*loadFactor);

10.)

其实后续的区别应该还有不少这里先列出4点。

平时除了ArrayLis和LinkcdList外还用过的List有哪些

ArrayLisAPLinkedListfA区别

事实上我用过的List主要就是这2个此外用过Vector.

ArrayLisAPLinkedListfA区别

1.亳无疑问第一点就是两者的内部数据结构不

同ArrayListrt部元素容器是一个Object的

数组

而LinkedLis内部实际上一个链表的数据结构其有一个内部类来表示链表.

Java代码

1.(ArrayLisi)

2.privatetransientObject]]elementData;

3.

3................................................................................................................................(LinkedList)

5.privatetransientEntry<E>header=newEntry<E>(null,nul链表kill);/

6.

7

r内部链表类.

fb.privatestaticclassEntry<E>(Eelement;/数据元素Entry<E>next;/前驱

Entry<E>previous;后驱

12.Entry(Eelement,Enlry〈E>next,Entry<E>previous)

(this.element=element;

13.this.next=next;this.previous=previous;

14.)

15.

16.代码

17.20.(ArrayList)

21.privatetransientObject]]elementData;

18.

22.

11i

2324.

25.(LinkedList)

26.privatetransientEntry<E>header=newEntry<E>(null,nul链表ull);/头

27.

27./内部链表类.

28.privatestaticclassEntry<E>(

29.Eelement微据元素

30.Entry<E>nexl;/前驱

31.Entry<E>previous;后驱

32.Entry(Eelement,Entry<E>next,Entry<E>previous)(

33.this,element=element;

34.this,next=next;

35.this,previous=previous;

36.1

37.|

2.两者的父类不同也就决定了两者的存储形式不

同。AnayLisiAfl承丁AbsliaulLis而LinkedList继承丁AbstractSequentialLisW者都实现了Lisi的

骨干结构只是前者的访问形式趋向于“随机访问”数据存储如数组后者趋向于“连续访问”数

据存储如链

接列表

Java代码

1.publicclassArrayList<E>extendsAbstractList<E>

2.

3.publicclassLinkedList<E>extendsAbstractSequentialList<E>

Java代码

4.publicclassArrayList<E>extendsAbstractList<E>

5.

6.publicclassLinkedList<E>extendsAbstractSequentialList<E>

3.再有就是两者的效率问题ArrayLis<于数组实现所以亳无疑问可以直

接用下标来索引

其索引数据快插入元素设计到数组元素挪移或者数组扩充所以插入元素要慢。LinkedList基于链

表结构插入元素只需要改变插入元素的先后项的指向即可故插入数据要快而索引元素需要向前向

后遍历所以索引元素要慢。ArrayLisH特点内部容器是如何扩充的上一点谈到了ArrayLisS特点这

里略重点来看其内部容器的扩充

Java代码24.

25.(LinkedList)

26.privatetransientEntry<E>header=newEnlry<E>(nul1,nul碾蕾11);/

27.

27./内部链表类.

28.privatesialicclassEnlry<E>{

29.Eelement澈据元素

30.Entry<E>next;/前驱

31.Entry<E>previous;启驱

32.Entry(Eelement,Entry<E>next,Entry<E>previous){

33.this,element=element;

34.this,next=next;

35.this,previous=previous;

36.}

37.|

2.两者的父类不同也就决定了两者的存储形式不同。AirayLisHfl承于AbslraclLis而LinkedList继

承于AbstraciSequemialLisffi者都实现了Lisi的骨干结构又是前者的访问形式趋向于“随机访问”

数据存储如数组后者趋向于“连续访问”数据存储如链接列表

Java代码

1.publicclassArrayList<E>extendsAbstractList<E>

2.

3.publicclassLinkcdList<E>extendsAbstractScqucntialList<E>Java代码

4.publicclassArrayList<E>extendsAbstractList<E>

5.

6.publicclassLinkcdList<E>extendsAbstractScquentialList<E>

3.再有就是两者的效率问题ArrayLisV于数组实现所以毫无疑问可以

直接用下标来索引其索引数据快插入元素设计到数组元素挪移或者数组扩充所以插入元素要慢。

LinkedLisi基于链表结构插入元素只需要改变插入元素的先后项的指向即可故插入数据要快而索

引元素需要向前向后遍历所以索引元素要慢。ArrayLisF特点内部容器是如何扩充的上一点谈到了

ArrayLisS特点这里略重点来看其内部容器的扩充

Java代码1.publicvoidensureCapacity(intminCapacity)

2.{modCount++;

3.intoldCapacity=elementData.length;

4.if(minCapacity>oldCapacity){ObjectoldDataf]=elementData;

5./炫里扩充的大小为原大小的大概60%

6.intnewCapacity=(oldCapacity*3)/2+1;if(newCapacity<

7.minCapacity)

8.newCapacity=minCapacity;

9./创建一个指定大小的新数组来覆盖原数组

10.elementData=Arrays,copyOf(elementData,newCapacity);

II.

12.

13.

Java代码

1.publicvoidensureCapacity(intminCapacity)

2.{modCount++;

3.intoldCapacity=elementData.length;if

4.

5(minCapacity>oldCapacity){ObjectoldData[]=elementData;

6:/炫里扩充的大小为原大小的大概60%

7.intnewCapacity=(oldCapacity*3)/2+1;if(newCapacity<minCapacity)

8.newCapacity=minCapacity;/包|建一个指定大小的新数组来覆盖原数组elementData=

9.Arrays.copyOf(elementData,newCapacity);

10.

11.}

12.Properlies八的特点线程安全吗?Properties继承于Hashlable,所以它是线程安全的.

13.其特点是:它表示的是一个持久的属性集它可以保存在流中或者者从流中加载属性列表的

每一个键和它所对应的值都是一个“字符串”其中常用的方法是load(方法从流中加载属性Java代

码throwsTOExce

ption{

〃将输入流转换成LineReader

Ioad0(ncwLineReader(inStrcam));

I

privatevoidloadO(LineReaderIr)throwslOExceplion(char[]convtBuf=newchar[1024];

intlimit;

intkeyLen;

intvalueStart;

charc;

booleanhasSep;

booleanpreccdingBackslash;

//一行行处理

while((limit=Ir.readLine())>=0){

c=0;

keyLen=0;

valueStart=limit;

hasSep=false;

preccdingBackslash=false;

〃下面用2个循环来处理key,value

while(keyLen<limit){

c=Ir.1ineBuf[keyLen];

//needcheckifescaped.

if((c==*-11c==':*)&&!preccdingBackslash){

valueStart=keyLen+1;

hasSep=true;

break;

)elseif((c==//IIc==//11c==/r)

&&JprecedingBackslash){

valueStart=keyLen+1;break;

}if(c==7\z)(

preccdingBackslash=!preccdingBackslash;

)else(

preccdingBackslash=false;

)

keyLen++;

)while(valueStart<limit){

c=Ir.1ineBuf[valueStartl;

if(c!=«&&c!=,'&&c!=,'){

if(IhasSep&&(c=='-\\c=={hasSep=true;

}else{

break;

)

}vaIueStart++;

Stringkey=loadConvcrt(Ir.lincBuf,0,keyLen,convtBuf);

Stringvalue=loadConvert(Ir.1ineBuf,valueStart,limit-valueStart,convtBuf);

〃存入内部容器中这里用的是Hashtablc内部的方法.value);put(key,

)

}</SPAN>

Java代码throwslOException{

〃将输入流转换成LineReaderIoad0(newLineReader(inStream));

}

privatevoidloadO(LineReaderIr)throwslOException{char[]convtBuf=newchar[1024];

int1imit;

intkeyLen;

intvalueStart;

charc;

booleanhasSep;

booleanprecedingBackslash;

〃一行一行处理

while((limit=Ir.readLine())>=0){

c=0;

keyLen=0;valueStart=limit;

hasScp=false;prcccdingBackslash=false;

〃下面用2个循环来处理key,valuewhile(keyLen<limit)

c=Ir.1ineRuf[keyT.en];

//needcheckifescaped.

if((c==r=rIIc==7:7)&&JprecedingBackslash){

valueStart=keyLen+1;

hasScp=true;

break;

}elseif((c==''11c==1'11c=='*)&&!prcccdingBackslash){

valueStart=keyLen+1;break;

)

if(c=='V){

prcccdingBackslash=!prcccdingBackslash;}else(

prcccdingBackslash=false;

1

keyLen++;

}while(valueStart<limit){

c=Ir.lineBuf[valueStart];

if(c!=■&&c!=,'&&c!=,'){if(IhasSep&&(c=='-\\c==":*)){hasSep=

true;

}else{break;

}

)

valueStart++;

)

Stringkey=loadConvert(Ir.lineBuf,0,keyLen,convtBuf);Stringvalue=loadConvert(Ir.

lineBuf,valueStart,limit-valueStart,convtBuf);

〃存入内部容器中这里用的是Hashlable内部的方法.

put(key,value);

)

|</SPAN>LineReader是Properties内部的类Java代码

publicLineReader(InputStreaminStream)(this.inStream=inStream;

inBytcBuf=newbyte[8192];

)

publicLineReader(Readerreader){

this,reader=reader;inCharBuf=newchar[81921;

)

byte[]inByteBuf;

char[]inCharBuf;

char[]1ineBuf=newchar[1024];

intinLimil=0;

intinOff=0;

InputStreaminStream;

Readerreader;

/**

*读取一行

*

*Areturn

*AthrowslOException

*/

intreadLine()throwslOException{

intlen=0;

charc=0;booleanskipWhitcSpacc=true;座白booleanisCommcntLinc=false;/yt#

booleanisNewLine=true;扉否新行.booleanappendedLineBegin=false;,加至行开始

booleanprcccdingBackslash=false;反斜杠booleanskipLF=false;

while(true){

if(inOff>=inLimit){〃从输入流中读取一定数量的字

节并将其存储在缓冲区数组inCharBuf/inByteBu。,这里区分字节流和字符流

inLimit=(inStream==null)?reader,read(inCharBuf):inStream,read(inByteBuf);

inOff=0;〃读取到的为空.if(inLimil<=0){

if(len==011isCommentLine){

return-1;

)

returnlen;

I

}

if(inStream!=null){

〃山于是字节流需要使用ISO8859-1来解码

c=(char)(Oxff&inByteBuf[inOff++]);

)else{

c=inCharBuf[inOff+4-];

)

if(skipLF){

skipLF=false;

if(c==")(

continue;

}if(skipWhiteSpace)(

if(c=■11c=,,11c==,0(continue;

}

if(iappendedLineBegin&&(c=,'11c==z,)){continue;

}

skipWhiteSpace=false;appendedLineBegin=false;

)

if(isNewLine)(isNewLine=false;

if(c==,#,IIc==,!,){〃注释行忽略.

isCommentLine=true;continue;

)

I

〃读取真正的属性内容

if(c!=»,&&c!=»,){

〃这里类似于ArrayList内部的容量扩充使用字符数组来保存读取的内容.

lineBufflen4-+]=c;

if(len==lincBuf.length){

intnewLength=lineBuf.length*2;

if(newLcngth<0){newLength=Integcr.MAX_VALUE;)

char[]buf=newcharfnewLengthl;

System.arraycopy(lincBuf,0,buf,0,lineBuf.length);lincBuf=buf;

)

if(c==1V){prcccdingBackslash=JprcccdingBackslash;

}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[newLcngthJ;System.arraycopy(lincBuf,0,buf,0,

lineBuf.length);lineBuf=buf;

if(c=='V)(

precedingBackslash='precedingBackslash;

)else(prcccdingBackslash=false;

)

}else(

//reachedEOL文件结束

if(isCommentLine||len==0)(

isCommentLine=false;

isNewLine=true;

skipWhiteSpace=true;

len=0;

continue;

1

if(inOff>=inLimit)(

inLimit=(inStream==null)?

reader.read(inCharBuf):inStream.read(inByteBuf);

inOff=0;

if(inLimit<=0)(

returnlen;

))

if(precedingBackslash)(

len-=I;

skipWhiteSpace=true;

appcndcdLincBcgin=true;precedingBackslash=false;if(c==''){skipLF

true;

)

}else{

returnlen;

}

)

)

)

}</SPAN>

Java代码

publicLineReader(InputStreaminSlream){

this.inStream=inStream;

inByteBuf=newbyte[8192];

)

publicLineReader(Readerreader){

this.reader=reader;

inCharBuf=newchar[8192];}

bytc[]inByteBuf;

charf]inCharBuf;

char[]lincBuf=newchar[1024J;

intinLimit=0;

intinOff=0;

InputStreaminStream;

Readerreader;

/**

*读取一行

*

*Areturn

*八throwslOExccption

*/

intreadLine()throwslOException{

intlen=0;

charc=0;

booleanskipWhiteSpace=true;座白booleanisCommcntLinc=false;/yt#boolean

isNewLine-true;扉否新行.

booleanappendedLineBegin=false;/力口至行开始booleanprecedingBackslash=false;反

斜杠booleanskipLF=false;

while(true){if(inOff>=inLimit){

//从输入流中读取一定数量的字节并将其存储在缓冲区数组inCharBuf/

inByteBuf9这里区分字节流和字符流

inLimit=(inStream==null)?reader,read(inCharBuf)

:inStream,read(inByteBuf);

inOff=0;

〃读取到的为空.

if(inLimit<=0){

if(len==011isCommentLine){

return-1;

)

returnlen;

if(inStream!=null){

〃山于是字节流需要使用ISO8859-1来解码

c=(char)(Oxff&inByteBuf[inOff++]);

}else{

c=inCharBuf[inOff++];

)

if(skipLF){

skipLF=false;

if(c==,,){continue;

}}if(skipWhiteSpace){if(c==■11c==,,11c==,O(continue;

)

if(!appendedLineBegin&&(c==',11c==zz))(continue;

)

skipWhiteSpace=false;appendedLineBegin=false;

)

if(isNewLine)|

isNewLine=false;

if(c==,#,11c==,!,){〃注释行忽略.

isCommentLine=true;continue;

}

)

〃读取真正的属性内容

if(c!=,,&&c!=,,){

〃这里类似于ArrayLisl内部的容量扩充使用字符数组来保存读取的内容.

lineBuf[len++]=c;

if(len==lineBuf.length){

int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论