亚信联创面试题及答案.docx
《亚信联创面试题及答案.docx》由会员分享,可在线阅读,更多相关《亚信联创面试题及答案.docx(6页珍藏版)》请在冰豆网上搜索。
亚信联创面试题及答案
Thesuccessofanenterprisedependsontheteam,notontheindividual.悉心整理 祝您一臂之力(WORD文档/A4打印/可编辑/页眉可删)
亚信联创面试题及答案
1.VectorArrayList
1)Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。
2)当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。
2jsp内置对象:
request用户端请求,此请求会包含来自GET/POST请求的参数
response网页传回用户端的回应包含了响应客户请求的有关信息
pageContext网页的属性是在这里管理页面上下文对象提供了对JSP页面内所有的对象及名字空间的访问
session与请求有关的会话期,主要用于跟踪对话用来保存客户端状态信息此对象代表服务器与客户端所建立的会话
applicationservlet应用程序对象负责提供应用程序在服务器中运行时的一些全局信息application对象实现了用户间数据的共享,可存放全局变量。
它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作
out用来传送回应的输出输出对象
config配置对象提供一些配置信息
pageJSP网页本身页面对象代表了正在运行的由JSP文件产生的类对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象
Java内存溢出
原因有很多种,比如:
1.数据量过于庞大;死循环;静态变量和静态方法过多;递归;无法确定是否被引用的对象;
2.虚拟机不回收内存(内存泄漏);
说白了就是程序运行要用到的内存大于虚拟机能提供的最大内存就发生内存溢出了。
内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存
Java异常处理机制
1.Java程序在执行过程中如果出现了异常,会生成一个异常对象
2.这个异常对象会被交给java运行时环境(jre),这一提交过程被称为抛出(throw)异常
3.当jre得到一个异常对象时,它会寻找能处理这一异常的代码。
找到能处理这一异常的方法后,jre会把这一异常对象交给这个方法进行处理,这一过程被称为异常捕获
4.如果gre找不到可以捕获异常的方法,则jre将终止,相应的java程序也将退出
C++中的虚函数和纯虚函数用法象这样定义的就是纯虚函数virtualvoid
f(void)=0;象这样的就是虚函virtualvoidf(void);1.虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstractclass),而只含有虚函数的类(class)不能被称为抽象类(abstractclass)。
2.虚函数可以被直接使用,也可以被子类(subclass)重载以后以多态的'形式调用,而纯虚函数必须在子类(subclass)中实现该函数才可以使用,因为纯虚函数在基类(baseclass)只有声明而没有定义。
3.虚函数和纯虚函数都可以在子类(subclass)中被重载,以多态的形式被调用。
4.虚函数和纯虚函数通常存在于抽象基类(abstractbaseclass-ABC)之中,被继承的子类重载,目的是提供一个统一的接口。
…
5.虚函数的定义形式:
virtual{methodbody}
纯虚函数的定义形式:
virtual{}=0;
在虚函数和纯虚函数的定义中不能有static标识符,原因很简单,被static修饰的函数在编译时候要求前期bind,然而虚函数却是动态绑定(run-timebind),而且被两者修饰的函数生命周期(liferecycle)也不一样。
6.如果一个类中含有纯虚函数,那么任何试图对该类进行实例化的语句都将导致错误的产生,因为抽象基类(ABC)是不能被直接调用的。
必须被子类继承重载以后,根据要求调用其子类的方法
Sizeof简单的说其作
用就是返回一个对象或者类型所占的内存字节数。
sizeof有三种语法形式,如下:
1)sizeof(object);//sizeof(对象);
2)sizeof(type_name);//sizeof(类型);
3)sizeofobject;//sizeof对象;
“protected”修饰的方法和属性对于包外的子类是可见的
1.公共访问控制符public:
如果一个类被声明为公共类,表明它可以被所有的其
它类所访问和引用。
用public修饰的类的域称为公共域。
如果公共域属于一个公共类,则它可以被所有的其他类所引用。
2.私有访问控制符private:
用private修饰的成员变量(域)只能被该类自身所访
问,而不能被任何其它类(包括子类)所引用。
3.保护访问控制符protected:
用protected修饰的成员变量可以被三种类所引用:
该类自身;与它在同一个包中的其它类;在其它包中的该类的子类。
使用修饰符protected的主要作用是允许其它包中它的子类来访问父类的特定属性。
C++异常处理机制
.其强大的能力表现在:
A.把可能出现异常的代码和异常处理代码隔离开,结构更清晰.
B.把内层错误的处理直接转移到适当的外层来处理,化简了处理
流程.传统的手段是通过一层层返回错误码把错误处理转移到
上层,上层再转移到上上层,当层数过多时将需要非常多的判断,
以采取适当的策略.
C.局部出现异常时,在执行处理代码之前,会执行堆栈回退,即为
所有局部对象调用析构函数,保证局部对象行为良好.
D.可以在出现异常时保证不产生内存泄漏.通过适当的try,catch
布局,可以保证deletepobj;一定被执行.
E.在出现异常时,能够获取异常的信息,指出异常原因.
并可以给用户优雅的提示.
F.可以在处理块中尝试错误恢复.保证程序几乎不会崩溃.
通过适当处理,即使出现除0异常,内存访问违例,也能
让程序不崩溃,继续运行,这种能力在某些情况下及其重要.
在Java语言中,static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,
被static修饰的成员变量和成员方法独立于该类的任何对象。
也就是说,它不依赖类特定的实例,被类的所有实例共享
01publicstaticintsearchRecursively(int[]data,intkey){
03if(data==null||data.length1)
05return-1;
07returndoSearchRecursively(data,0,data.length-1,key);
09}
12privatestaticintdoSearchRecursively(int[]data,intlow,inthigh,intkey){
14if(lowhigh)
16return-1;
18intmid=(low+high)/2;
20if(keydata[mid]){
22returndoSearchRecursively(data,low,mid-1,key);
24}elseif(keydata[mid]){
26returndoSearchRecursively(data,mid+1,high,key);
27
28}else{
30returnmid;
1HashMap不是线程安全的
2HashTable是线程安全的
HashMap完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。
因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Mapinterf-ace的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。
在jsp中include有两种形式,分别是Include指令:
%@includefile=""%和include动作:
两者最重要的区别:
JSP指令%@includefile=""%,是将被引入的JSP与原JSP融合到一起,而这个融合过程是在翻译阶段进行的
jsp页面是把include指令元素(%@includefile=""%)所指定的页面的实际内容(也就是代码段)加入到引入它的jsp页面中,合成一个文件后被jsp容器将它转化成servlet。
可以看到这时会产生一个临时class文件和一个servlet源文件。
而动作元素()是在请求处理阶段引入的,会被JSP容器生成两个临时class文件和两个servlet原文件。
而引入的只是servlet的输出结果,即JspWriter对象的输出结果,而不是jsp的源代码。
SESSION传值
如果是要利用SESSION将2.jsp传到1.jsp,要保证1.jsp和2.jsp在一个会话期(即同在1个session),只要用超连接的形式到1.jsp即可.如果是要提交表单的话,你form里的action属性要是post方式,即
.在2.jsp里写setAttribute,1.jsp写getAttribute是绝对没有问题的.
亚信联创面试题总结
1、struts2,spring,xml,js,hibernate缓存方面的问题
2、java的垃圾回收机制最简单的让我说一个
4、线程和多线程
5、JAVA调用数据库的过程
6、简单的模式,策略(单例模式,策略,工厂之类)
7、数据库的知识
8、简单的Java编程(如:
简单递归)要运用递归,就必须满足
(1).原问题可以层层转化为规模越来越小的子问题
(2).对于规模足够小的问题,能够直接得解
9、软件生命周期这个概念
10、ssh
11、spring有哪些作用
12、strut2的内部逻辑、spring的注入方式、用过哪些io接口
13、内部类,异常,多态的考得很多,编程题乘法口诀表,还有输入一段字符串,输出字母个数,数字个数,空格个数,特殊字符个数,就这两道
14、Java的集合,内存管理,线程
15、缓存机制
16、MVC原理,J2EE,如何优化数据库