中科软面试题Word文档格式.docx
- 文档编号:6477604
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:13
- 大小:23.56KB
中科软面试题Word文档格式.docx
《中科软面试题Word文档格式.docx》由会员分享,可在线阅读,更多相关《中科软面试题Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
它是在Object类中定义的,因此所有的类都继承了它。
子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。
finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
7.sleep()和wait()有什么区别?
sleep()方法是使线程停止一段时间的方法。
在sleep时间间隔期满后,线程不一定立即恢复执行。
这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)"
醒来"
的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
8.Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?
override是方法重载,用在同一个类中,是几个方法的名字相同,返回值相同,但是参数列表不同,举例来说就像构造函数,可以后多个构造函数,并且每个的参数列表都不同,这样可以用多种方式构造对象。
overload是方法覆盖,用在父子类中,是方法名字相同,参数列表也相同,声明形式都相同,但是子类方法的权限不允许小于父类,不允许抛出比父类更多的异常。
调用子类的方法与父类的同名方法无关,在子类中完全覆盖了父类的方法。
9.同步和异步有何异同,在什么情况下分别使用他们?
举例说明。
如果数据将在线程间共享。
例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
10.abstractclass和interface有什么区别?
11.forward和redirect的区别
12.EJB与JAVABEAN的区别?
13.JSP中动态INCLUDE与静态INCLUDE的区别?
14.什么时候用assert
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。
如果表达式计算为false,那么系统会报告一个Assertionerror。
它用于调试目的:
assert(a>
0);
//throwsanAssertionerrorifa<
=0
断言可以有两种形式:
assertExpression1;
assertExpression1:
Expression2;
Expression1应该总是产生一个布尔值。
Expression2可以是得出一个值的任意表达式。
这个值用于生成显示更多调试信息的String消息。
断言在默认情况下是禁用的。
要在编译时启用断言,需要使用source1.4标记:
javac-source1.4Test.java
要在运行时启用断言,可使用-enableassertions或者-ea标记。
要在运行时选择禁用断言,可使用-da或者-disableassertions标记。
要系统类中启用断言,可使用-esa或者-dsa标记。
还可以在包的基础上启用或者禁用断言。
可以在预计正常情况下不会到达的任何位置上放置断言。
断言可以用于验证传递给私有方法的参数。
不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。
不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。
另外,断言不应该以任何方式改变程序的状态。
15.应用服务器有那些?
16.接口是否可继承接口?
抽象类是否可实现(implements)接口?
抽象类是否可继承实体类(concreteclass)?
接口可以继承接口。
抽象类可以实现(implements)接口。
抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。
17.说出数据连接池的工作机制是什么?
18.分页是我们在做项目的时候经常会遇到的技术点之一,分页技术从设计的角度考虑主要分为两大类:
1.基于缓存的分页实现
2.基于数据库查询的分页实现
两者在使用上各有优缺点:
第1种实现方式将数据库中的所有符合要求的数据一次性装入内存,然后通过List的sublist方法进行分页,优点在于不必频繁访问数据库,缺点是当数据量非常大的时候,对内存配置的要求比较高.
第2种实现方式是通过数据库的限制条件,每次查询一定数目的数据,如通过oracle中的rownum加上where限制条件.优点在于每次取出一定数目的数据,内存使用较小,缺点是需要频繁的访问数据库.
下面借用网上的一个示例说明:
19.JAVA中文乱码解决方案
20.表单提交中get和post方式的区别
1.get是从服务器上获取数据,post是向服务器传送数据。
2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。
post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTMLHEADER内一起传送到ACTION属性所指的URL地址。
用户看不到这个过程。
3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4.get传送的数据量较小,不能大于2KB。
post传送的数据量较大,一般被默认为不受限制。
但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5.get安全性非常低,post安全性较高。
21.String常用的函数
char
charAt(int
index)
返回指定索引处的
值。
int
compareTo(StringanotherString)
按字典顺序比较两个字符串。
compareToIgnoreCase(Stringstr)
不考虑大小写,按字典顺序比较两个字符串。
Stringconcat(Stringstr)
将指定字符串联到此字符串的结尾。
static
StringcopyValueOf(char[]data)
返回指定数组中表示该字符序列的字符串。
StringcopyValueOf(char[]data,
offset,
count)
boolean
endsWith(Stringsuffix)
测试此字符串是否以指定的后缀结束。
equals(ObjectanObject)
比较此字符串与指定的对象。
equalsIgnoreCase(StringanotherString)
将此String与另一个String进行比较,不考虑大小写。
indexOf(int
ch)
返回指定字符在此字符串中第一次出现处的索引。
ch,
fromIndex)
从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引。
indexOf(Stringstr)
返回第一次出现的指定子字符串在此字符串中的索引。
indexOf(Stringstr,
从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
Stringintern()
返回字符串对象的规范化表示形式。
lastIndexOf(int
返回最后一次出现的指定字符在此字符串中的索引。
从指定的索引处开始进行后向搜索,返回最后一次出现的指定字符在此字符串中的索引。
lastIndexOf(Stringstr)
返回在此字符串中最右边出现的指定子字符串的索引。
lastIndexOf(Stringstr,
从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引
length()
返回此字符串的长度。
Stringreplace(char
oldChar,
newChar)
返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar而生成的。
startsWith(Stringprefix)
测试此字符串是否以指定的前缀开始。
startsWith(Stringprefix,
toffset)
测试此字符串是否以指定前缀开始,该前缀以指定索引开始。
Stringsubstring(int
beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。
beginIndex,
endIndex)
返回一个新字符串,它是此字符串的一个子字符串。
char[]toCharArray()
将此字符串转换为一个新的字符数组。
StringtoLowerCase()
使用默认语言环境的规则将此String中的所有字符都转换为小写。
StringtoLowerCase(Localelocale)
使用给定Locale的规则将此String中的所有字符都转换为小写。
StringtoUpperCase()
使用默认语言环境的规则将此String中的所有字符都转换为大写。
Stringtrim()
返回字符串的副本,忽略前导空白和尾部空白。
StringvalueOf(boolean
b)
返回
参数的字符串表示形式。
StringvalueOf(char
c)
参数的字符串表示形式
StringvalueOf(char[]data)
数组参数的字符串表示形式。
StringvalueOf(char[]data,
数组参数的特定子数组的字符串表示形式。
StringvalueOf(double
d)
double
StringvalueOf(float
f)
float
StringvalueOf(int
i)
StringvalueOf(long
l)
long
StringvalueOf(Objectobj)
返回Object参数的字符串表示形式。
22.struts原理
23.page、request、session、application作用域
page在当前页面有效(仅用于JSP中)
request在当前请求中有效
session在当前会话中有效
application在所有应用程序中有效
24.解释spring,struts,hibernate优缺点
Struts优点:
对视图层进行封装更好的分离视图层和控制层对数据进行封装
缺点:
1、转到展示层时,需要配置forward,每一次转到展示层,相信大多数都是直接转到jsp,而涉及到转向,需要配置forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录、文件变更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器,如果业务变更复杂频繁的系统,这样的操作简单不可想象。
现在就是这样,几十上百个人同时在线使用我们的系统,大家可以想象一下,我的烦恼有多大。
2、Struts的Action必需是thread-safe方式,它仅仅允许一个实例去处理所有的请求。
所以action用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。
3、测试不方便.Struts的每个Action都同Web层耦合在一起,这样它的测试依赖于Web容器,单元测试也很难实现。
不过有一个Junit的扩展工具StrutsTestCase可以实现它的单元测试。
4、类型的转换.Struts的FormBean把所有的数据都作为String类型,它可以使用工具Commons-Beanutils进行类型转化。
但它的转化都是在Class级别,而且转化的类型是不可配置的。
类型转化时的错误信息返回给用户也是非常困难的。
5、对Servlet的依赖性过强.Struts处理Action时必需要依赖ServletRequest和ServletResponse,所有它摆脱不了Servlet容器。
6、前端表达式语言方面.Struts集成了JSTL,所以它主要使用JSTL的表达式语言来获取数据。
可是JSTL的表达式语言在Collection和索引属性方面处理显得很弱。
7、对Action执行的控制困难.Struts创建一个Action,如果想控制它的执行顺序将会非常困难。
甚至你要重新去写Servlet来实现你的这个功能需求。
8、对Action执行前和后的处理.Struts处理Action的时候是基于class的hierarchies,很难在action处理前和后进行操作。
9、对事件支持不够.在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:
在Struts中实际是一个表单只能对应一个事件,struts这种事件方式称为applicationevent,applicationevent和componentevent相比是一种粗粒度的事件。
Spring优点:
用依赖注入模式大幅度的减少了程序之间的耦合性并很好的实现了各种JAVA的设计模式强制使用者养成用接口编程的习惯
使用人数不多、jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器
Hibernate:
用操作对象的方式操作数据库将对数据库的操作面向对象化并对一些数据库操作进行了封装
它限制您所使用的对象模型。
(例如,一个持久性类不能映射到多个表)其独有的界面和可怜的市场份额也让人不安,尽管如此,Hibernate还是以其强大的发展动力减轻了这些风险。
其他的开源持久性框架也有一些,不过都没有Hibernate这样有市场冲击力。
25.文件上传原理
最基本的过程是:
1客户端连接一个主机;
2服务器接收连接,
3客户端请求一个文件,
4服务器发送一个应答.
26.几种排序方式,写出快速排序
27.jdbc中PreparedStatment与Statement区别
如果一个sql语句很复杂,包含多条SQL语句的话,PreparedSatement与Statement之间的执行会有区别。
PreparedStatment是预编译的语句,如果用非批处理方法如:
execute(),executeQuery()方法是不正确的,会出现Exception。
但是,利用Statement可以执行成功,看来,这也是PreparedStatment和Statement语句的区别吧
28.Collection与Collections区别
29.说明Collection的framework机制
30.写单例模式
单例模式的实现代码如下:
namespaceSinglePattern
{
publicclassSingleClass
{
privatestaticSingleClassinstance;
protectedSingleClass(){}
publicstaticSingleClassGetInstance()
if(instance==null)
instance=newSingleClass();
}
returninstance;
}
上面的代码,可以说是一个标准的单例的代码,但是上述代码在多线程的时候有可能会产生多个实例,为了避免这个情况的发生,我们需要限制同一时间,只能有一个线程访问。
利用lock可以实现我们的目的:
//静态变量
//"
锁"
变量
privatestaticobjectlockObject=newobjest();
//受保护的构造函数
//静态获取对象的方法
lock(lockObject)
if(instance==null)
31.求n的阶乘
publicclassTest{
publicstaticvoidmain(String[]args){
intsum=0;
for(inti=1;
i<
=7;
i++)
sum+=factorial(i);
System.out.println(sum);
//求阶乘方法
publicstaticintfactorial(intnum){
intresult=1;
=num;
result*=i;
returnresult;
32.xml有哪些解析技术?
区别是什么?
33.分别写出几种不同数据库的连接语句,还有给几张表,写查询
1、Oracle8/8i/9i数据库(th
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中科软面 试题
![提示](https://static.bingdoc.com/images/bang_tan.gif)