j2EE经典面试题JAVA之迷

1.hibernate中离线查询去除重复项怎么加条件?

dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

smtp:简单邮件传输协议端口25

3.编写程序,完成文件复制功能

4.Servlet创建过程及生命周期Servlet在容器中运行时,其实例的创建及销毁等是由容器进行控制。

Servlet的创建有两种方法。

1).客户端请求对应的Servlet时,创建Servlet实例;大部分Servlet都是这种Servlet。

2).通过在web.xml中设置load-on-startup来创建servlet实例,这种实例在Web应用启动时,立即创建Servlet实例

Servlet的运行都遵循如下生命周期:

1).创建Servlet实例。

2).Web容器调用Servlet的init()方法,对Servlet进行初始化。

3).Servlet初始化后,将一直存在于容器中,用于响应客户端请求。根据客户端的请求方式通过Servlet中service()方法去相应的doXXX()方法;

4).Web容器销毁Servlet时,调用Servlet的destroy()方法,通常在关闭Web容器之时销毁Servlet。

5.用sql语句分页:

Mysql数据库:

查询第3-5条记录

select*fromstulimit2,3;

(说明:limitn,m表示区间查询,N表示从第几条开始,M表示要返回的记录条数。第3-5条记录,是从第二条记录开如,故N为2;3-5之间有3条记录,所以是从第2要记录开始,返回3条记录,返回的正是3-5条记录。)

Sqlserver数据库:

SELECTTOP页大小*FROMtable1WHEREidNOTIN(SELECTTOP页大小*(页数-1)idFROMtable1ORDERBYid)ORDERBYid

selecttop3*fromTDJYXXwhererecidnotin(

selecttop((2-1)*3)recidfromTDJYXXorderbyrecid

)orderbyrecid

Oracle数据库:

在ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。

截取ID的方法

select*fromempa,(selectempno,rownumasnumfromemp)bwherea.empno=b.empnoandb.numbetween5and7;

三层嵌套

SELECT*FROM(SELECTA.*,rownumrFROM(SELECT*FROMemp)AWHERErownum<=7)BWHEREr>5);

6.list.map.set的存储特点

List以特定次序来持有元素,可有重复元素.

Set无法拥有重复元素,内部排序.

Map保存key-value值,value可多值

7.final,finally,finaliz的区别

final—修饰符(关键字)

finally—再异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。

finalize—方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖;finalize()方法以整理系统资源或者执行其他清理工作finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

8.arraylist和vector的区别1).同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程不安全的,不是同步的

2).数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半

9.说出ArrayList,Vector,LinkedList的存储性能和特性?

1).ArrayList采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦LinkedList采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引但是缺点就是查找非常麻烦要丛第一个索引开始

2).ArrayList和Vector都是用数组方式存储数据,此数组元素数要大于实际的存储空间以便进行元素增加和插入操作,他们都允许直接用序号索引元素,但是插入数据元素涉及到元素移动等内存操作,所以查询数据快而插入数据慢.

3).Vector使用了sychronized方法(线程安全),所以在性能上比ArrayList要差些.

4).LinkedList使用双向链表方式存储数据,按序号索引数据需要前向或后向遍历数据,所以查询数据慢,是插入数据时只需要记录前后项即可,所以插入的速度快.

10.HASHMAP,HASHTABLE区别

1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;

2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。

3.在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。

11..描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理

session工作原理

(1)当有Session启动时,服务器生成一个唯一值,称为SessionID(好像是通过取进程ID的方式取得的)。

(2)然后,服务器开辟一块内存,对应于该SessionID。

(3)服务器再将该SessionID写入浏览器的cookie。

(4)服务器内有一进程,监视所有Session的活动状况,如果有Session超时或是主动关闭,服务器就释放改内存块。

(5)当浏览器连入IIS时并请求的ASP内用到Session时,IIS就读浏览器Cookie中的SessionID。

(6)然后,服务检查该SessionID所对应的内存是否有效。

(7)如果有效,就读出内存中的值。

(8)如果无效,就建立新的Session。

12.String和stringbuffer进行字符串连接时的区别?

String对项内容是不可改变的,StringBuffer是可以改变的,且高效;

13.什么叫项目?

14..J2EEJ是什么意思?2是什么意思EE是什么意思?Struts的拦截器你是怎么做的,是独立开发的,能够独立开发的到。然后问有哪几种拦截?

Java2Platform,EnterpriseEdition

继承AbstractInterceptor类,覆盖intercept()方法

有struts自己的拦截器如timer,i18n,scop,servletconfig,token

还有自定义拦截器

15.简单介绍下java?Spring的AOP,IOC的讲述对struts2的了解,1,2的比较xml的了解J2ee的webserviced的协议?

SpringAOP:代理机制Spring提供的自动代理机制

Spring的IoC来实组件之间的依赖关系注入,使控制层与业务实现分离,即客户通过

调用业务委托接口来调用具体的业务组件的实例,避免控制层与业务层的藕合带来的维护

或升级困难。由Spring为DAO生成代理对象来为DAO添加事务服务,由IoC容器DAO的代理实例注入到业务组件中,业务组件通过DAO的委托接口调用DAO对象,使得上层组件不直接依赖于DAO的实现类,使得持久层更换或修改不影响上层组件。

16.Collections,collection的区别

Collection是个java.util下的接口,它是各种集合结构的父接口。Collections是个java.util下的普通类,它包含有各种有关集合操作的静态方法。Collections是针对集合类的一个帮助类,它提供一系列的静态方法实现对各种集合的搜索,排序,线程安全化等操作

17.如何释放过度使用的undo表空间

18.数据库里面游标,索引是怎么用的?在oracle数据库中,用get和load方法这2个方法来查没有的数据那么分别会反馈什么样的结果?

declarecurcursorkeysetfor

get返回null,loadclassnotfoundException

19..在Oracle中数据库中的一个表中,这个表没有主键id也没有特定标示来查数据,怎么查?

rowid

20.简述private、proteced、public、internal修饰符的访问权限

同一个类同一个包不同包的子类不同包非子类private*default**protected***public****

21.概述反射和序列化

Reflection是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过ReflectionAPIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public,static等等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods。本文借由实例,大面积示范ReflectionAPIs。

22.序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Objectobj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流

23.ORACLE中not和and和or优先级由高到低?

notandor

24.java是如何进行异常处理的

Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理

25.struts2必备包

commons-fileupload-1.2.1.jar

freemarker-2.3.13.jar

ognl-2.6.11.jar

struts2-core-2.1.6.jar

xwork-2.1.2.jar

26.dao是什么及作用

dao是数据访问对象DAO负责管理与数据源的连接来获取和储存其中的数据

27.ibatis中的#与$的区别

在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如:

select*fromtablewhereid=#id#,其中如果字段id为字符型,那么#id#表示的就是'id'类型,如果id为整型,那么#id#就是id类型。

select*fromtablewhereid=$id$,如果字段id为整型,Sql语句就不会出错,但是如果字段id为字符型,那么Sql语句应该写成select*fromtablewhereid='$id$'

28.struts的实现原理

1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求

2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMeshPlugin);

3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action;

4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy;

5、ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类;

6、ActionProxy创建一个ActionInvocation的实例。

8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2框架中继承的标签。在这个过程中需要涉及到ActionMapper

29.简述spring的事务传播行为和隔离级别

spring的事务传播行为:Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:

PROPAGATION_REQUIRED:(propagation_required)如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。

PROPAGATION_SUPPORTS:(propagation_supports)支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY:(propagation_mandatory)使用当前的事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW:(propagation_requires_new)新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED:(propagation_not_supported)以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER:(propagation_enver)以非事务方式执行,如果当前存在事务,则抛出异常。

PROPAGATION_NESTED:(propagation_ensted)如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。

Spring的隔离级别

1、Serializable:最严格的级别,事务串行执行,资源消耗最大;

2、REPEATABLEREAD:(repeatableread)保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但是带来了更多的性能损失。

3、READCOMMITTED:大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并行事务已修改但未提交的数据,避免了“脏读取”。该级别适用于大多数系统。

4、ReadUncommitted:保证了读取过程中不会读取到非法数据。

30.写一段把本地文件formfile拷贝到本地文件tofile的程序

publicclassChangeJtdToJava{

publicstaticvoidmain(String[]args){

Filedir=newFile("f:/jtd");

//得到d:/jtd下的所有文件对象

File[]files=dir.listFiles();

for(Filefile:files){

StringfileName=file.getName();//得到文件名

intindex=fileName.indexOf(".");//.的索引位置

StringfileName2=fileName.substring(0,index);//不带后缀名的文件名

StringhouZui=fileName.substrinxg(index);

if(houZui.equals(".jtd")){

//"f:/java/"+fileName2+".java"

//要移到的地方

file.renameTo(newFile("f:/java/"+fileName2+".java"));

}

31.写出删除表中重复记录的语句oracle

deletefrompeople

wherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleIdhavingcount(peopleId)>1)androwidnotin(selectmin(rowid)frompeoplegroupby

32.java类实现序列化的方法(二种)?如在collection框架中,要实现什么样的接口

java.io.Serializable接口

Collection框架中实现比较要实现Comparable接口和Comparator接口

33.Struts2实现拦截器的原理?

实现原理:Struts2拦截器是在访问某个Action或Action的某个方法、字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现。当请求struts2的action时,Struts2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器。

34.sleep()和wait()区别

35.Servlet的生命周期分为3个阶段:和CGI的区别?

Servlet的生命周期主要由3个过程组成。

(1)init()方法:服务器初始化servlet。

(2)service()方法:初始化完毕,servlet对象调用该方法响应客户的请求。

(3)destroy()方法:调用该方法消灭servlet对象。

其中,init()方法只在servlet第一次被请求加载的时候被调用一次,当有客户再请求servlet服务时,web服务器将启动一个新的线程,在该线程中,调用service方法响应客户的请求。

与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

36.forward与redirect的区别有哪些方式实现

1).重定向后url地址栏地址不变还是原来的地址;而response.sendRedirect()重定向后url地址栏地址显示的请求后的新地址。

2).重定向的时候可以保存回话信息,因此可以使用request来进行参数传递,在新页面可以使用request.getAttribute()来得到参数。而response.sendRedirect()不支持此通过request进行参数传递。它唯一的传值方式为response.sendRedirect(“example.jspaa=123”),在新的页面通过request.getParameter(“aa”)来得到参数值

37.多线程、同步实现方法?

1)实现线程有两种方法:继承Thread类或者实现Runnable接口

2)实现同步也有两种,一种是用同步方法,一种是用同步块..同步方法就是在方法返回类型后面加上synchronized,比如:

publicvoidsynchronizedadd(){...}

同步块就是直接写:synchronized(这里写需要同步的对象){...}

38.集合类有哪些?有哪些方法?

集合类ArrayListLinkedListHashSetHashMap

方法:add(),remove(),put(),addAll(),removeAll()

39.java中实现多态的机制是什么

重写,重载

方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

40.静态的多态和动态的多态的区别

静态的多态:即为重载;方法名相同,参数个数或类型不相同。(overloading)

动态的多态:即为重写;子类覆盖父类的方法,将子类的实例传与父类的引用调用的是子类的方法实现接口的实例传与接口的引用调用的实现类的方法。

41.作用域Public,private,protected.以及不写时的区别

public整个java程序中都可以访问

protected在其他包中不可以访问

friendly只有当前包或当前内可以访问,其他都不行

private只有当前内可以访问

不写的话默认是protected

42.extends和implement的不同

43.join与leftjoin的区别:

innerjoin(等值连接)只返回两个表中联结字段相等的行

leftjoin(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录

rightjoin(右联接)返回包括右表中的所有记录和左表中联结字段相等的记录

44.DAO设计模式与DELEGATE(delegate)模式

DAO(DataAccessObject)模式实际上是两个模式的组合,即DataAccessor模式和ActiveDomainObject模式,其中DataAccessor模式实现了数据访问和业务逻辑的分离,而ActiveDomainObject模式实现了业务数据的对象化封装,一般我们将这两个模式组合使用。

DAO模式通过对底层数据的封装,为业务层提供一个面向对象的接口,使得业务逻辑开发员可以面向业务中的实体进行编码。通过引入DAO模式,业务逻辑更加清晰,且富于形象性和描述性,这将为日后的维护带来极大的便利。试想,在业务曾通过Customer.getName方法获得客户姓名,相对于直接通过SQL语句访问数据库表并从ResultSet中获得某个字符型字段而言,哪种方式更加易于业务逻辑的形象化和简洁化?

BusinessDelegate起到客户端业务抽象化的作用。它抽象化,进而隐藏业务服务的实现。使用BusinessDelegate,可以降低表示层客户端和系统的业务服务之间的耦合程度。根据实现策略不同,BusinessDelegate可以在业务服务API的实现中,保护客户端不受可能的变动性影响。这样,在业务服务API或其底层实现变化时,可以潜在地减少必须修改表示层客户端代码的次数。

45.适配器模式与桥梁模式的区别

适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。又称为转换器模式、变压器模式、包装模式(把已有的一些类包装起来,使之能有满足需要的接口)。适配器模式的用意是将接口不同而功能相同或者相近的两个接口加以转换,包括适配器角色补充一些源角色没有但目标接口需要的方法。就像生活中电器插头是三相的,而电源插座是两相的,这时需要一个三相变两相的转换器来满足。

比如,在JavaI/O库中使用了适配器模式,象FileInputStream是一个适配器类,其继承了InputStrem类型,同时持有一个对FileDiscriptor的引用。这是将一个FileDiscriptor对象适配成InputStrem类型的对象形式的适配器模式。StringReader是一个适配器类,其继承了Reader类型,持有一个对String对象的引用。它将String的接口适配成Reader类型的接口。等等。

桥梁模式的用意是要把实现和它的接口分开,以便它们可以独立地变化。桥梁模式并不是用来把一个已有的对象接到不相匹配的接口上的。当一个客户端只知道一个特定的接口,但是又必须与具有不同接口的类打交道时,就应该使用桥梁模式。

比如,JDBC驱动器就是一个桥梁模式的应用,使用驱动程序的应用系统就是抽象化角色,而驱动器本身扮演实现化角色。应用系统和JDBC驱动器是相对独立的。应用系统动态地选择一个合适的驱动器,然后通过驱动器向数据库引擎发出指令就可以访问数据库中的数据。

工厂模式

工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

46.开发中都用到了那些设计模式用在什么场合

每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。

(1)MVC模式,在J2EE项目开发中主要用在表示层框架中,很好解决视图和流程控制。在项目中采用的Struts、WebWork等框架。

(2)DAO模式,在项目开发中主要用在数据层,封装数据的访问操作,为业务层提供数据服务。

(3)IoC模式,在项目开发中业务层有大量对象,他们之间存在依赖关系,可以使用IoC模式减少他们之间的代码耦合,提高系统的可扩展性。实际项目中使用的Spring框架来实现业务组件的装配。

(4)Observer模式,在Servlet的监听器中应用到了观察者模式。

(5)singleton单例模式和Factory工厂模式结合使用在项目中无需使用者了解过多的细节就可获取有关的对象实例。比如Hibernate项目中通过SessionFactory来获取Session。

(6)bridge模式,在项目中使用JDBC驱动访问数据库。

47.Hibernate中离线查询与在线查询的区别

Criteria和DetachedCriteria的主要区别在于创建的形式不一样,Criteria是在线的,所以它是由HibernateSession进行创建的;而DetachedCriteria是离线的,创建时无需Session,DetachedCriteria提供了2个静态方法forClass(Class)或forEntityName(Name)进行DetachedCriteria实例的创建。

48.C#数据类型有哪些?

int整型double双精度型string字符串型char字符型bool布尔型

49.抽象类能否被实例化?抽象类的作用是什么?

抽象类一般不能被实例化;

抽象类通常不是由程序员定义的,而是由项目经理或模块设计人设计抽象类的原因通常是为了规范方法名抽象类必须要继承,不然没法用,作为模块设计者,可以把让底层程序员直接用得方法直接调用,而一些需要让程序员覆盖后自己做得方法则定义称抽象方法

50.ASP.NET页面传递值的方式有哪些

1通过URL链接地址传递2通过post方式。3通过session4通过Application

5通过Server.Transfersend.aspx:

51.如何定义一个MDI(.NET技术)

定义MDI父窗口应该是设置窗体的MdiParent属性=true

52.WCF是什么?

53.常用的包,类,接口,各举5个。

类StringIntegerLongFileDate

包java.lang.*;java.io.*;java.util.*;java.swt.*;java.math.*;

接口:Comparable,Connection,Map,List,Runable,

54.网上购物系统的类图,用例图。

用例图:

类图:

55.给你一个整数类型的数组,按从小到大的顺序进行排列!

publicstaticvoidfun(int[]a,intc){

for(inti=0;i

for(intj=i;j

if(a[i]

t=a[i];

a[i]=a[j];

a[j]=t;

System.out.print(a[i]+"");

56.查询出M页的N行数据(分页的实现,求第M也的记录数)

SelecttopNfromtablewhereidnotin(selecttop(M-1)*Nidfromtable)

57.Linkedlistarraylist内部是如何实现的(更深入的问了LinkedList与ArrayList的区别)

ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更像数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更像一个链表结构,所以,它们在性能上有很大的差别。

而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,所以,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。

如果在编程中,两种情形交替出现,这时,可以考虑使用List这样的通用接口,而不用关心具体的实现,在具体的情形下,它的性能由具体的实现来保证

58.newArrayList(10)含义

在内存中连续分配了用来存在Object对象的数组;

59.面向对象主要内容有什么作用?

就分析设计层面来说,面向对象技术提供了更高级的抽象能力以及更多的方法和工具,如设计模式;就实现维护层面来说,面向对象技术使代码重用更容易,且使代码具有可扩展性,便于软件的维护和升级更新。

60.如何移动一个数使62-63=1成立

62-63=1如何移动2的6次方等于642的6次方-63=1把2移动到6的左下方

61.递归实现1,1,2,3,5,8,….第30个数是多少?

publicstaticintFoo(inti){if(i<=0)return0;elseif(i>0&&i<=2)return1;elsereturnFoo(i-1)+Foo(i-2);}inti=Foo(30);System.out.println(i);

62.JAVA实现向数据库添加一列

Connectioncon=null;

ResultSetrs=null;

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";

Connectioncon=DriverManager.getConnection(url,"","");

StateManagersm=con.createStateMent();

Stringsql="altertablestudentaddageint";

rs=sm.excute(sql);

63.写出删除表中重复记录的语句oracle

wherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleIdhavingcount(peopleId)>1)androwidnotin(selectmin(rowid)frompeoplepgroupbyp.peopleId);

deletefromtestwhererowidnotin(selectmin(rowid)fromtesttgroupbyt.tid)

64.用什么方法使服务器关闭之后,session所保存的信息不会丢失?

使用cookie

65.如果页面没有标签,会出现什么错误代码?

没有什么变化

66.抽象类是否可以没有抽象方法?为什么?

可以在java中用abstract关键字来修饰一个类时,这个类叫做抽象类。

67.servlet中的init方法什么时候被调用?

容器首次创建实例的时候

68.用4个0,用你所知道的数学方法计算出24

0的阶乘等于1即0!=1那么4个0就是4了

又4的阶乘为244!=24

69.linux中进程的查看和调度分别用什么命令?

ps-A查看renicetop

70.集合类有哪些?有哪些方法?

71.OSI七层模型tcp四层模型是什么样的

OSI七层参考模型:物理层、数据链路层、网络层、传输层、应用层、会话层、表示层

TCP/IP:第一层网络接口层第二层第二层网间层第三层传输层第四层应用层

72.JAVA测试模式(ZZ):

模式(一)Main模式

模式(二)toString模式

模式(三)Equal模式

模式(四)InternalTesterClass模式

模式(五)ExternTesterClass模式

73.一学生表!有班及id,学号!成绩!一求平均成绩!二求比平均成绩高的学生的所有信息

selectid,avg(成绩)fromtablegroupbyid

select*fromtablewhere成绩>(select成绩from(selectid,avg(成绩)成绩fromtablegroupbyid)asa)

74.jdk的新特性

“JDK1.5”的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each循环,自动装包/拆包,枚举,可变参数,静态导入。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。

75.j2ee的规范?

76.ajax的工作原理?

Ajax基本上就是把JavaScript技术和XMLHttpRequest对象放在Web表单和服务器之间。当用户填写表单时,数据发送给一些JavaScript代码而不是直接发送给服务器。相反,JavaScript代码捕获表单数据并向服务器发送请求。同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说,JavaScript代码在幕后发送请求,用户甚至不知道请求的发出。更好的是,请求是异步发送的,就是说JavaScript代码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用程序。

然后,服务器将数据返回JavaScript代码(仍然在Web表单中),后者决定如何处理这些数据。它可以迅速更新表单数据,让人感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。JavaScript代码甚至可以对收到的数据执行某种计算,再发送另一个请求,完全不需要用户干预!这就是XMLHttpRequest的强大之处。它可以根据需要自行与服务器进行交互,用户甚至可以完全不知道幕后发生的一切。结果就是类似于桌面应用程序的动态、快速响应、高交互性的体验,但是背后又拥有互联网的全部强大力量。

77..Xml特点?

XML是一种可扩展标记语言(XML)是Web上的数据通用语言。它使开发人员能够将结构化数据,从许多不同的应用程序传递到桌面,进行本地计算和演示。XML允许为特定应用程序创建唯一的数据格式。它还是在服务器之间传输结构化数据的理想格式。

XML主要具有以下几个特点:

①简洁有效

XML是一个精简的SGML,它将SGML的丰富功能与HTML的易用性结合到Web应用种,它保留了SGML的可扩展功能,这使得XML从根本上有区别于HTML。并且XML种还包括可扩展格式语言XSL(ExtensibleStyleLanguage)和可扩展链接语言XLL(ExtensibleLinkingLanguage)使得XML的显示和解析更加方便快捷。

②易学易用

XML对SGML进行了精简,它抛弃了SGML中不常用的部分,方便用户编写Web页面同时也给设计人员实现XML浏览器降低了困难。

③开放的国际化标准

XML是W3C正式批准的,它完全可用于Web和工具的开发。XML具有标准的名域说明方法,支持文档对象模型标准、可扩展类型语言标准、可扩展链接语言标准和XML指针语言标准。使用XML可以在不同的计算机系统间交换信息,而且还可以跨越国界和超越不同文化疆界交换信息。

④高效可扩充

XML支持复用文档片断,使用者可以发明和使用自己的标签,也可以与他人共享,可延伸性大。在XML中,可定义一组无限量的标准,可以有效地进行XML文件的扩充。

78.oracle中除了数据库备份,还有什么方法备份?

Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备份是一种逻辑备份,冷备份和热备份是物理备份。

79.j2ee的常用设计模式

Factory(工厂模式),Builder(建造模式)fFactoryMethod(工厂方法模式),Prototype(原始模型模式),Singleton(单例模式),(门面模式),Adapter(适配器模式),Bridge(桥梁模式)

80.由aaa字符串得到1000个a写个程序

StringBuildersBuilder=newStringBuilder();

for(inti=0;i<333;i++){

sBuilder.Append("aaa");

sBuilder.Append("aaa".subString(0,1));

81.servlet与cgi的区别

CGI应用开发比较困难,因为它要求程序员有处理参数传递的知识,这不是一种通用的技能。CGI不可移植,为某一特定平台编写的CGI应用只能运行于这一环境中。每一个CGI应用存在于一个由客户端请求激活的进程中,并且在请求被服务后被卸载。这种模式将引起很高的内存、CPU开销,而且在同一进程中不能服务多个客户。

Servlet提供了Java应用程序的所有优势——可移植、稳健、易开发。使用ServletTag技术,Servlet能够生成嵌于静态HTML页面中的动态内容

Servlet对CGI的最主要优势在于一个Servlet被客户端发送的第一个请求激活,然后它将继续运行于后台,等待以后的请求。每个请求将生成一个新的线程,而不是一个完整的进程。多个客户能够在同一个进程中同时得到服务。一般来说,Servlet进程只是在WebServer卸载时被卸载

82.SOCKET中有几中连接方式,区别?

Sockets有两种主要的操作方式:面向连接的和无连接的。无连接的操作使用数据报协议,无连接的操作是快速的和高效的,但是数据安全性不佳.面向连接的操作使用TCP协议.面向连接的操作比无连接的操作效率更低,但是数据的安全性更高

83.Socket如何获取本地ip地址?

publicInetAddressgetLocalAddress()

84.truncate与delete的区别?(deletefromtable和truncatetabletablea的区别!)

truncate是DDL語言.delete是DML語言DDL語言是自動提交的.命令完成就不可回滾.truncate的速度也比delete要快得多.

详细说明:

相同点:truncate和不带where子句的delete,以及drop都会删除表内的数据

不同点:

1.truncate和delete只删除数据不删除表的结构(定义)

drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态.

2.delete语句是dml,这个操作会放到rollbacksegement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.

truncate,drop是ddl,操作立即生效,原数据不放到rollbacksegment中,不能回滚.操作不触发trigger.

3.delete语句不影响表所占用的extent,高水线(highwatermark)保持原位置不动

显然drop语句将表所占用的空间全部释放

truncate语句缺省情况下见空间释放到minextents个extent,除非使用reusestorage;truncate会将高水线复位(回到最开始).

4.速度,一般来说:drop>truncate>delete

5.安全性:小心使用drop和truncate,尤其没有备份的时候.否则哭都来不及

使用上,想删除部分数据行用delete,注意带上where子句.回滚段要足够大.

想删除表,当然用drop

想保留表而将所有数据删除.如果和事务无关,用truncate即可.如果和事务有关,或者想触发trigger,还是用delete.

************************************************************************************************

85.xml有哪些解析技术,及区别?

有DOM,SAX,STAX等DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问

86.文件和目录(i/o)操作,怎么列出某目录下所有文件?某目录下所有子目录,怎么判断文件或目录是否存在?如何读写文件?

列出某目录下所有文件:调用listFile(),然后判断每个File对象是否是文件可以调用isFile(),判断是否是文件夹可以调用isDirectory(),判断文件或目录是否存在:调用exists()方法,读写文件使用FileReader和FileWriter两个类即可

87.怎么用java反射得到一个类的私有方法?

packagetest;

publicclassTestClass{

privateStringtestMethod(Stringvalue){

return"test:"+value;

try{

//得到test.TestClass类

Classc=Class.forName("test.TestClass");

//得到testMethod的方法

Methodm=c.getDeclaredMethod("testMethod",newClass[]{String.class});

//打印完整的方法表示字符串

System.out.println(m.toGenericString());

//调用这个方法

Objectobj=m.invoke(c.newInstance(),newObject[]{"method"});

//打印返回结果

System.out.println(obj);

}catch(SecurityExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(IllegalArgumentExceptione){

}catch(ClassNotFoundExceptione){

}catch(NoSuchMethodExceptione){

}catch(IllegalAccessExceptione){

}catch(InvocationTargetExceptione){

}catch(InstantiationExceptione){

88.写一个单例模式?描述工厂模式和单例优缺点举例在什么情况下用

classSingle{}

publicclassSingleFactory{

privateSingleFactory(){};

privatestaticSinglesingle;

publicstaticSinglegetSingle(){

if(single==null){

single=newSingle();

returnsingle;

·简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。通过它,外界可以从直接创建具体产品对象的尴尬局面中摆脱出来。

·外界与具体类隔离开来,偶合性低。

·明确区分了各自的职责和权力,有利于整个软件体系结构的优化。

缺点:工厂类集中了所有实例的创建逻辑,容易违反GRASPR的高内聚的责任分配原则虽然简单工厂模式能够适应一定的变化,但是它所能解决的问题是远远有限的。它所能创建的类只能是事先教考虑到的,如果需要添加新的类,则就需要改变工厂类了。(这个问题在工厂方法模式将得到很好的解决)

应用情景工厂类负责创建的对象比较少客户只知道传入了工厂类的参数,对于始何创建对象(逻辑)不关心

89.JVM加载class文件原理?

90.Tomcat的class加载的优先顺序一览

1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。

2.环境变量CLASSPATH中的jar和class文

3.$CATALINA_HOME/common/classes下的class

4.$CATALINA_HOME/commons/endorsed下的jar文件。

5.$CATALINA_HOME/commons/i18n下的jar文件。

6.$CATALINA_HOME/common/lib下的jar文件。

(JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBCDriver的情况。)

7.$CATALINA_HOME/server/classes下的class文件。

8.$CATALINA_HOME/server/lib/下的jar文件。

9.$CATALINA_BASE/shared/classes下的class文件。

10.$CATALINA_BASE/shared/lib下的jar文件。

11.各自具体的webapp/WEB-INF/classes下的class文件。

12.各自具体的webapp/WEB-INF/lib下的jar文件。

91.CS与BS联系区别

1)java适合开发bs结构,cs不是它的强项C/S服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。B/S客户机上只要安装一个浏览器(Browser),如InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过WebServer同数据库进行数据交互1.硬件环境不同:C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务.B/S建立在广域网之上的

2)对安全要求不同C/S一般面向相对固定的用户群,对信息安全的控制能力很强.一般高度机密的信息系统采用C/S结构适宜.可以通过B/S发布部分可公开信息.B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户

3)对程序架构不同C/S程序可以更加注重流程,可以对权限多层次校验B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上

92.Error和exception的区别与联系

error表示恢复不是不可能,但很困难的情况下的一种严重问题。比如说内存溢,网络故障等。不可能指望程序能处理的情况。exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,就不会发生的情况。程序可以捕获到这些异常,并进行处理。

93.在编写页面的会用到哪些技术?

美化页面需要用到CSS、页面交互使用JavaScript、动态页面需要用到JSP、XML等动态网页技术。

94.手写个程序在本页面中心弹出一个窗体,里面有学生的成绩,可以修改学生的成绩,并且可以关闭窗口,把每个要用的jsp页面显示出来。(用JavaScript)

到显示页面的ShowStudentServlet

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

request.setCharacterEncoding("gbk");

response.setCharacterEncoding("gbk");

response.setContentType("text/html");

StudentDaodao=newStudentDao();

Liststs=dao.stlist();

request.setAttribute("sts",sts);

request.getRequestDispatcher("/showStu.jsp").forward(request,response);

学生成绩的显示页面:showStu.jsp

学号姓名成绩修改
${st.sid}${st.name}${st.score}修改

请求修改的UpdateStudentServlet

Strings=request.getParameter("sid");

if(s!=null&&!s.equals("")){

Integersid=Integer.parseInt(s);

Studentst=dao.findById(sid);

request.setAttribute("st",st);

request.getRequestDispatcher("/updateStu.jsp").forward(request,response);

}else{

thrownewServletException("需要传递一个名为sid的int类型参数");

可以修改成绩的页面:updateStu.jsp

编号

分数

负责修改成绩的UpdateScoreServlet

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

Stringsid=request.getParameter("sid");

Stringscore=request.getParameter("score");

if(sid!=null&&!sid.equals("")&&score!=null&&!"".equals(score)){

Studentst=newStudent();

st.setSid(Integer.parseInt(sid));

st.setScore(Double.parseDouble(score));

dao.update(st);

response.getWriter().println("alert('修改成功');window.close();");

95.用main涵数输出一到一百的和。

#include

intmain(){

printf("sum:%d\n",sum());

return0;

intsum(){

inti;

intsum=0;

for(i=1;i<=100;i++)

sum+=i;

returnsum;

96.查一下每门课程都大于80的学生姓名

学生表student分数表grade

selects.namefromstudentswheres.idnotin(selectg.studentidfromgradegwhereg.marks<=80)

或者

selects.namefromstudentswherenotexists(select1fromgradegwhereg.studentid=s.idandg.marks<=80)

97.LIUNIX如何查看CPU,IP,内存?

cat/proc/cpuinfo查看CPU

cat/proc/meminfo查看内存

/sbin/ifcong查看IP的

98.j2EE系统访问速度慢.从哪些方面可以优化

99.J2EE访问速度慢,怎么样优化

1使用缓冲标记对于代码逻辑复杂的页面,利用缓冲标记提高性能的效果比较明显;反之,效果可能略逊一筹。

2始终通过会话Bean访问实体Bean一些时候,使用实体Bean会导致程序性能不佳。如果实体Bean的惟一用途就是提取和更新数据,改成在会话Bean之内利用JDBC访问数据库可以得到更好的性能

3选择合适的引用机制

4在部署描述器中设置只读属性实体Bean的部署描述器允许把所有get方法设置成“只读”。当某个事务单元的工作只包含执行读取操作的方法时,设置只读属性有利于提高性能,因为容器不必再执行存储操作

5缓冲对EJBHome的访问

100.haShtable的原理

原理:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址

101.struts中的prepare怎么用?

prepare是在validate拦截器之前执行

在使用struts2checkboxlist,select绑定list时,有时候会出现以下异常

Therequestedlistkey'users'couldnotberesolvedasacollection/array/map/enumeration/iteratortype.Example:peopleorpeople.{name}-[unknownlocation]这样的错误。是因为list的值为空

解决办法是把初始化list的工作放到prepare拦截器中

publicclassRoleActionextendsActionSupportimplementsPreparable{

@Override

publicvoidprepare()throwsException{

//初始化list

}}

102.C#题目conetextmenu控件如何使用..listview

103.写一条SQL语句,查询姓张学生中平均成绩大于75的学生信息

select*fromstudentwherenamein(selectnamefromstudent

wherenamelike'张%'groupbynamehavingavg(score)>75)

104.从以下方面比较strut1和strut2:线程模式、依赖、可测性、表达式语言、捕获输入、绑钉值到页面、类型转换

线程模式:Struts1Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。

Struts2Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)

Servlet依赖:

Struts1Action依赖于ServletAPI,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execute方法。

Struts2Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest和HttpServletResponse的必要性。

可测性:

测试Struts1Action的一个主要问题是execute方法暴露了servletAPI(这使得测试要依赖于容器)。一个第三方扩展--StrutsTestCase--提供了一套Struts1的模拟对象(来进行测试)。

Struts2Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。

捕获输入:

Struts1使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存在的JavaBean(仍然会导致有冗余的javabean)。

Struts2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。Action属性能够通过web页面上的taglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种ModelDriven特性简化了taglib对POJO输入对象的引用。

表达式语言:

Struts1整合了JSTL,因此使用JSTLEL。这种EL有基本对象图遍历,但是对集合和索引属性的支持很弱。

Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言--"ObjectGraphNotationLanguage"(OGNL).

绑定值到页面(view):

Struts1使用标准JSP机制把对象绑定到页面中来访问。

Struts2使用"ValueStack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。

类型转换:

Struts1ActionForm属性通常都是String类型。Struts1使用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。

Struts2使用OGNL进行类型转换。提供基本和常用对象的转换器。

105.struts的工作原理可分为如下8步。

1.读取配置(初始化ModuleConfig对象)Struts框架总控制器(ActionServlet)是一个Servlet,在web.xml中被配置成一个自动启动的Servlet。读取配置文件struts-config.xml的配置信息,为不同的Struts模块初始化相应的ModuleConfig对象。

2.用户请求用户提交表单或调用URL向WEB应用程序服务器提交一个请求,请求的数据用HTTP协议上传给WEB服务器。

3.填充FormBean(*.do请求)从ActionConfig中找出对应该请求的Action子类,如有对应的Action且这个Action又一个相应的ActionForm,ActionForm被实例化并用HTTP请求的数据填充其属性,并保存在ServletContext中,这样他们就可以被其它Action对象或JSP调用。如果没有对应的Action,控制器则直接转发给JSP或静态页面。

4.派发请求控制器根据配置信息ActionConfig将请求派发到具体的Action,相应的FormBean一并传给这个Action的execute()方法。

5.处理业务Action一般只包含一个execute方法,它负责执行相应的业务逻辑。执行完毕后返回一个ActionFoward对象,控制器通过该ActionFoward对象来进行转发工作。

6.返回响应Action根据业务处理的不同结果返回一个响应对象给总控制器,该目标响应对相对应一个具体的JSP页面或另一个Action。

7.查找响应总控制器根据业务功能Action返回的目标响应对象找到对应的资源对象,通常是一个具体的JSP页面。

8.响应用户JSP将结果展现给用户。

106.Spring工作原理

内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xmlSpring的配置文件来动态的创建对象,和调用对象里的方法的还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的模块)从而达到对一个模块扩充的功能。这些都是通过配置类达到的

Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring根据这些配置内部通过反射去动态的组装对象)要记住:Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能

107.Hibernate的初始化.

读取Hibernate的配置信息-〉创建SessionFactory

1)创建Configeration类的实例。

它的构造方法:将配置信息(Hibernateconfig.xml)读入到内存。

一个Configeration实例代表Hibernate所有Java类到Sql数据库映射的集合。

2)创建SessionFactory实例

把Configeration对象中的所有配置信息拷贝到SessionFactory的缓存中。

SessionFactory的实例代表一个数据库存储员源,创建后不再与Configeration对象关联。

缓存(cache):指Java对象的属性(通常是一些集合类型的属性--占用内存空间。

108.在main方法中将字符串中的。数字排序并输出STRINGA="56.89.5.3.75.98.98.26.15.44"

Strings=”56.89.5.3.75.98.98.26.15.44”;

Strings1[]=s.split(“.”);

Integerii[]=newInteger[s1.length];

For(inti=0;i

ii[i]=Integer.parseInt(s1[i]);

Arrays.sort(ii);

for(Integero:ii){

System.out.println(o+”s”);

96Oracle冷备份的通常步骤

1正常关闭数据库2备份所有重要的文件到备份目录(数据文件、控制文件、重做日志文件等)

3完成备份后启动数据库用冷备份进行恢复时,只需要将所有文件恢复到原有位置,就可以启动数据库了

4关闭数据库SQL>shutdown5备份文件到备份的目录6然后启动数据库#sqlplus"/assysdba"SQL>startup冷备份完毕!!

109.servlet创建过程以及ruquest,response,session的生命周期?

Servlet的创建过程:

第一步

publicclassAAAextendsHttpServlet{

实现对应的doxxx方法

第二步:

在web.xml中配置

servlet的生命周期:

servlet容器创建servlet的一个实例

容器调用该实例的init()方法

如果容器对该servlet有请求,则调用此实例的service()方法

容器在销毁本实例前调用它的destroy()方法

销毁并标记该实例以供作为垃圾收集

一旦请求了一个servlet,就没有办法阻止容器执行一个完整的生命周期。

容器在servlet首次被调用时创建它的一个实例,并保持该实例在内存中,让它对所有的请求进行处理。容器可以决定在任何时候把这个实例从内存中移走。在典型的模型中,容器为每个servlet创建一个单独的实例,容器并不会每接到一个请求就创建一个新线程,而是使用一个线程池来动态的将线程分配给到来的请求,但是这从servlet的观点来看,效果和为每个请求创建一个新线程的效果相同。

一旦请求提交给容器,容器会自动创建相应的request、response,一旦回应完毕则request、response自动销毁。客户端第一次请求时,容器会建立相应的会话,直到会话超时,会话随即销毁。

110.手写个单例模式?每个公司基本都考

publicclassdanli{

privatestaticdanlidl;

privatedanli(){

System.out.println("单例模式");

publicstaticdanligetconnection()

{

if(dl==null)

dl=newdanli();

returndl;

111.解释一下mvc以及熟悉的mvc框架

答:m代表模型层,v代表视图层,c代表控制层,也就是把一个整体分割成不同的模块,各负责自己的功能,分工明确,提高代码的重用性和方便维护。

在struts2.0,其中m是action,c是拦截器,v是jsp.

112.解释一下IOC,以及spring的举例

IOC称为控制反转,也叫依赖注入,ioc是Spring的核心组件,它通过配置文件,将需要创建的对象以池的方式管理,将实例注入到需要的对象中区,是对象依赖于注入而不依赖于实现,解决了各个组件的耦合度,使得项目在后期的维护和扩展上非常方便。如在ssh框架整合中,我们将datasource对象注入给sessionFactory,再将sessionFactory注入给dao组件,再将dao组件注入给struts的Action组件,在将action对象注入给struts的拦截器。

113.Oracle和Sqlserver的区别?数据库里面的语言符号表示?

a)体系结构:

ORACLE的文件体系结构为:

数据文件.DBF(真实数据)/日志文件.RDO/控制文件.CTL/参数文件.ORA

SQLSERVER的文件体系结构为:

.MDF(数据字典)/.NDF(数据文件)/.LDF(日志文件)

b)存储结构:

ORACLE存储结构:在ORACLE将存储单位分为块、区、段、表等;块的大小可设置(OLTP块和DSS块);将连续的块组成区,可动态分配区(区的分配可以是等额的也可以是自增长的)可减少空间分配次数;ORACLEl里表可以分为多个段,段由多个区组成,每个段可指定分配在哪个表空间里(段的类型分为:数据段、索引段、回滚段、临时段、CASH段。ORACLE里还可对表进行分区,可按照用户定义的业务规则、条件或规范,物理的分开磁盘上的数据。这样大大降低了磁盘争用的可能性。

SQLSERVER存储结构:以页为最小分配单位,每个页为8K(不可控制,缺乏对页的存储情况的分析机制),可将8个连续的页的组成一个‘扩展’,以进一步减少分配时所耗用的资源。(分配缺乏灵活性),在SQLSERVER里数据以表的方式存放,而表是存放在数据库里。真实数据与数据字典存放在一起。对系统参数信息无安全机制。

c)操作系统:

Oracle可在所有主流平台上运行;但SQLSever只在Window平台上的表现很好;

d)运行速度与安全性:Oracle高于SQLServer;

e)价格:Oracle高于SQLServer;

114.浏览器页面与T0MCat的交互过程?

当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:

(1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序

(2)JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class

(3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端

以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。

115.用C编写将一个100以内的自然数分解质因数

/*100以内素数*/

main()

inti,j;

for(i=2;i<100;i++)

for(j=2;j

if(i%j==0)

break;

if(i==j)

printf("%d",i);

/*分解质因数*/

intn,i;

printf("pleaseinputanumber:\n");

scanf("%d",&n);

printf("%d=",n);

for(i=2;i<=n;i++)

while(n!=i)

if(n%i==0)

printf("%d*",i);

n=n/i;

}else{break;}

printf("%d",n);

getch();

116.用一个方法查出宜个数值类型数组的最大值,用递归方式实现

方法1

publicclassTest1{

publicstaticinta(int[]i,intj){

if(i.length-1>j){

if(i[j]>i[j+1]){

i[j+1]=i[j];

returna(i,j+1);

returni[i.length-1];

方法2--非递归

publicstaticinttest(int[]num){intx=0;intlog=num.Length;for(intt=0;tx){x=num[t];}}returnx;}

方法3---递归不改变原数组中的元素

publicstaticintgetMax(int[]a,intindex,intmax){

intlen=a.length;

if(len==1){

returna[len-1];

if(index==0){

max=a[index];

if(index==len){

returnmax;

if(max

index++;

returngetMax(a,index,max);

//测试

intmax=getMax(newint[]{2,5,18,3,38,10,2},0,0);

System.out.println(max);

117.JSP与SERVLET区别

JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Servlet来生成动态网页很不直观.JSP由HTML代码和JSP标签构成,可以方便地编写动态网页.因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP是Java和HTML组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

XMLHttpRequest.open()

初始化HTTP请求参数

语法

open(method,url,async,username,password)

method参数是用于请求的HTTP方法。值包括GET、POST和HEAD。

(大小写不敏感。

POST:用"POST"方式发送数据,可以大到4MB

GET:用"GET"方式发送数据,只能256KB

如果请求带有参数的化实用POST方式,POST方式将参数放置在页面的隐藏控件内

没有参数使用GET方式

对于请求的页面在中途可能发生更改的,也最好用POST方式

)

url参数是请求的主体。大多数浏览器实施了一个同源安全策略,并且要求这个URL与包含脚本的文本具有相同的主机名和端口。

async参数指示请求使用应该异步地执行。如果这个参数是false,请求是同步的,后续对send()的调用将阻塞,直到响应完全接收。

如果这个参数是true或省略,请求是异步的,且通常需要一个onreadystatechange事件句柄。

119.java优缺点

先说优点吧,比较显见一点1.指针.任何一个学过C或者C++的人都知道指针的操作对于他们是很重要的,为什么,指针能够支持内存的直接操作,这样的直接操作能够带来的是效率上的提高.但是任何一个东西都是有副作用的,指针给程序员带了的混乱也是无可比拟的.对于一个不是很强劲的C程序员而言,指针是要命的(对我而言也是,我几乎不会写C代码).而JAVA就为我们省去了这样的麻烦,或者说JAVA完整的限制了对内存的直接操作,让程序员能够安心去搞业务逻辑,而不用管自己后院的那堆内存有没有人来收拾.2.垃圾回收其实垃圾回收也是JAVA对于内存操作的限制之一,也大大解放了程序员的手脚.但是也正是这样的一个内存保姆的存在导致JAVA程序员在内存上几乎没有概念...一个纯粹的JAVA程序员对于内存泄露这样的问题是从来没有概念的,因为他从来不用担心,因为大多数情况下即便他大手大脚也不会有什么问题

3.平台无关性平台无关性的真正意义在于程序的可移植性高,能够在多个平台平滑迁移。这点就特别适合网络应用。好吧,然后我们再来看看缺点吧:1效率1.1当然首先就是内存操作限制带来安全的同时带来的副面效果了.....1.2其次呢,就是面对对象的一个很重要的特点所带来的——多态导致的。1.3平台无关性带来的。由于需要平台无关,所以JAVA是不能直接调用OS的API的,JAVA需要调用自己的API来隐式地调用OS的API,大家可想而知这样的效果。多一层调用,必然多一层代码需要加载到栈内了。

2逆向编译问题

由于JAVA程序是动态连接的,从一个类到另外一个类的引用是符号化的。在静态连接的可执行程序中,类之间的只是直接的指针或者偏移量,。相反地,在JAVAclass文件中,指向另一个类的引用通过字符串清楚地标明了所指向的类的名字。如果引用指向一个字段的话,这个字段的名字和描述符会被详细说明。如果引用指向一个成员变量,这个成员变量的名字和描述符(方法的返回类型,方法参数的数量和类型)也会被详细说明。3线程调度问题Java虽然是一个总进程下的多线程,但是线程间的调度没有非常的清晰,由于为了能够支持多种系统的不同的线程支持策略,JAVA只能采取这样笼统而又松散的线程规范。

120.写一个单例Signleton代码

publicclassSingleton{

privateSingleton(){};

privatestaticSingletonsingleton;

@SuppressWarnings("unused")

privatestaticSingletongetSingleton(){

if(singleton==null){

singleton=newSingleton();

returnsingleton;

121.Mvc各部分用什么实现?

视图层用jsp,javascript

作用--显示数据,接受用户输入数据

控制层用servlet

作用--接收视图层数据,传输给业务逻辑层(即模型层)

模型层用普通javaBean

作用--业务类的实现,如:数据库操作

122.ejb是基于哪些技术实现的,和javabean的区别?

EJB包括SessionBean、EntityBean、MessageDrivenBean,基于JNDI、RMI、JAT等技术实现EJB是一个关于用JAVA语言开发的可部署的服务器端组件的组件体系结构。它是一个技术协议,能使组件运行于任何应用服务器,专门用来解决商务问题JAVABEANS是JAVA类,是由属性、事件和方法组成的JAVA组件,它们可以用来组成JAVA应用程序

123.适配器模式解释:

把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端

124.进程和线程的区别:

线程是一种操作系统对象,代表着一个进程中要被执行的代码的路径。每一个WIN32应用程序至少有一个线程--通常称为住线程或默认线程--但应用程序可以自由地创建其他线程来执行其他任务!进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程线程是比进程更小的执行单位。一个进程在其执行过程能够中,可以产生多个线程,形成多条执行线索。每条线索,即每个线程也有它自身的产生、存在和消亡过程,也是一个动态的概念

125.

shorts1=1;s1=s1+1;有什么错shorts1=1;s1+=1;有什么错shorts1=1;s1=s1+1;(s1+1运算结果是int型,需要强制转换类型)shorts1=1;s1+=1;(可以正确编译)

126.写一个程序,把一个文件的数组按对角线做对称变换,并输出!

一个正方形里面全数字,写一个程序,成对角线转变!我做的这个是3行3列的对角互换,也许转换规则不一样

publicclasstestMain{

inta[][]=newint[3][3];

intc=1;

//初始化数据

for(inti=0;i<3;i++){

for(intj=0;j<3;j++){

a[i][j]=c++;

System.out.println("转换之前:");

System.out.print("a["+i+"]["+j+"]="+a[i][j]+"");

System.out.println("\n");

if((i+1<3&&j+1<3)&&i==j&&i!=0&&i!=3-i){

inttemp=a[i-1][j-1];

a[i-1][j-1]=a[i+1][j+1];

a[i+1][j+1]=temp;

temp=a[i-1][j+1];

a[i-1][j+1]=a[i+1][j-1];

a[i+1][j-1]=temp;

System.out.println("转换之后:");

System.out

print("a["+i+"]["+j+"]="+a[i][j]+"");

127.再SSH框架中,用流程表示处理过程。从Request,Response

128.人民币小写转成大写,写个java程序和思路(写10100.00转成汉字壹万零壹百整)

publicclassMoney{publicstaticvoidmain(String[]args){//金额大小写转换floatmoney=2038.0f;intm1,m2,m3,m4,m5,m6,temp;temp=(int)(money*100);System.out.println(money);m1=temp%1000000/100000;m2=temp%100000/10000;m3=temp%10000/1000;m4=temp%1000/100;m5=temp%100/10;m6=temp%10;charc1,c2,c3,c4,c5,c6;c1=transe(m1);c2=transe(m2);c3=transe(m3);c4=transe(m4);c5=transe(m5);c6=transe(m6);Stringstr="";if(m1!=0){str+=c1+"千";}if(m2!=0){str+=c2+"百";}if(m1!=0&&m2==0&&(m3!=0||m4!=0)){str+="零";}if(m3!=0){str+=c3+"十";}if(m2!=0&&m3==0&&m4!=0){str+="零";}if(m4!=0){str+=c4;}str+="元";if(m5==0&&m6==0){str+="整";}if(m5!=0){str+=c5+"角";}if(m5==0&&m6!=0){str+="零";}if(m6!=0){str+=c6+"分";}System.out.print(str+"\n");System.out.println("..........................");}publicstaticchartranse(intm){charr='';switch(m){case0:r='零';break;case1:r='壹';break;case2:r='贰';break;case3:r='叁';break;case4:r='肆';break;case5:r='伍';break;case6:r='陆';break;case7:r='柒';break;case8:r='捌';break;case9:r='玖';break;}returnr;}}

130.用java写从1加到100

sum=(1+i)*i/2

i=100

最简单的方法

publicclassHello5050{publicstaticvoidmain(String[]args){for(inti=1;i<=100;i=i++)}

131.SSH的优点和缺点

优点:ssh把数据库,实体,配置都整合,封装

层次的结构(偏于mvc模式)

而且框架的融合,代码的耦合都很不错

对于编程的持续化,扩展化,维护化都很棒,SSH已经把底层实现封装好了,开发人员可以更专注于业务处理,

缺点:出现错误容易搞的复杂

如果某个框架不是很熟悉的话(特别是spring)那就很麻烦

运行速度比较慢

132.用JDBC来实现访问数据库记录可以采用下面的几个步骤:

1、通过驱动器管理器获取连接接口。

2、获得Statement或它的子类。

3、限制Statement中的参数。

4、执行Statement。

5、查看返回的行数是否超出范围。

6、关闭Statement。

7、处理其它的Statement

8、关闭连接接

133.overload和override的区别

override是方法重载,用在同一个类中,是几个方法的名字相同,返回值相同,但是参数列表不同,举例来说就像构造函数,可以后多个构造函数,并且每个的参数列表都不同,这样可以用多种方式构造对象。

134.最常见的runtimeexception运行时异常?

数字转换异常,类异常ClassCastExceptionNumberFormatExceptionArrayIndexOutOfBoundsException:数组越界ClassCastException:类型转换错误

ArithmeticException:算术错误,典型的就是0作为除数的时候。IllegalArgumentException:非法参数IndexOutOfBoundsExceptionNullPointerException

SystemExceptionArrayStoreException

135.描述工厂模式和单例优缺点举例在什么情况下用。

单例保证一个类只有单一的实例,也就是说你无法通过New或CreateInstance来创建这个类的一个新实例好处:当一个对象在程序内部只能有一个实例的时候,它可以保证我们不会重复创建,而是始终指向同一个对象。缺点就是它就是在内存上共享,都可以去访问它,而且多个用户访问的都是同一个实例,会造成线程不安全。

136.创建一个序列号,从1000开始,每次增加1,最大到999999

createsequencenewstudnoincrementby1

startwith10001maxvalue99999

137.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。publicclassThreadTest1{privateintj;publicstaticvoidmain(Stringargs[]){ThreadTest1tt=newThreadTest1();Incinc=tt.newInc();Decdec=tt.newDec();for(inti=0;i<2;i++){Threadt=newThread(inc);t.start();t=newThread(dec);//这个前面不要加Thread吗t.start();}}privatesynchronizedvoidinc(){//为什么要加锁呢不加可以吗j++;System.out.println(Thread.currentThread().getName()+"-inc:"+j);}//currentThread()有什么作用呢是什么方法//getname呢privatesynchronizedvoiddec(){j--;System.out.println(Thread.currentThread().getName()+"-dec:"+j);}classIncimplementsRunnable{publicvoidrun(){for(inti=0;i<100;i++){inc();}}}classDecimplementsRunnable{publicvoidrun(){for(inti=0;i<100;i++){dec();}}}}

138.十六进制的216转换十进制是多少:

216是16进制,转10进制:=2*16^2+1*16^1+6*16^0=512+16+6=536

139.Java中的XML解析方式:dom和jdom解析

Java中处理XML文档的标准API有两种,即XML的简单API(SAX,SimpleAPIforXML)和文档对象模型(DOM,DocumentObjectModel),其他的API,如JDOM,dom4j等。

基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据。

n基于树的处理的优点和缺点

l优点

树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改

可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理

DOMAPI是读写的,而不象SAX那样是只读的。

l缺点

在内存中构建一个DOM树开销比较大

创建一棵DOM树可能是一个缓慢的过程

SAX是一个基于事件的API。解析器向一个事件处理程序发送事件,比如元素开始和元素结束,而事件处理器则处理该信息。应用程序本身就能够处理该数据。原始的文档仍然保留完好无损

n优点:

l可以解析任意大小的文件;

l适合创建自己的数据结构;

l适合小信息子集;

l简单;

l快速

n缺点:

l不能对文档做随机存取;

l难以实现复杂的查询;

l不能使用文档类型定义(DTD);

l不可获取词法信息;

lSAX是只读的;

l当前的浏览器不支持SAX;

JDOM是javadocumentobjectmodel的简称,JDOM兼顾了DOM和SAX的优点,它会提供适配器用来选择具体的XML解析器。JDOM是一个源代码开发的项目,它基于树型结构,利用纯Java的技术对XML文件实现解析、生成、序列化以及多种操作。在JDOM中,XML元素就是Element的实例,XML属性就是Attribute的实例,XML文档本身就是Document的实例。因此创建一个新JDOM对象就如在Java语言中使用new操作符一样容易。JDOM使用标准的Java编码模式。只要有可能,它使用Javanew操作符而不故弄玄虚使用复杂的工厂化模式,使对象操作即便对于初学用户也很方便。

140.UML几种图及用途?

单一的图形不可能包含系统所学的所有信息,更不可能描述系统的整体结构,所以系统通常是从多个不同的方面来描述的,分别对应UML的几种视图:

§用例视图--从使用者角度描述系统功能

§逻辑视图—描述系统内部如何实现

§组件视图—描述系统有哪些组件/模块构成

§并发视图—描述系统内部的通信与并发问题

配置视图—描述系统软硬件的配置与位置关系

n用例图—描述系统的参与者与用例之间的关系

n类图—描述系统中的概念及它们之间的关系

n对象图—描述系统中实例及它们之间关系

n状态图—描述系统中对象所具备的状态,及触发状态改变的事件

n协作图—描述对象之间协作关系

n活动图—描述执行过程中涉及的活动及状态变化

n组件图—描述系统组件之间的关系

配置图—描述系统的硬件及软件的物理结构

141.列举你接触过的框架,说明特点和原理

struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发,缺点:Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度,工作原理:用一个servlet拦截用户的请求,并分发到具体的action中去处理,再将返回的response进行封装,这是处理页面流程的机制,另外还有一些标签,非常容易在页面进行显示。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Spring也表示是一个开源框架,是为了解决企业应用程序开发复杂性由RodJohnson创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

142.StrutsHibernateSpring在程序中用到哪些

143.你对面向对象思想的理解?

面向对象(ObjectOriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

面向对象的特征

(1)对象唯一性。

每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。

(2)分类性。

分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。

(3)继承性。

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。

在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。

在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。

在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。

采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。

(4)多态性(多形性)

多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息。

多态性增强了软件的灵活性和重用性。

数组和链表的理解,及优缺点?

145.写几个java.lang.Object类中的方法名称

equals();toString();getClass();hashCode();clone()finalize()notify()wait()notify()

146.js中加VAR与不加VAR的区别?

加了var:在局部函数中加了var说明是局部变量,只对该函数起作用.

不加var:在局部函数中不加的话,说明是给这个全局变量重新赋值.其结果为重新赋值后的.

147.Struts1的Action类与Struts2的Action类区别?

Struts1要求Action类要扩展自一个抽象基类。Struts1的一个共有的问题是面向抽象类编程而不是面向接口编程。

Struts2的Action类实现了一个Action接口,连同其他接口一起实现可选择和自定义的服务。

Struts1Action类是单例类,因只有一个示例控制所有的请求。

Struts2Action对象每一个请求都实例化对象,所以没有程安全的问题。

148.jsp有哪些的动作?分别有什么作用?

答:jsp:include:在页面被请求的时候引入一个文件。

jsp:useBean:寻找或者实例化一个JavaBean。

jsp:setProperty:设置JavaBean的属性。

jsp:getProperty:输出某个JavaBean的属性。

jsp:forward:把请求转到一个新的页面。

jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。

149.用oracle写向mine表中差入miname字段?

ALTERTABLEMINEADDMINNAMEVARCHAR2(10);

150.oracle有哪几个对象?

Oracle数据库对象有表、索引、视图、同义词、序列、存储过程、触发器、PL/SQL块等

151.在oracle中,有4个大对象(lobs)类型可用

分别是blob,clob,bfile,nclob。

152.定义两个变量a和b,不使用第三个变量,使两个值交换

publicvoidtest(inta,intb){

System.out.println("交换前a="+a);

System.out.println("交换前b="+b);

a=a+b;

b=a-b;

a=a-b;

System.out.println("交换后a="+a);

System.out.print("交换后b="+b);

publicstaticvoidmain(Stringargs[]){

newtestMain().test(10,13);

153.题目:JS树形菜单

<%@pagelanguage="java"import="java.util.*"pageEncoding="gbk"%>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

MyJSP'scriptTree.jsp'startingpage

functionfun1(){

window.showModalDialog("${pageContext.request.contextPath}/user.domethod=login","700");

window.dialogHeight=800;

functionfun(isd){

vartabIds=document.getElementById(isd);

if(tabIds.style.display=='none'){

tabIds.style.display='inline';

tabIds.style.display='none';

树型菜单

菜单名称

kongjian

154.办公自动化系统用到的技术,分哪些层,有哪些包

使用技术:DWR+Struts+Hibernate+Spring+Ajax+JavaScript

系统架构分为:View层、WEB层、Serivce层、DAO层、持久层(po层)

155.解释下mvc,客户端的请求被发送到哪

.jsp是v层(视图层view)Servlet是c层(控制层,Control)BeanBin都是M层(后台类,Model)

m层(模型层)

156.使用了哪些数据库事务

BeginTransaction、Commit和Rollback

.

157.对数据库的访问是怎么实现的

将对持久层数据库的基本添加,修改,查找等操作提取到BaseDAO中,采用JavaBean对数据进行封装,以便对持久层的数据能够很好的处理,实现BaseDAO设计对数据库访问的便捷。业务组件通过DAO的委托接口调用DAO对象,使得上层组件不直接依赖于DAO的实现类.

140.接口与抽象类的区别

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义staticfinal成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。

158.数据库优化的方案

建立主键,为数据库创建索引,建立存储过程,触发器,可提高查询速度。

159.冒泡

publicstaticvoidBubble(inta[]){

for(intj=a.length-1;j>i;j--){

if(a[j]

a[j]=a[j]+a[j-1];

a[j-1]=a[j]-a[j-1];

a[j]=a[j]-a[j-1];

160.常用的设计模式有哪些?并写出一段程序代码

Factory(工厂模式),Adapter(适配器模式),Singleton(单例模式),State(状态模式),Observer(观察者模式)等。

单例模式

privatestaticSingletoninstance=null;

privateSingleton(){}

publicstaticSingletongetInstance(){

if(instance==null){

instance=newSingleton();

returninstance;

161.数据库有哪几种结构?

从数据管理的角度看,数据库通常采用三级模式结构,这是数据库管理系统的内部结构;从数据库最终用户的角度看,数据库的结构可分为集中式结构、分布式结构、客户/服务器结构、并型结构,这是数据库的外部的体系

162.css是什么?ABSTRACT是什么意思?(层叠样式表,抽象)

Css:(层叠样式表,抽象)

163.你对Oracle有哪些了解?(大型数据库,安全性高,稳定性高,功能强大,效率低,价格贵,操作麻烦)

164.你大学所学习的哪些课程?(会哪些JAVA技术?学过C语言,c++,c#,java)

165.BBS论坛运用了那些技术,如果你单独开发需要多久,你能够独立完成整个代码的编写吗?(jsp技术,ajax技术,通信技术,)

167.测试覆盖最强的是__d______,最弱的是____c___

A.条件覆盖B.条件及判定覆盖C.语句覆盖D.条件组合覆盖

168.DFD是面向__c____分析方法的描述工具(DFD数据流程图)

A.数据结构B.数据流C.对象D.构件

169.从终端用户的角度来看,事务是一个__B_____

A.对象B.原子C.操作D.子程序

170.构造器是否可以被重写?不能

171.char是否可以装一个汉字?可以

172.publicclassTest{

publicstaticvoidadd(Integeri){

intval=i.intValue();

val+=3;

i=newInteger(val);

Integeri=newInteger(0);

add(i);

System.out.println(i.intValue());

打印的结果是0

173.outmermory是个什么问题?你是怎么解决的?

内存溢出解决方法:手动设置Heapsize修改TOMCAT_HOME/bin/catalina.bat在“echo"UsingCATALINA_BASE:$CATALINA_BASE"”上面加入以下行:JAVA_OPTS="-server-Xms800m-Xmx800m-XX:MaxNewSize=256m"

174.&和&&的区别

&,按位与,是位运算符&&,与,是逻辑运算符

175.数组有没有length()这个方法,String有没有length()这个方

数组没有length()方法,但有length属性String有length()方法。

176.Strings=newString(“xyz”)创建了几个对象

2个string对象,一个是=null的s,一个是=“xyz”的string

177.谈谈struts的整个体系?

除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。

关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展

178.域名格式要求

英文26个字母和10个阿拉伯数字以及横杠"-"可以用作域名。字母的大小写没有区别;每个层次最长不能超过26个字母;首字或结尾字不能是"."和"-";域名不能包括有空格;中文暂时不能用作域名。

179.AjAX有什么好处?

用于需要查询数据库才能做的页面校验,再比如实时刷新,再比如良好的用户界面以及快速的响应等等无刷新、减少网络流量

180.Webservice有什么好处

跨平台的可互操作性跨防火墙的通信应用程序集成软件和数据重用

181.JAVA的缓冲机制?BufferdStream

182.如何在javascript中实现继续?首先js是单线程的,现在基本除了XHR的callback可以另开一个线程以外,还无法实现多线程,其次timeout是在本次js代码运行完开始计时timeout的,所以在一个耗时的函数之外timeout或者interval一个函数运行本身就是荒谬的,ie下面alert,js函数执行也会阻塞interval执行

183.XMLHTTP的hibernate的save与saveOrUpdate的区别?get与load的区别?

答案:Transient状态--离线状态,Persient状态--持久状态,Detached状态--脱管状态

1.save()方法,调用save方法时,首先会在session缓存中查找保存对象如果实体对象已经处于Persient状态,直接返回,否在实行sql操作,并将保存的实体对象加入session缓存(save方法不会把实体加入二级缓存的),最后对存在的级联关系进行递归处理。

2.saveOrUpdate()方法:和save方法一样首先在session缓存中查找,判断对象是否为为保存状态,如果对象处于Persient,不执行操作,处于Transient执行save操作,处于Detached调用save将对象与session重新关联(简单的说就是该方法会先看该对象是否已经存在,如果已经存在就更新,否则新增保存)。

3.get与load的区别?load会先从缓存中查询,如果不存在再到数据库查询;而get是直接从数据库中查询;load的效率会快点(因为他从缓存中查询)

184.连接池的原理

j2ee服务器启动时会建立一定数量的池连接,并一直维持不少于此数量的池连接。当客户端程序需要连接时,吃驱动程序会返回一个未使用的池连接并将其标记为忙。如果当前没有空闲连接,池驱动就建立一定新的连接

185.用javascript编写脚本小程序,实现点击全选()

functionselectAll(){

varitem=document.getElementsByName("ids");

for(varj=0;j

if(!item[j].disabled){

item[j].checked=true

186.说一下垃圾回收的原理,可以直接从内存中回收吗

187.java的异常有哪几种,有什么区别。

第一种方式:直接在函数头中throwsSomeException,函数体中不需要try/catch

第二种方式:使用try/catch,在catch中进行一定的处理之后(如果有必要的话)抛出某种异常

第三种方法:使用try/catch/finally,在catch中进行一定的处理之后(如果有必要的话)抛出某种异常

188.通过部署描述文件(web.xml)可以配置哪些功能?

监听器。。过滤器。。也可以用来验证XML文件的正确性

189.说一下mvc原理,(关于mvc)

1、模型(Model)

模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.

2、视图(View)

3、控制器(controller)

控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。

MVC式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性

190.servlet在MVC中充当的角色:中心控制器

191.什么是BS和CS

B/S结构是Browser/Server的简称

即浏览器/服务器结构,程序和数据库放在SERVER端,客户端通过

浏览器来访问数据,进行数据交换。

B其实就是BROWSE即浏览器,S就是SERVER,即服务器

也就是说,用户可以用浏览器就可以享受SERVER提供的服务,也就是我们上网的啦

而CS呢,C就是CLIENT即客户端,S就是SERVER,服务端,

C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。

B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装。Oracle、Sybase、Informix或SQLServer等数据库。浏览器通过WebServer同数据库进行数据交互。

C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个:

只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。

对客户端的操作系统一般也会有限制。可能适应于Win98,但不能用于win2000或WindowsXP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。

B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。

192.页面中使用javascript的利与弊?(益端:能减少一些简单的逻辑业务,提高页面的效率,弊端:对于有些不能识别Javascript的浏览器存在一定的安全隐患)

193.在Liniux/Uinix下创建一个角色帐号,自己拥有一切权限,系统用户拥有访问权限,其他用户没有任何权限.

packagedemo.bean;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

publicclassConnDB{

Stringdriver="oracle.jdbc.driver.OracleDriver";

Stringurl="jdbc:oracle:thin:@localhost:1521:yf";

Stringusername="scott";

Stringpassword="tiger";

DriverManager.registerDriver(neworacle.jdbc.OracleDriver());

Connectioncon=DriverManager.getConnection(url,username,password);

PreparedStatementstm=con.prepareStatement("selectsysdatefromdual");

ResultSetrs=stm.executeQuery();

while(rs.next()){

System.out.print(rs.getString(1));

}catch(Exceptione){

195.数据库索引的优点和缺点

196.struts2.0中几种常用的标签

-----复选框-----创建url-----文本域输入框

197.介绍下spring

Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯.Spring的架构基础是基于使用JavaBean属性的InversionofControl容器是一个解决了许多在J2EE开发中常见的问题的强大框架,还提供了可以和总体的IoC容器集成的强大而灵活的MVCweb框.

198.介绍下ajax

AJAX全称为“AsynchronousJavaScriptandXML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术

199.介绍下hibernate

Hibernate是连接Java应用程序和关系数据库的中间件。它对JDBCAPI进行了封装,负责Java对象的持久化。在分层的软件架构中它位于持久化层,封装了所有数据访问细节,使业务罗基层可以专注于实现业务逻辑

200.servlet和jsp页面过滤器Filter的作用及配置

过滤器可附加到一个或多个servlet或JSP页面上,并且可以检查进入这些资源的请求信息过滤器要好处。1它以一种模块化的或可重用的方式封装公共的行为2利用它能够将高级访问决策与表现代码相分离

201.学JAVA的都看了什么书?

基础很差的人我建议用那本JavaSE6.0编程指南《最新Java2核心技术卷1、卷2》了,不要怕代码难懂,这个一定要克服,当然某些代码(比如经常提及的画小球、你又不是搞图象的:))就可以跳过去。这当中可以穿插阅读《Java实效编程百例》,最后建议大家阅读《Java编程思想》thinkinginJAVA第三版中文版CoreJava(java核心技术)

202.函数和过程的区别?

过程和函数区别如下:

1、标识符不同:函数的标识符为FUNCTION,过程为:PROCEDURE。

2、话法不同:函数中一般不用变量形参,用函数名直接返回函数值;而过程如有返回值,则必须用变量形参返回。

3、函数在定义时一定要进行函数的类型说明,过程则不进行过程的类型说明。

4、调用方式不同:函数的调用出现在表达式中,过程调用,由独立的过程调用语句来完成。

5、过程一般会被设计成求若干个运算结果,完成一系列的数据处理,或与计算无关的各种

操作;而函数往往只为了求得一个函数值。

203.Javascript如何实现继承?

1.采用对象冒充方式:

原理:构造函数使用this关键字给所有属性和方法赋值,因为构造函数只是一个函数,所以可以使ClassA的构造函数成为classB的方法,然后调用它.这样classB就会收到classA的构造函数中定义的属性和方法.例子:

2.例:

functionclassA(name)

this.name=name;

this.showName=function(){alert(this.name);}

functionclassB(name)

this.newMethod=classA;

this.newMethod(name);

obj=newclassA("hero");

objB=newclassB("dby");

obj.showName();//printhero

objB.showName();//printdby说明classB继承了classA的方法.

204.将字符串str(例:”abcrepefd”)中的”rep”部分替换成”with”字符串(不能用jdk自带的replace方法)

答案如下:

publicvoidreplace(Stringstr,Stringrep,Stringwith){

inti=str.indexOf(rep);

Strings1=str.substring(0,i);

Strings2=str.substring(i,rep.length()+i);

Strings3=str.substring(rep.length()+i,str.length());

s2=with;

Stringmes=s1+s2+s3;

System.out.println("替换前:"+str);

System.out.println("替换后:"+mes);

System.out.println("字符串"+str+"中不含有"+rep+"字符串!");

205.JavaReflection是什么?

答:

1.JAVA反射,Reflection是Java程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性。例如,使用它能获得Java类中各成员的名称并显示出来;

2.一个简单的例子

importjava.lang.reflect.*;publicclassDumpMethods{publicstaticvoidmain(Stringargs[]){try{Classc=Class.forName(args[0]);Methodm[]=c.getDeclaredMethods();for(inti=0;i

206.1到11相加是奇数还是偶数

偶数

207.一个圆上有6个点,可以连多少条直线?

15条线段

208.Stack堆栈,实现进栈,出栈

packaget1;

publicclassmystack{

privateObject[]data;

privateinttop=-1;

privateintsize;

publicmystack()

data=newObject[5];

size=5;

publicmystack(intsize)

data=newObject[size];

this.size=size;

publicvoidpush(Objectobj)

if(this.isfull())

return;

top++;

data[top]=obj;

publicObjectpop(){

if(this.isempty())

returnnull;

Objectobj=data[top];

top--;

returnobj;

publicbooleanisfull()

if(top==data.length)

returntrue;

else

returnfalse;

publicbooleanisempty()

if(top==-1)

209.每周的工作效率要提高24%,每周工作6天,那么每天工作效率要提高多少?(6%,4%,24%)

答:24%

210..前一天是星期一,又是第二个工作日,那么今天是星期几?

答:星期三

211.Hibernate中的HQL和criteria的区别?

1.QBC(QuerybyCriteria)查询对查询条件进行了面向对象封装,符合编程人员的思维方式;

2.HQL(HibernateQueryLanguage)查询提供了更加丰富的和灵活的查询特性,在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装;

212.Webservice是什么?它是采用什么通信机制,它的通信协议是什么?

答:Webservice是跨平台,跨语言的远程调用技术;

1.它的通信机制实质就是xml数据交换;

2.它采用了soap协议(简单对象协议)进行通信

213.Struts是怎么实现MVC的?

Struts提供MVC三层模式:

MVC就是modelviewcontroller.

1、view视图层一般运用jsp或者html进行实现,展现给用户看;

2、controller控制层struts有个文件叫struts-config.xml,该文件里面定义个处理后的跳转页面;

3、model模型层理解不深,可能是逻辑模型

214.java对象初始化顺序

1.类的初始化(initializationclass&interface)

2.对象的创建(creationofnewclassinstances)

顺序:应为类的加载肯定是第一步的,所以类的初始化在前。大体的初始化顺序是:

类初始化->子类构造函数->父类构造函数->实例化成员变量->继续执行子类构造函数的语句

215.一个字符串中可能存在A-Z的全角字符,写一个方法把里面的全角字符转变成半角字符?

答:采用建立字典表进行查找转换publicstaticStringtranslate(Strings){Stringqj="ABCDEFGHIJKLMNOPQRSTUVWXYZ";Stringbj="ABCDEFGHIJKLMNOPQRSTUVWXYZ";StringBuffersb=newStringBuffer();for(inti=0;i=0){System.out.println(c+","+pos);sb.append(bj.charAt(pos));}else{sb.append(c);}}returnsb.toString();}

216.写一个方法,传入一个int型的数字,把它的四个字节码取出来,并且把它按大小顺序通过控制台输出?

publicstaticvoidmain(String[]args){intnum=-800000000;Stringstr=Integer.toBinaryString(num);//获得num的二进制if(num>=0){//如果输入的数为正数,位数可能不足32位,要补0;负数肯定是32位if(str.length()<32){//二进制不足32位,就在前面补0intn0=32-str.length();//看差几个0Stringtemp="";for(inti=0;i

217..类的工厂模式怎么实现?

首先确定这些类的父类或共同的接口,担任抽象产品的角色,比如publicinterfaceIServer{publicvoidcalc(inta,intb);}然后,这些类的具体实现继承某个父类或实现共同的接口,担任具体产品角色,比如AddServer类和SubServer类publicclassAddServerimplementsIServer{publicvoidcalc(inta,intb){System.out.println(a+b);}}

publicclassSubServerimplementsIServer{publicvoidcalc(inta,intb){System.out.println(a-b);}}最后,涉及一个类充当工厂的角色,根据客户端的要求,提供具体的产品,比如publicclassServerFactory{privatestaticServerFactoryfactory;privateServerFactory(){}publicstaticServerFactorygetInstance(){if(factory==null)factory=newServerFactory();returnfactory;}//根据客户给出的名字返回对应的产品publicIServergetServer(Stringname){if("Add".equals(name)){returnnewAddServer();}elseif("Sub".equals(name)){returnnewSubServer();}else{returnnull;}}publicstaticvoidmain(Stringargs[]){IServeraddserver=ServerFactory.getInstance().getServer("Add");addserver.calc(5,3);}}

218.Web容器里面的对象存活周期?

Web容器里面的对象的存活周期由JVM控制。某个对象有容器负责实例化或应用负责实例化,如果某个对象得不到任何引用,则由JVM的垃圾收集器负责销毁。

219.struts2中action的对象的生命周期?

用spring来控制action的生命周期Struts2支持通过拦截器堆栈(InterceptorStacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。

220.annotation的使用方法和用途主要分为几类?

答1、内建Annotation——Java5.0版在java语法中经常用到的内建Annotation:

2、开发者自定义Annotation:由开发者自定义Annotation类型;

3、使用第三方开发的Annotation类型

221.说说你对IOC的理解

答:1.控制反转(InversionofControl,英文缩写为IoC)是一种设计模式;

2.控制反转还有一个名字叫做依赖注入(DependencyInjection)。简称DI;

应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。

222.从action类,servlet依赖,action执行的控制、线程模式几个方面谈struts1和struts2的区别。

答:从action类上分析:

1.Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。2.Struts2Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。

从Servlet依赖分析:3.Struts1Action依赖于ServletAPI,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execute方法。4.Struts2Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest和HttpServletResponse的必要性。从action线程模式分析:5.Struts1Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。6.Struts2Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)

223.如何理解struts,jsf,struts2的工作原理

答:1.JSF和STRUTS工作原理大致相同,有一个中心控制器即一个servlet,

2.JSF:用一个JAVABENA里的属性绑定页面表单值,而struts用ActionFrom对应表单值;

3.JSF在一个JAVABEAN里处理从页面送来的个值,而struts则是把actionFrom的值送给对象的ACTION来处理,两者都是MVC模式的.

224.整合spring与struts的方法,那种最好,为什么?

答:1.第一种方法:

Struts的Action继承Spring的ActionSupport类,并在Action中获取Spring的ApplicationContext。这是最简单的一种整合方式,但有三个缺点:第一,Struts与Spring紧密耦合,不能改换到其他IoC容器;第二,难以使用SpringAOP特性;第三,对于需要使用DispatchAction的Struts应用无能为力。

2.第二种方法:

在Struts的配置文件中,以Spring的DelegatingRequestProcessor类代替Struts的RequestProcessor类,并在Spring的配置文件中定义与Struts配置文件中对应的bean,从而将Struts的Action与Spring分开,并把Struts的动作置于Spring的控制之下。这种整合方式的优点是将不再依赖Spring这个特定的IoC容器,但必须依赖Struts的RequestProcessor类。

3.第三种方法:

通过Spring的DelegatingActionProxy类代理Struts的动作,即在Struts配置文件中,定义的type属性全部改为DelegatingActionProxy,而不是具体的类名,并在Spring配置文件中定义与Struts动作映射对应的bean,从而将Struts的Action与Spring分开,并把Struts的动作置于Spring的控制之下。无疑,这是最灵活的一种整合方式。

225.springframework与struts的不同之处

2.struts2利用成熟的struts1和webwork整合使之操作更加方便;

226.spring使用了哪些设计模式,这样用有什么好处?

Dao模式通过实现DAO,我们达到了解耦合的目的,使的程序更加的健壮,但复杂性增加了;

227.spring对多种ORM框架提供了很好的支持,结合事务管理描述spring中使用Hibernate的方法。

答:spring中采用aop模式注入hibernate的sessionfactory和事务管理,在dao中调用.Spring集成hibernate有两种方式,一是dao层只与hibernate有关,不使用任何spring的api,然后把dao注入到ioc容器.二是使用spring的hibernateDaoSupport.事务管理也可以只使用hibernate的事务管理.

228.struts中action是全局的还是局部的,为什么?

是全局

229.Hibernate有哪几种查询数据的方法?

答:hibernate在查询方式上有三种方式:HQLSQLQBC

230.http和ftp的默许使用端口是什么?

231.Ping命令的作用?

答:Ping命令的主要作用是通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通。当网络出现故障的时候,可以用这个命令来预测故障和确定故障地点

232.构造器的名能不能和类的名字相同?

答:可以!并且一定要相同

233.在一个主方法类可不可以调用一个非静态的方法?

答:可以

234.一个类中可不可以有2个公共的方法?

235.Internet的最顶级的商业域名叫什么?

答:.com

236.GC是什么,为什么要使用它?

垃圾回收(garbagecollection,GC)一个跟踪过程,它传递性地跟踪指向当前使用的对象的所有指针,以便找到可以引用的所有对象,然后重新使用在此跟踪过程中未找到的任何堆内存。公共语言运行库垃圾回收器还压缩使用中的内存,以缩小堆所需要的工作空间因为你没有足够多内存,并且,你挺懒,不去自己清理内存,所以就有了GC

237.编程题:有一个数据文件:1233417651234345....这些数据都是随机产生的,编写程序读出该文件.并将其以从大到小的顺序输出到另一个文件中.

publicvoidreadtext(){

Filefile=newFile("D:\test.txt");

Listlist=newArrayList();

BufferedReaderbr=newBufferedReader(newFileReader(file));

Stringdata="";

Stringline=null;

while((line=br.readLine())!=null){

data=data.concat(line);

StringTokenizerstoken=newStringTokenizer(data,"");

while(stoken.hasMoreTokens()){

inti=Integer.parseInt(stoken.nextToken());

list.add(i);

}catch(Exceptionex){}

String[]str=newString[list.size()];

for(inti=0;i

str[i]=list.get(i);

ObjectiTemp=null;

for(inti=1;i

for(intj=list.size()-1;j>=i;j--){

if(str[j]>str[j-1]){

iTemp=str[j-1];

str[j-1]=str[j];

str[j]=iTemp;

Stringresult="";

for(inti=0;i

result+=str[i]+"";

//将result写入另外一个文件即可。

238.从一到十九共十九个数,打印出利用这十九个整数任意多个相加等于20所以可能性,每个数字在同一个算式中只出现一次.

publicvoidtest(){

Integer[]a=newInteger[19];

for(inti=1;i<20;i++){

a[i-1]=i;

for(inti=0;i<18;i++){

for(intj=18-i;j<18;j++)

if(a[i]+a[j]==20)

System.out.println(a[i]+"+"+a[i+1]+"="+20);

239.JSP内置对象作用,如何取Cookie的方法

使用request对象的getCookies()方法取cookies

240.写几个线程安全类,不安全的,支持排序的类名?

线程安全类:Vector、Hashtable、

不安全的类:ArrayList、HashMap、Linkedlist

支持排序的类:TreeSet

JDK也提供一个对集合类进行线程安全处理的类Collections类,可以对一些非结程安全的类进行同步处理。

241.将ISO8859-1字符串转成GB2312编码,语句为?

Strings=newString(text.getBytes(“iso8859-1”),”gb2312”).

242.说出你用过的J2EE标准的WEB框架和他们之间的比较?

243.类库有哪些?

Xerces,JDOMdom4jXOMjConfigXStream

244.与<%@include>的区别

动态INCLUDE用jsp:include动作实现它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面,不能实现参数共享。

245.怎么样手动启动Oracle数据库?

答:第一步:启动Oracle在OS下的监听程序。第二步:启用OS下的实例服务。第三步打开数据库。

246.WEBSERVICE的理解

WebService主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。WebService所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以WebService可以在任何支持这些标准的环境(Windows,Linux)中使用。注:SOAP协议(SimpleObjectAccessProtocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。

247.写一个递归编程

publicclassTest{

staticintmultiply(intn){

if(n==1||n==0)

returnn;

returnn*multiply(n-1);

System.out.println(multiply(10));

248.AWT和Swing的区别?

一般swing组件是从awt组件扩展的,swing是轻量组件而awt是重量组件,AWT是比较依赖操作系统组件,功能少,Swing不依赖,组件多,功能多窗口风格更多样化Swing是由纯JAVACODE所写的,解决了JAVA因窗口类而无法跨平台的问题,使窗口功能也具有跨平台与延展性的特性,而且SWING不需占有太多系统资源,并且一些组件也采用一些更开放式的开发方式,支持更多的扩展。

249.哪几个方法可以实现一个线程?

250.STOP()和SUSPEND()不推荐使用的原因?

因为stop本质上就是不安全的。停止线程会导致解锁它已锁定的所有监视程序。suspend从本质上就是易于死锁的一种操作。

251.JAVA事件有哪些模式?

1.事件直接驱动模式。它的第一个要求就是性能的要求,需要直接而且快,是必须经常使用的,主要适合于迅速处理前台的命令,往往是系统架构的重要部分,也是流程控制的主要模式。2.监控式事件模式是借助第三者来监控和触发事件,特点是:有一个观察者置身事外在定期独立运行着。

functioncheckSubmit()

{if((document.form1.name.value)=='')

window.alert('姓名必须填写');

document.form1.name.select();

document.form1.name.focus();

253.uml三要素.

事物、关系、图

254.EJB规范规定的EJB禁止的操作有哪些?

1.不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等),

2.不能操作awt,

3.不能实现服务器功能,

4.不能对静态属生存取,

5.不能使用IO操作直接存取文件系统,

6.不能加载本地库.,

7.不能将this作为变量和返回,

8.不能循环调用。

255.TRUNCATE和DELETE有以下几点区别?

1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。

2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。

3、TRUNCATE将重新设置高水平

答:HTTP:超文本传输协议(HypertextTransferProtocol)

TCP/IP(TransmissionControlProtocol/InternetProtocol)的简写,中文译名为传输控制协

257.//编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。

//但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6应该输出为“我ABC”而不是“我ABC+汉的半个”。

publicstaticvoidmain(String[]args)throwsException{

Stringstr="我a爱中华abcdef';

Stringstr="我ABC汉";

intnum=trimGBK(str.getBytes("GBK"),5);

System.out.println(str.substring(0,num));

publicstaticinttrimGBK(byte[]buf,intn){

intnum=0;

booleanbChineseFirstHalf=false;

for(inti=0;i

if(buf[i]<0&&!bChineseFirstHalf){

bChineseFirstHalf=true;

num++;

bChineseFirstHalf=false;

returnnum;

258.java程序每天12点打印”hello”

Datedate=newDate();

System.out.println(date.getHours());

while(true){

while(date.getHours()==12){

if(date.getMinutes()==0){

if(date.getSeconds()==0){

System.out.println("helloworld!");

259.编程题:读取一个文件在控制台打印出来

Filefile=newFile("E:\\课件\\二期课件\\Java\\T09src\\JRadioButtonDemo.java");

longfile_length=file.length();

//输入流

FileInputStreaminput=newFileInputStream(file);

byteb_data[]=newbyte[(int)file_length];

input.read(b_data);

System.out.println(newString(b_data));

input.close();

}catch(FileNotFoundExceptione){

}catch(IOExceptione){

260.解析XML的方法及对它的了解?

答::有DOM,SAX,STAX等

DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问

261.你所熟悉的开源组件和框架,简单介绍下

答:FileUpload、POI、WebWork、Struts1/2、hibernate、spring、Ajax、Ibatis

262.要求WEB2。0是什么东西?

Web1.0的主要特点在于用户通过浏览器获取信息。Web2.0则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。所谓网站内容的制造者是说互联网上的每一个用户不再仅仅是互联网的读者,同时也成为互联网的作者;不再仅仅是在互联网上冲浪,同时也成为波浪制造者;在模式上由单纯的“读”向“写”以及“共同建设”发展;由被动地接收互联网信息向主动创造互联网信息发展,从而更加人性化

webservice和soap的区别?

WebServiceWebService是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得WebService能与其他兼容的组件进行互操作。

SOAP即简单对象访问协议(SimpleObjectAccessProtocol),它是用于交换XML编码信息的轻量级协议。它是Webservice所采用的主要协议之一

263.介绍几种WEB服务器,问Tomcat里面的文件组成?

IIS、apache、Tomcat

bin:启动,关闭Tomcat的命令.

common/lib:网络编程的jar文件.

conf:配置文件.

logs:日志文件.

server:自带的web应用(三个).

shared:所有web应用都可以访问的内容.

temp:临时.

webapps:默认站点文件夹.

work:jsp生成的类.

Tomcat是一个开放源代码、运行servlet和JSPWeb应用软件的基于Java的Web应用软件容器。TomcatServer是根据servlet和JSP规范进行执行的,因此我们就可以说TomcatServer也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。

264.ThreadLocal在项目中的实际意义?

ThreadLocal和其它同步机制相比从另一个角度来解决多线程的并发访问,它为每一个线程维护一个和该线程绑定的变量的副本,从而隔离了多个线程的数据,每一个线程都拥有自己的变量副本,从而也就没有必要对该变量进行同步了。还提供了线程安全的共享对象,在编写多线程代码时,可以把不安全的整个变量封装进ThreadLocal

ThreadLocal可以大量减少参数的传递,可以使代码简洁,但一个线程会绑定多个自己定义的局部对象,ThreadLocal是抽象在线程上的对象创建工厂,目前的Tomcat5使用了线程池,一个线程处理一个request,这样ThreadLocal对象可以抽象的绑定在request生命周期,不会存在线程危机,而且线程池也平衡了这些ThreadLo

265.不同的数据库里面有相同的表实现同步更新(从多方面考虑)

--用触发器可以实现两个数据表之间的数据同步更新ForExample:CreateTriggerroom_texes_change_idonroomforupdateasifupdate(room.cstname)settexes.cstname=room.cstnamewheretexes.id=room.id。

266.ejb是基于哪些技术实现的,和javabean的区别?

267.适配器模式解释:

268.Gc是什么,为什么要有GC

GC是垃圾收集的意思(GabageCollection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

269.switch可以作用于byte吗?可以作用于long,可以作用于string吗?

switch(expr1)中,expr1是一个整数表达式。因此传递给switch和case语句的参数应该是int、short、char或者byte。long,string都不能作用于swtich。

270.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后

也许你的答案是在return之前,但往更细地说,我的答案是在return中间执行,请看下面程序代码的运行结果:

//TODOAuto-generatedmethodstub

System.out.println(newTest().test());;

staticinttest()

intx=1;

try

returnx;

finally

++x;

---------执行结果---------

1

运行结果是1,为什么呢?主函数调用子函数并得到结果的过程,好比主函数准备一个空罐子,当子函数要返回结果时,先把结果放在罐子里,然后再将程序逻辑返回到主函数。所谓返回,就是子函数说,我不运行了,你主函数继续运行吧,这没什么结果可言,结果是在说这话之前放进罐子里的。

271.两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对

对。

如果对象要保存在HashSet或HashMap中,它们的equals相等,那么,它们的hashcode值就必须相等。

如果不是要保存在HashSet或HashMap,则与hashcode没有什么关系了,这时候hashcode不等是可以的,例如arrayList存储的对象就不用实现hashcode,当然,我们没有理由不实现,通常都会去实现的。

272.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递

引用传递。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。

273.在Oracle中数据库中的一个表中,这个表没有主键id也没有特定标示来查数据,怎么查?

[题意不明:考虑从面试者的角度能是考伪列和rownum的内容]

考虑使用Oracle的伪列rowid来查询

274.概述反射和序列化

反射Reflection是Java程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查;能直接操作程序的内部属性和方法。

简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。而把Java对象转换为字节序列的过程称为对象的序列化。

275.简述WebService和Remoting的特点和运用场景

WebService主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。WebService所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以WebService可以在任何支持这些标准的环境(Windows,Linux)中使用。Remoting依赖于特定语言的远程调用机制,比如Java的RMI/IIOP它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。

276.dao是什么及作用

DAO组件主要提供数据库访问操作,主要是对各自数据表的CRUD方法,在一般设计过程中为了考虑松耦合的问题,业务逻辑层中不应当牵涉到任何持久层实际操作,所以可以将各数据源表的操作特性封装到DAO组件中去,这样增强了系统的可读性、可维护性。

277.Inserted和deleted的含义?

SQLServer的DML触发器中两个临时表

inserted表反映插入或更新操作时插入的记录

deleted表反映删除或更新操作时删除的记录

278.3个框架在项目在项目当中的用,basedao是用来做什么的。

DAO组件主要提供数据库访问操作,针对不同数据源表进行了封装,这样可以提供其它层的访问接口,使得组件之间解耦,而BaseDAO是这些所有不同DAO的公共特性的封装,针对一些可以进一步进行细化的DAO组行的进一步抽象,使组件的移值性更为灵活。

279.Orace中除了数据库[XX]备份,还有什么方法备份?

1.导出/导入(EXP/IMP)。

2.热备份。热备份是在数据库运行的情况下,采用archivelogmode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。

3.冷备份。冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。

280.jsp与servlet中请求转发的区别

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址,但此转发是连续的转发,在转发过程中请求参数也连续转发到目标地址中。

redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求。前者对请求是连续的,后者是重新发送一个新的请求,所以只能重新发送新的请求参数,原有的请求参数将不再连续到目标页面。

281.分页的优化需考虑哪些

sql语句的优化:ID排除法、三层嵌套等

表的优化:适当使用索引

282.web运用程序的稳定、安全需要考虑哪些

Web服务器的性能考虑主要有:并发用户数、事务安全、负载均衡、时段流量、网络带宽

安全性:

·关键数据的保护,例如用户数据等

·功能服务的正常提供。

·网站的防攻击能力

·对异常灾害的恢复能力

程序性能:

·错误的检测和拦截

·扩展性

283.问spring的AOP,mvc到底是怎么优化程序的结构?

SpringAOP主要提供了Pointcut、Aspects等以及它们如何被织入应用程序、代理的方式等等进行优化的控制。而SpringMVC里面前端控制器叫做DispatcherServlet。里面充当Action的组件叫做Controller,返回的视图层对象叫做ModelAndView,提交和返回都可能要经过过滤。从而提高程序可读性和稳定性。

284.笔试:1.LinkedList和ArrayList内部是如何实现的?newArrayList(10)意思

newArrayList(10)构造一个初始容量为10的空列表

285.定义一个变量,Varv=newObject(),用js编写的简便写法是什么?

varv={};

286.网上购物系统的类图,用例图。

287.给你一个整数类型的数组,按从小到大的顺序进行排列!

Array.sort(inta[]);//默认为升序排列

288.查询出M页的N行数据。

SQL实现:selecttopNfromawhereidnotin

(selecttop每页显示*(M-1)idfromstudentsorderbyid)orderbyid

MYSQL:select*fromalimitm,n

289.把二叉树从小到大遍历出来怎么实现?

publicclassNode{

publicintvalue;

publicNodeleft;

publicNoderight;

publicvoidstore(intvalue)

if(value

if(left==null)

left=newNode();

left.value=value;

left.store(value);

elseif(value>this.value)

if(right==null)

right=newNode();

right.value=value;

right.store(value);

publicbooleanfind(intvalue)

System.out.println("happen"+this.value);

if(value==this.value)

if(right==null)returnfalse;

returnright.find(value);

}else

if(left==null)returnfalse;

returnleft.find(value);

publicvoidpreList()

System.out.print(this.value+",");

if(left!=null)left.preList();

if(right!=null)right.preList();

publicvoidmiddleList()

publicvoidafterList()

publicstaticvoidmain(String[]args)

int[]data=newint[20];

for(inti=0;i

data[i]=(int)(Math.random()*100)+1;

System.out.print(data[i]+",");

System.out.println();

Noderoot=newNode();

root.value=data[0];

for(inti=1;i

root.store(data[i]);

root.find(data[19]);

root.preList();

root.middleList();

root.afterList();

290.mysql分页怎么实现,oracle分页怎么实现,他们之间的区别?

Ajax是一个RIA应用技术,解决富Web客户端问题,提高用户体验的

jms是Java的消息服务系统,解决Java分布式应用消息异步通信

mysql中的limit关键字查询出指定区间的记录进行分页。

oracle中通过rownum来记录结果集记录编号实现分页

291.描述struts体系结构?对应各个部分的开发工作主要包含哪些?

按MVC设计的Web架构,

其中Model为ActionForm组件的设计

View为Struts标签的使用

Controller为Action组件的设计和ActionServlet的配置

292.组合优于继承。你是否同意这句话,并说明

继承和组合都可以实现代码的重用(Reuse),为什么组合要优于继承呢?

通过继承,子类能够获得与父类相同的功能和属性,父类拥有了某种功能,子类就有了;但是如果子类需要新的功能,直接在父类里面增加新的功能,那么会导致所有的子类同时拥有这种功能,这实际上是将类的功能与类紧紧的耦合在一起,是一种紧密耦合系统,由于关系相当密切,导致改动一处而动全身,实际上不利于代码的重用。而组合恰好相反,她把类的各项功能分割开,互不干涉。一个类的功能,实际上是各种子功能的组合,比如鸭子的功能就是飞行功能和发出叫声功能的组合,无论是何种鸭子,都是这样。同时到底是怎样飞行,怎样叫,又可以通过面向接口的编程实现多态。

51.javascript取浏览器的版本里面还有哪些对象?

functiongetBrowser(){

varbro=navigator.userAgent.toLowerCase();

if(/msie/.test(bro))return'IE'+bro.match(/msie([\d.]*);/)[1]

elseif(/navigator/.test(bro))return'NS'+bro.match(/navigator\/([\d.]*)/)[1]

elseif(/chrome/.test(bro))return'CR'+bro.match(/chrome\/([\d]*)/)[1]

elseif(/safari/.test(bro))return'SF'+bro.match(/version\/([\d]*)/)[1]

elseif(/opera/.test(bro))return'OP'+bro.match(/version\/([\d]*)/)[1]

elseif(/firefox/.test(bro))return'FF'+bro.match(/firefox\/([\d]*)/)[1]

293.如何运行本地的EXE文件?

双击运行,或者在DOS窗口中通过命令运行

294.struts中的prepare怎么用?

首先Action组件实现Preparable接口的prepare()方法,在配置Action组件时应用PrepareInterceptor拦截器。

295.Hrbernate的二级缓存讲述。

hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。

二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等。hibernate在执行任何一次查询的之后,都会把得到的结果集放到缓存中,缓存结构可以看作是一个hashtable,key是数据库记录的id,value是id对应的pojo对象。当用户根据id查询对象的时候(load、iterator方法),会首先在缓存中查找,如果没有找到再发起数据库查询。

296.如果做个招聘网站性别只招男的,年龄20-30,如果不匹配就不能让他投简历,怎么实现?填身份证时如何让该人信息全部显示出来?

使用JavaScript做客户端检验,填身份证时使用Ajax获取人员信息;

297.软件的开发过程、以及角色?

软件立项à需求分析à概要设计à详细设计à编码测试à验收运行

||||

|------------分析员---------|--------------程序员---------------|------------测试员-------|

298.Io流InputStream与Reader的区别,怎样将字符流转换成字节流

InputStream字节输入流、Reader字符输入流

OutputStreamWriter是字符流通向字节流的桥梁

InputStreamReader是字节流通向字符流的桥梁

299.启动线程调用那个方法?为什么要调用start()方法?若调用run()方法会出现什么情况?

面试题上有

300.Struts2.0若在一个方法中返回的是null,表明什么struts.xml还需要配置吗?为什么?struts有那些标签?struts.xml中有那些标签?

方法返回null,表示没有视图结果回应,当然自己通过流直接输出响应结果,则struts.xml只需对Action进行映射配置,而无须进行结果配置。

301.Hibernate运行的流程?优缺点?为什么insert比select快?可以批量insert一些数据吗?

以面向对象的方式操作数据库,进行增删改很方便,但执行复杂的查询时则很费事麻烦。

hibernate可批量insert一些数据,配置文件中设置hibernate.jdbc.batch_size参数,来指定每次提交SQL的数量。

302.sqlserver查询怎样取得JAVA虚拟机默认的编码方式?

可通过Charset.defaultCharset()来获取

303.智力题:

1、有一辆火车以15公里/小时从洛杉矶开往纽约,一辆火车以20公里/小时从纽约开往洛杉矶,一只鸽子以30公里/小时从洛杉矶开往纽约,鸽子和两辆火车同时出发,鸽子遇到火车转头,向另一辆火车飞,直到两辆火车相遇,问鸽子飞了多少公里?

假设洛杉矶到纽约的距离为s

那小鸟飞行的距离就是(s/(15+20))*30。

2、有两根不匀称的香,烧完1小时,问如何知道15分钟

把香称重,取出总重量的1/4

3一群人在一黑屋子,有黑白2种帽子,每人可以看其他人的帽子,至少1顶黑帽子。如果知道自己是黑帽子,打自己一巴掌。第一次开灯,无人,关灯。第二开灯,无人,关灯。第3次,听到劈劈啪啪的声音。问有几顶黑帽子。

304.什么是联通图的生成树?

什么是哈夫曼树?什么是平衡二叉树?写一个深度优先排序,写一个广度优先排序?写出C语言对链表HEAD的排序?

连通图的生成树——是连通图的一个极小连通子图,它含有图中全部顶点,但只有足以构成一棵树的n-1条边。

哈夫曼树又称最优树(二叉树),是一类带权路径最短的树。构造这种树的算法最早是由哈夫曼(Huffman)1952年提出,这种树在信息检索中很有用。

如果任意节点的左右子树的深度相差不超过1,那这棵树就是平衡二叉树。

305.哪些不是JAVA关键字:TRUEsizeofnative是关键字

sizeof不是大写的TRUE不是

306.怎样知道给出的两条线段是否相交,用伪码实现。

假设线段AB,A(X1,Y1),B(X2,Y2);线段CD,C(X3,Y3),D(X4,Y4);

1。判断两斜率相等则不相交

2。若斜率不等

307.ORACLE数据库用到了哪些方面,怎样优化数据库。SQL语句过长时,怎样优化?

(1)使用分区这种手段。所谓分区就是动态地将表中的记录分离到若干不同的表空间上,使数据在物理上被分割开来,便于维护、备份、恢复、事务及查询性能。

(2)重建索引,及时回收那些未使用空间,提高空间利用率。

(3)调整SGA参数

sql语句长:用存储过程!

308.JAVASCRIPT的一些常用东西:如提示框如何实现的:MVC

使用jQuery等第三方的插件Dialog即可,无需重复造轮子。

309.两个SQL语句一个ArrayList里面存了一些Student对象,Student对象有Name和Age两人属性,此类里面有set和get方法,要求以Age来降序排序。

要求Student实现Comparable接口的compareTo()方法来按照age判断对象的大小,并且大于时返回-1,小于时返回1,相等则返回0。

310.有一些奇数和偶数,无序的,要求写一个方法,实现将所有的奇数放在全部的偶数前面

主要代码如下:主要采用快速排序的算法。

int[]n={1,2,5,6,4,7,10,9,3,8};

intm=n[0];

intj=n.length-1;

inti=0;

while(i

while(i

if(j>=i){

n[i++]=n[j];

while(i

if(i<=j){

n[j--]=n[i];

n[i]=m;

for(intk=0;k

System.out.print(n[k]+"");

311.你对工作流和表单的理解

一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述。一个完整的工作流管理系统通常由工作流引擎、可视工作流设计、流程操作、工作流客户端程序、流程监控、表单设计工具、与表单的集成以及与应用程序的集成八个部分组成。工作流引擎作为工作流管理系统的核心部分,主要提供了对于工作流定义的解析以及流程流转的支持。

表单用来显示查询或输入的业务数据。

312.Classpath怎么设置和它的意义是什么?

比如,setCLASSPATH=C:\Java\jdk1.6.0_10\lib\dt.jar;.

设置class文件的搜索路径

313.用java写一个读取盘符的名字

newFile("").getAbsolutePath().substring(0,1);

314.DeprecatedAPI是什么意思?

deprecated是指已经过时,但是为了向前兼容起见仍然保留的方法,这些方法可能会在以后取消支持。你应当改用较新的方法。一般在API里面会说明你应当用什么方法来代替之。

315.如何去掉JAVA的内存机制?

是不是垃圾回收机制,使用System.gc()强制回收。

316.缺少IDE如何编译JAVA代码?

使用JDK的javac.exe直接手工编译

或使用Apache的ANT脚本构建

317.THHP与HTTPS有什么区别?

318.Session的具体用法?

1.ibatis中的#与$的区别

1.#是把传入的数据当作字符串,如#field#传入的是id,则sql语句生成是这样,orderby"id",这当然会报错..

2.$传入的数据直接生成在sql里,如#field#传入的是id,则sql语句生成是这样,orderbyid,这就对了.

3.#方式能够很大程度防止sql注入.

4.$方式无法方式sql注入.

5.$方式一般用于传入数据库对象.例如传入表名.

6.一般能用#的就别用$.

319.请裂举session、cookie、viewstated的应用范围

Cookie客户端维护,程序可指定生命周期,

ViewState小量数据,一个web页面的生命期

320.用什么方法使服务器关闭之后,session所保存的信息不会丢失?

将session信息保存到数据库中或文件中

321.B2C和C2C你们是怎么区别的?

Business(企业)、Customer(消费者)

B2C的B是Business企业,2则是to的谐音,C是Customer消费者,所以B2C是企业对消费者的电子商务模式。这种形式的电子商务一般以网络零售业为主,主要借助于Internet开展在线销售活动。B2C简而言之是就是商家与顾客之间的商务活动,也就是通常所说的“网上购物网站”,企业、商家可充分利用电子商城提供的网络基础设施、支付平台、安全平台、管理平台等共享资源有效地、低成本地开展自己的商业活动。

C2C就是消费者(consumer)与消费者(consumer)之间的电子商务。打个比方,比如一个消费者的有一台旧电脑,通过网上拍卖,把它卖给另外一个消费者,这种交易类型就称为c2c电子商务。主要是指网上拍卖。c2c模式的特点就是大众化交易,因为是个人与个人之间的交易!

322.用最好效率写一个2*17等于多少?

(2<<4)+2

323.用4个0,用你所知道的数学方法计算出24

324.10怎样计算等于24?(10×10-4)÷4=24

325.有一个长方形蛋糕,切掉长方形一块,怎样一刀切下去成大小相等两块

将完整的蛋糕的中心与被切掉的那块蛋糕的中心连成一条线。这个方法也适用于立方体

326.九个球不知道哪个轻重,让你称?

4个和4个称,若相等则剩下一个是比较重要(2)若不相等,则往那边不相等的那4个球中取两个分为一组,则左2个,右2个,则有左边或右边右一个是比较重的,从任意一边取一个投入另一方,并记住这个球,从其它4个取两个放入另外一边,并记住这两个球,若从一边取走的放到另一边后,那边重,则这球比较重要,若从一边取走的放到另一边后,那边轻,则为另外一边所剩的一个球发

Java基础部分:

1.怎样得到一个文件的后缀名,io的设计思路:

ü调用File.getName()得到文件完整名fname

ü得到文件名中的.号位置intpoc=fname.indexOf(".");

ü得到后缀ftype=fname.substring(poc+1);

2.intx=1inty='a'<'A'x--:x++;,求x的最终值:2;

3.Integera和intb运行之后a和b有什么不同?都没有赋值的情况下他们的初始值各是什么

答:Integera定义为整型变量对象,默认值为null;intb定义为整数变量,默认值为0;

4.什么原因,怎么解决NullPointerException异常?

答:对没有赋值或为null的对象进行处理会导致NullPointerException异常,最好在使用对象变量之前对该变量进行非null判断

5.PHP中:echo和print的区别?

答:echo可以同时输出多个字符串,并不需要圆括号;print只可以同时输出一个字符串,需要圆括号。

6.(编程题)求一百以内质数

publicclassZhiShu{

System.out.println("1~100的质数有:");

for(intn=1;n<=100;n++){

booleanb=true;

if(n!=1){

for(inti=2;i

if(n%i==0){

b=false;

if(b){

System.out.println(n);

7.六行五列字符串数组(分别用C和java实现)

Java:inta[][]=newint[6][5];//java申明不需要初始化,此时有默认值

C:intb[6][5];//C申明必须要初始化值

8.(编程题)把int值保存在byte数组中〈高位在前〉

importjava.io.ByteArrayOutputStream;

importjava.io.DataOutputStream;

publicclassIntToByte{

System.out.println(byteArrayToInt(intToByteArray1(456548)));

System.out.println(byteArrayToInt(intToByteArray2(456548)));

/**

*将int值转换称byte数组方法1

*/

publicstaticbyte[]intToByteArray1(inti){

byte[]result=newbyte[4];

result[0]=(byte)((i>>24)&0xFF);

result[1]=(byte)((i>>16)&0xFF);

result[2]=(byte)((i>>8)&0xFF);

result[3]=(byte)(i&0xFF);

returnresult;

*将int值转换称byte数组方法2

publicstaticbyte[]intToByteArray2(inti)throwsException{

ByteArrayOutputStreambuf=newByteArrayOutputStream();

DataOutputStreamout=newDataOutputStream(buf);

out.writeInt(i);

byte[]b=buf.toByteArray();

out.close();

buf.close();

returnb;

9.(编程题)写一个方法:输入的是文件名,输出的是文件内容字符串(FileToString.java考察IO与String与StringBuffer的区别)

Filef=newFile("hello.txt");

StringBuffersb=newStringBuffer();

FileReaderin=newFileReader(f);

char[]buf=newchar[1024];

while(in.read(buf)!=-1){

//将每次读取的内容放到StringBuffer中

sb.append(newString(buf).trim());

System.out.println(sb.toString());

catch(Exceptione){

System.out.println(e.getMessage());

10.(编程题)创建个静态方法,传个对象,循环打印对象的类名跟方法名,用代码(反射机制)

publicstaticvoiddisplay(Objectclazz)throwsClassNotFoundException{

System.out.println("对象的类名....."+clazz.getClass().getName());

//得到构造方法

Constructorcons[]=clazz.getClass().getConstructors();

for(inti=0;i

Constructorc=cons[i];

Stringname=c.getName();

Classcs[]=c.getParameterTypes();

System.out.print("对象的构造方法....."+c.getModifiers()+""+name

+"(");

for(intj=0;j

System.out.print(""+cs[j].getName()+"");

System.out.println(")");

//得到其他方法

Methodmethod[]=clazz.getClass().getMethods();

for(inti=0;i

Methodm=method[i];

Stringname=m.getName();

Classms[]=m.getParameterTypes();

System.out.print("对象的其他方法....."+m.getModifiers()+""+name

for(intj=0;j

System.out.print(""+ms[j].getName()+"");

11.(编程题)写一个判断对称数的方法

*对称数就是顺读和反读都一样吗,你可以用一个String接受用户输入,

*然后把它反转,判断前后是不是equals就可以了。

*例如123321就是对称数

publicstaticvoidRegularNumberTest(){

Stringnum1=newScanner(System.in).nextLine();

Stringnum2="";

for(intj=num1.length()-1;j>=0;j--){

chara=num1.charAt(j);

num2+=a;

if(num2.equals(num1)){

System.out.println(num1+"是对称数.");

System.out.println(num1+"不是对称数.");

12.String和StringBuilder的区

答:StringBuilder是一个可变的字符序列,该类提供一个与StringBuffer兼容的API,但不保证同步,存储效率比StringBuffer高;而String是不可变的对象;

13.Stringstr=newString(“abc”)内存中怎么分配的?

答:先在栈中分配一块空间,存放str,然后会在堆中分配一块空间,存放abc,且栈中的str指向堆中的abc地址

14.(编程题)1.1.2.3.5.8.13.21.求N位是多少,用递归实现

//1.1.2.3.5.8.13.21.求N位是多少

publicstaticintamwih(inti){

if(i<=0)

elseif(i>0&&i<=2)

return1;

returnamwih(i-1)+amwih(i-2);

15.128>>1和128<<1结果分别是多少?

答:128>>1=64;

128<<1=256;

16.(编程题)用程序打印出下面的金字塔:(杨辉三角)

11

121

1331

14641

15101051

1615201561

1n-1......n-11

importjava.util.Scanner;

publicclassYangHuiSanJiao{

intarray[][];

publicvoidcreat(){

for(inti=0;i

for(intj=0;j

if(j==0)

array[i][j]=1;

elseif(i==j)

elseif(j>i)

array[i][j]=0;

array[i][j]=array[i-1][j-1]+array[i-1][j];

intn,m;

System.out.println("请输入行数n:");

Scannersc=newScanner(System.in);

n=m=sc.nextInt();

YangHuiSanJiaoaa=newYangHuiSanJiao();

aa.array=newint[n][m];

aa.creat();

for(inti=0;i

for(intj=0;j

if(aa.array[i][j]==0)

System.out.print("");

System.out.print(aa.array[i][j]+"");

17.(编程题)给出一个数字,如123456,输出123.456,输入1234567,输出123.456.7,但是输入如12,输出是12。(但是不能用format)即针对整数使用财会方式进行输出提示,考察对字符的使用技巧

publicstaticStringnumberFormat(intnum){

StringBuffersb=newStringBuffer(String.valueOf(num));

intsblen=sb.length();

intindex=0;

while(index+3

index=index+3;

sb=sb.insert(index,".");

sblen++;

returnsb.toString();

18.简要介绍java如何实现安全性

Java通过提供一个”安全沙箱“来保证从网络或者其他不信任的地方下载并运行的程序不会破坏本地数据,其中包括:

ü类装载器结构

üclass文件检验器

ü内置于Java虚拟机(及语言)的安全特性

ü安全管理器及JavaAPI

19.为什么说java是解释性的?

答:java是由java源代码编译成字节码存放在.class文件中的.而执行时,是由java虚拟机(jvm)读取字节码文件翻译并执行的.所以java是解释性的

20.(编程题)1)实现从字符串"你好,欢迎来到我们公司面试",提取中文字符串2)把上题中的"我们公司"改写成"玄武科技"

Stringstr="你好,欢迎来到我们公司面试";

intindexS=str.indexOf("")+6;

intindexE=str.lastIndexOf("");

str=str.substring(indexS,indexE);

System.out.println(str);

str=str.replaceAll("我们公司","玄武科技");

21.(编程题)写一个流的读入程序,每次只能读一行

BufferedReaderbr=newBufferedReader(newFileReader(newFile("hello.txt")));

Strings=null;

//readLine()包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回null

while((s=br.readLine())!=null){

System.out.println(s);//转换成字符

22.CURD是什么,怎么实现

CURD:Cread、Update、Read、Delete,就是对数据库记录的创建(添加insert)、修改、读取(select)、删除;

在java编程中主要是通过jdbc来实现的,但可以使用其他的中间件来简化jdbc的复杂操作,例如hibernate、ibatis等;

23.(编程题)求一个二叉树中值的和(考察遍历二叉树)

//前序遍历,同时记录出所有节点值的和

privateintfirstRootSum(TreeNoderoot,intsum){

if(root!=null){

sum=sum+root.getNum();

sum=firstRootSum(root.getLeft(),sum);//左

sum=firstRootSum(root.getRight(),sum);//右

24.Java代码如下personp=newperson();中p放在什么位置?

答:其中对象句柄p放在栈中

25.(编程题)字符串的分割如“abc|ddd||0dc”写一个类似split的方法分割输出出来

//Object[]obj=SplitString2.splitString("|abc|de||e|||","|");

publicstaticObject[]splitString(Stringstr,Stringregex){

ArrayListalist=newArrayList();

StringBuffersb=newStringBuffer(str);

intindex=-1;

while((index=sb.indexOf(regex))!=-1){

if(index!=0){

alist.add(sb.substring(0,index));

sb=sb.replace(0,index+1,"");

alist.add(sb.toString());

alist.remove("");

returnalist.toArray();

26.N个Integer的向量(Vector),可以为1到N+1之间任何一个,其中里面的值互不相同,即Vector中不包含重复值。因为有N个对象,可能的值有n+1个,有一个值没有包含在内,问是哪个值没有包含在内?(用Vector.get()或Vector.size()实现)

Vectordata=newVector();

//初始化data的N个元素为1~N+1之间的值,且不从重复

booleanisIn=false;

for(inti=1;i<=N+1;i++){

isIn=false;

for(intj=0;j

if(data.get(j).intValue()==i){

isIn=true;

if(!isIn){

//当前的i为要找的

27.(编程题)给你一组数据,如(1,3,5,5,2,6,1)写一个程序要求输出其中出现次数最多数值最大的数,并输出出现几次

inta[]=newint[]{1,3,5,5,5,6,1,1};

HashMaphmap=newHashMap();

//统计每个数字出现的次数

for(inti=0;i

if(hmap.get(a[i])==null){

hmap.put(a[i],1);

intnum=(Integer)hmap.get(a[i]);

hmap.put(a[i],++num);

//分别存放出现次数最多的次数,及其对应的值

intmaxNum=Integer.MIN_VALUE,maxCount=Integer.MIN_VALUE;

intnum;//存放从集合中得到的key值

Setkset=hmap.keySet();

Iteratorites=kset.iterator();

while(ites.hasNext()){

num=(Integer)ites.next();

if((Integer)hmap.get(num)>maxCount){

maxNum=num;

maxCount=(Integer)hmap.get(num);

}elseif((Integer)hmap.get(num)==maxCount){

if(num>maxNum){

System.out.println("出现次数最多数值最大的数"+maxNum+"出现"+maxCount+"次");

28.(编程题)如图:(其实就是个二叉树的存储方式;给个节点,输出该节点下的所有孩子节点)

A

BC

DEFG

(1)数据结构描述上面的图形结构:二叉树

(2)按层次打印出上面图形的结构如输入B打出B,D,H,I,E

publicclassBinaryTreeChar{

privateCharTreeNoderoot;

publicBinaryTreeChar(charnum){

this.root=newCharTreeNode(num);

*添加节点,默认是给树根添加节点

*

*@paramnum

publicvoidadd(charnum){

this.addTreeNode(root,num);

privatevoidaddTreeNode(CharTreeNodenode,charnum){

if(num>=node.getNum()){

if(node.getRight()!=null){

addTreeNode(node.getRight(),num);

node.setRight(newCharTreeNode(num));

if(node.getLeft()!=null){

addTreeNode(node.getLeft(),num);

node.setLeft(newCharTreeNode(num));

//遍历

privatevoidprintInfo(CharTreeNodenode,booleanbool,charc){

if(node==null)

if(bool||node.getNum()==c){

bool=true;

System.out.print(node.getNum()+"");//根

printInfo(node.getLeft(),bool,c);//左

printInfo(node.getRight(),bool,c);//右

BinaryTreeCharbtree=newBinaryTreeChar('E');

btree.add('D');

btree.add('G');

btree.add('H');

btree.add('I');

btree.add('B');

btree.add('A');

btree.add('C');

btree.printInfo(btree.root,false,'D');

*树节点

*@authoradmin

classCharTreeNode{

privatecharnum;//节点值

privateCharTreeNodeleft;//左孩子节点

privateCharTreeNoderight;//右孩子节点

publicCharTreeNode(charnum){

this.num=num;

this.left=null;

this.right=null;

publicCharTreeNodegetLeft(){

returnleft;

publicvoidsetLeft(CharTreeNodeleft){

this.left=left;

publicchargetNum(){

publicvoidsetNum(charnum){

publicCharTreeNodegetRight(){

returnright;

publicvoidsetRight(CharTreeNoderight){

this.right=right;

29.字符集与字符编码有什么区别?

字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

字符编码(CharacterEncoding):是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。即在符号集合与数字系统之间建立对应关系,它是信息处理的一项基本技术。

30.(编程题)写一个递归函数,输入一个整数,反序输出这个整数

//写一个递归函数,输入一个整数,反序输出这个整数

publicstaticvoidprintOut(intn){

System.out.print(n%10);

if(n>=10){

printOut(n/10);

31.(编程题)小明一家五口信息都放在list中,每个对象包含姓名,出生,根据爸爸姓名查爸爸生日,程序题

publicclassPersonClass{

privateStringname;

privateDatebirthday;

publicPersonClass(Stringname,Datebirthday){

this.birthday=birthday;

ArrayListlist=newArrayList();

list.add(newPersonClass("小明",newDate()));

list.add(newPersonClass("小明姐",newDate()));

list.add(newPersonClass("小明弟",newDate()));

list.add(newPersonClass("小明妈",newDate()));

list.add(newPersonClass("小明爸",newDate()));

for(PersonClasspc:list){

if(pc.name.equals("小明爸")){

System.out.println(pc.birthday);

32.有什么方法能将ArrayListlist转为数组?

答:list.toArray()

33.Tread和threadlocal的作用及区别?

答:threadlocal是线程局部变量(threadlocalvariable),为每一个使用该线程的线程都提供一个变量值的副本,使每一个线程都可以独立地改变自己的副本,而不会和其他线程的副本产生冲突;

34.写一个普通优盘的测试用例,需要考虑那些方面

功能测试:

1在windowsxp比较流行的操作系统上是否可以识别(装了驱动后是否可以)

2在电脑上显示的盘符是否正确

3总空间,可用空间,已用空间是否显示正确

4u盘中是否可以拷入各种格式的各类文件(图片,视频,文档,网页...)

5是否可以拷入拷出大文件

6正常操作拷入的文档等是否显示乱码

7拷文件的过程中是否可以取消

8拷文件的过程中拔掉u盘后,u盘是否损坏

9拷文件的过程中电脑关机后,u盘是否损坏

10u盘的开关是否起作用

12正常操作,拷入的文件是否会丢失

13空间已满是否有提示信息

14是否支持格式化

15u盘在各个状态时是否有相应的led灯提醒

兼容性测试:

1在windows98,windows2000,windowsme,windows2000server,windows2003server,windowsxp,windowsvista...是否可以识别

2在usb1.0,usb2.0上是否能够识别

3在笔记本上,台式电脑,服务器上是否可以识别

性能测试:

1一次性拷贝删除多个文件,u盘是否正常

3u盘摔地上多次后,是否正常

界面测试:

1设计是否美观大方

2图案,log是否正确显示

35.(编程题)求一个字符串中第一个无重复的字符

publicstaticvoidgetUniqueString(Stringstr){

booleanbool=true;

for(inti=0;i

Strings1=str.substring(i,i+1);

if(str.indexOf(s1,i+1)==-1){

System.out.println(s1);

bool=false;

36.实现对象比较的接口有哪些

答:java.lang.Comparable;

37.(编程题)给你一个文本,里面给的是url,让找出url的文件名及其相同的文件名出现的次数(程序题)

Hashtableht=newHashtable();

Filef=newFile("e:/url.txt");

FileReaderfr=newFileReader(f);

BufferedReaderbr=newBufferedReader(fr);

Stringurl="",urls="";

while((url=br.readLine())!=null)

urls+=url;//把所有字符串读进来

for(inti=1;i

intind=us[i].lastIndexOf("/");//如果文件分隔符为\,则该方法参数为\\

Stringfilename=us[i].substring(ind+1);

intcount=1;

if(ht.containsKey(filename))

count=ht.get(filename)+1;

ht.put(filename,count);

Iteratorit=ht.keySet().iterator();

System.out.println("文件名\t出现次数");

while(it.hasNext()){

Stringkey=it.next();

intvalue=ht.get(key);

System.out.println(key+"\t\t"+value);

br.close();

fr.close();

38.Hashcode和Equals的联系

答:首先equals()和hashcode()这两个方法都是从object类中继承过来的其次是hashcode()方法,在object类中定义如下:a)如果两个对象相同,那么它们的hashCode值一定要相同;b)如果两个对象的hashCode相同,它们并不一定相同上面说的对象相同指的是用eqauls方法比较

39.(编程题)提供一个方法判断任意一个没有数字的整数数组是否为连续数字的数组?

publicbooleantest(int[]is){

for(inti=0;i

if(Math.abs(is[i]-is[i+1])!=1){

returnbool;

Web基础部分(JSP等)(第七次考试)

1.HTTP协议中Header有那些?

2.Web中过滤器的原理,能否过滤图片

答:过滤器相当于在客户端与服务器间建立多业务程序,可对request、response进行各种处理操作;只有通过的请求才会顺利进入下一个过滤器的处理,最终到达服务器;可以对图片进行过滤;

3.Javascript出现问题是怎么调试的?(该题主要考察你的js功底,并不强调准确唯一答案)

答:我常用的方法:根据提示异常提示信息,在IE窗口,右键单击弹出的工具栏中选择“查看源文件”,这样基本就能知道什么地方错了,如果麻烦点的问题,就通过alert()输出阶段性的结果,比较;

另外,通过专门的调试工具也行,例如frebug,javascriptdebugtoolkit,aptana,我尝试过aptana;

functionfnCheckEmail(){

varre=/^(\w((-\w)|(\.\w))*)\\w((-\w)|(\.\w))*\@[A-Za-z0-9]((\.|-)[A-Za-z0-9])*\.[A-Za-z0-9]$/;

varemail=document.getElementById("emailid").value;

if(email!=null&&email.length>0){

if(re.test(email)){

else{

alert("Sorry,你输入的Email不合法!");

alert("请输入Email!");

5.在JavaScript中写一个方法如:functiontext(a,b,c){}然后提供给你两个参数,如(2,3),请问这样调用会不会出错?

答:可以;

6.在JavaScript中写两个方法如:

functiontext(a,b){

alert(1);

functiontext(c,d,e){

alert(2);

然后提供给你两个参数,如text(2,3),请问这样调用会不会出错?调用之后会出现什么情况?

答:不会出错,调用输出的是2;

7.Http中Staus的code,200,301,400的意思

ü1XX这一类型的状态码,代表请求已被接受,需要继续处.

ü2xx代表请求已成功被服务器接收、理解、并接受;

200请求已成功,请求所希望的响应头或数据体将随此响应返回。

ü3xx重定向,这类状态码代表需要客户端采取进一步的操作才能完成请求。

301被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。

ü4xx请求错误,代表了客户端看起来可能发生了错误,妨碍了服务器的处理

400语义有误,当前请求无法被服务器理解或者请求参数有误

404请求失败,请求所希望得到的资源未被在服务器上发现。

ü5xx服务器错误

500服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。

8.Web系统安全因素有哪些?

答:1)操作系统、后台数据库的安全问题:这里指操作系统和后台数据库的漏洞,配置不当,如弱口令等等,导致黑客、病毒可以利用这些缺陷对网站进行攻击。

2)Web发布系统的漏洞:Web业务常用的发布系统(即Web服务器),如IIS、Apache等,这些系统存在的安全漏洞,会给入侵者可乘之机。

3)Web应用程序的漏洞:主要指Web应用程序的编写人员,在编程的过程中没有考虑到安全的因素,使得黑客能够利用这些漏洞发起对网站的攻击,比如SQL注入、跨站脚本攻击等等。

4)自身网络的安全状况:网站服务器所处的网络安全状况也影响着网站的安全,比如网络中存在的DoS攻击等,也会影响到网站的正常运营。

9.在js编码中innerHTML,outhtml,innertext区别

üinnerHTML设置或获取位于对象起始和结束标签内的HTML

üouterHTML设置或获取对象及其内容的HTML形式

üinnerText设置或获取位于对象起始和结束标签内的文本

üouterText设置(包括标签)或获取(不包括标签)对象的文本

10.正则表达式\d,\s的含义。反斜杠喔

代码

说明

匹配除换行符以外的任意字符

\w

匹配字母或数字或下划线或汉字

\s

匹配任意的空白符

\d

匹配数字

\b

匹配单词的开始或结束

^

匹配字符串的开始

$

匹配字符串的结束

代码/语法

重复零次或更多次

+

重复一次或更多次

重复零次或一次

{n}

重复n次

{n,}

重复n次或更多次

{n,m}

重复n到m次

\W

匹配任意不是字母,数字,下划线,汉字的字符

\S

匹配任意不是空白符的字符

\D

匹配任意非数字的字符

\B

匹配不是单词开头或结束的位置

[^x]

匹配除了x以外的任意字符

[^aeiou]

匹配除了aeiou这几个字母以外的任意字符

11.jsp页面可直接用的变量和类型有哪些?

request:HttpServletRequest

response:HttpServletResponse

session:HttpSession

application:ServletContext

out:JspWriter

pageContext:PageContext

page:Object

config:ServletConfig

exception:ServletException

12.实现点击页面上的一个链接,然后隐藏这个链接的javascript代码

functionhiddenHref(){

document.getElementById("ab").style.display="none";

13.使用js实现输入框以下功能1)限制输入框最多只能输入15个字符;2)将输入的‘a’都换成‘b’;

functionrep(){

vars=document.getElementById("test").innerText;

if(s.length>15){

alert("长度超出");

document.getElementById("test").innerText=s.substring(0,15);

document.getElementById("test").innerText=s.replace("a","b");

14.页面间对象传递有哪些方法?

答:1)Session(2)Cookie(3)Application(4)URL地址中的参数(5)通过隐藏字段来传递数据(6)Server.Transfer(7)通过序列化对象

15.js中找出一个字符串中出现次数最多的一个字符?

varstr="dddadadfdfseffserfefsefseeffffftsdg";

varmaxLength=0;

varresult='';

while(str!=''){

oldStr=str;

getStr=str.substr(0,1);

eval("str=str.replace(/"+getStr+"/g,'')");

if(oldStr.length-str.length>maxLength){

maxLength=oldStr.length-str.length;

result=getStr+"="+maxLength

alert(result)

框架部分:

1.ApplicationContext和BeanFactory有什么区别?

BeanFactory实际上是实例化,配置和管理众多bean的容器。这些bean通常会彼此合作,因而它们之间会产生依赖。BeanFactory使用的配置数据可以反映这些依赖关系中(一些依赖可能不像配置数据一样可见,而是在运行期作为bean之间程序交互的函数)。

一个BeanFactory可以用接口org.springframework.beans.factory.BeanFactory表示,这个接口有多个实现。最常使用的的简单的eanFactory实现是org.springframework.beans.factory.xml.XmlBeanFactory。(这里提醒一下:ApplicationContext是BeanFactory的子类,所以大多数的用户更喜欢使用ApplicationContext的XML形式)。

ApplicationContext

Context包的基础是位于org.springframework.context包中的ApplicationContext接口。它是由BeanFactory接口集成而来,提供BeanFactory所有的功能。为了以一种更像面向框架的方式工作,context包使用分层和有继承关系的上下文类,包括:

1.MessageSource,提供对i18n消息的访问;

2.资源访问,比如URL和文件;

3.事件传递给实现了ApplicationListener接口的bean;

4.载入多个(有继承关系)上下文类,使得每一个上下文类都专注于一个特定的层次,比如应用的Web层

在ApplicationContext的诸多实现中,有三个经常用到:

1。ClassPathXmlApplicationContext:从类路径中的XML文件载入上下文定义信息,把上下文定义文件当作类路径资源。

2。FileSystemXmlApplicationContext:从文件系统中的XML文件载入上下文定义信息。

3。XmlWebApplicationContext:从Web系统中的XMl文件载入上下文信息。

2.struts2.0的session和servlet的session有什么区别

servlet中的session:因为在doget或dopost方法会传递HttpServletRequest,可以直接通过request.getSession()得到sesion

Strutx2.0你可以有两种方式获得这些对象:非IoC(控制反转InversionofControl)方式和IoC方式。

非IoC方式

要获得上述对象,关键Struts2.0中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前Action的上下文对象。另外,org.apache.struts2.ServletActionContext作为辅助类(HelperClass),可以帮助您快捷地获得这几个对象。

HttpServletRequestrequest=ServletActionContext.getRequest();

HttpServletResponseresponse=ServletActionContext.getResponse();

HttpSessionsession=request.getSession();

如果你只是想访问session的属性(Attribute),你也可以通过ActionContext.getContext().getSession()获取或添加session范围(Scoped)的对象。

IoC方式

要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点

如implementsSessionAware接口

3.Struts中的action是安全线程么?为什么

Servlet是在多线程环境下的。即可能有多个请求发给一个servelt实例,每个请求是一个线程。

struts下的action也类似,同样在多线程环境下。

为多线程环境编写代码。我们的controllerservlet指挥创建你的Action类的一个实例,用此实例来服务所有的请求。因此,你必须编写线程安全的Action类。遵循与写线程安全的servlet同样的方针。

4.EJB是否继承home接口,怎么实现

Home对象是该类EJB对象的”工厂”或”代理”,管理EJB实例的生命周期,封装关于EJB的元信息,是所有EJB的客户间共享的,在部署或容器启动时,将其stub绑在JNDI中,必须继承EJBHome,方法必须符合RMI规则,必须提供没有参数的create()方法,返回Remote接口类型,必须抛出CreateException和RemoteException。

5.应用服务器与Webserver的区别

Web服务器(WebServer)

Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求,Web服务器可以响应一个静态页面或图片,进行页面跳转,或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术。无论它们(译者注:脚本)的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。

应用程序服务器

通过各种协议,可以包括HTTP,把商业逻辑暴露给客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用对象的一个方法(或过程语言中的一个函数)一样。

应用程序服务器的客户端(包含有图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻辑。正是由于这种逻辑取得了数据和方法调用的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。

在大多数情形下,应用程序服务器是通过组件的应用程序接口把商业逻辑暴露(给客户端应用程序)的,例如基于J2EE应用程序服务器的EJB组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作包括安全,事务处理,资源池,和消息。就象Web服务器一样,应用程序服务器配置了多种可扩展和容错技术。

6.如何设置Hibernate二级缓存

1、首先要打开二级缓存,在hibernate.cfg.xml中添加如下配置:

true

2、Hibernate的二级缓存使用第三方的缓存工具来实现,所以我们需要指定Hibernate使用哪个

缓存工具。如下配置指定Hibernate使用EhCache缓存工具。

org.hibernate.cache.EhCacheProvider

3、Hibernate在默认情况下并不会对所有实体对象进行缓存,所以,我们需要指定缓存哪些对象,

在实体对象的映射文件中(相应的标签内部),添加如下配置:

usage="read-only"是“只读”缓存策略。

注意,这个标签只能放在标签的内部,而且必须处在标签的前面!!!

这个标签放在哪些标签下面,就说明会多这些类的对象进行缓存

4、对于第3步,有一个可选的方案是在hibernate.cfg.xml文件中指定哪些类的对象需要缓存,

而不需要使用标签来指定。如:

在hibernate.cfg.xml中添加如下配置:

注意,这个标签必须放在标签的后面!!

7.什么是事物处理,J2EE提供哪两种事物处理方式

事务(Transaction)是数据库管理系统提供的基本功能之一,可以把完成用户一个特定工作的一组操作看作是一个不可拆分的工作单元,所以事务也就是作业或任务。

JDBC支持单一数据库连接.

JTA支持分布式事务.

8.J2EE是技术、平台、框架?包括哪些技术

J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台.J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术.

9.EJB规范中规定EJB中禁止的操作有那些

1.不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等)

2.不能操作awt

3.不能实现服务器功能

4.不能对静态属生存取

5.不能使用IO操作直接存取文件系统

6.不能加载本地库

7.不能将this作为变量和返回

8.不能循环调用

10.webservice和remoting区别

1、Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与WebService就没有什么区别了,一般都喜欢定义为TCP,这样比WebService稍为高效一些

2、Remoting不是标准,而WebService是标准;

3、Remoting一般需要通过一个WinForm或是Windows服务进行启动,而WebService则需要IIS进行启动。

4、在VS.net开发环境中,专门对WebService的调用进行了封装,用起来比Remoting方便

建议还是采用WebService好些,对于开发来说更容易控制

Remoting一般用在C/S的系统中,WebService是用在B/S系统中

11.Hiberbate优化方法有那些?

1)尽量使用many-to-one,避免使用单项one-to-many

2)灵活使用单向one-to-many

3)不用一对一,使用多对一代替一对一

4)配置对象缓存,不使用集合缓存

5).一对多使用Bag多对一使用Set

6)继承使用显示多态HQL:fromobjectpolymorphism="exlicit"避免查处所有对象

7)消除大表,使用二级缓存

12.Struts1.X中ActionServlet、ActionForm、Action、ActionMapping各起什么作用?

1)Actionservlet为控制器,接受用户请求并派发给相应的Action组件处理;

2)ActionForm主要用于封装请求中的数据和简单验证

3)Action组件具体对用户的请求进行处理

数据库部分:

1.数据库系统是由哪几个部分组成的

数据库系统由数据库(DB),数据管理系统(DBMS),应用程序,用户和硬件组成,其中最关键的部分是数据库.

2.什么是操作系统

操作系统(OperatingSystem,简称OS)是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware等

3.解释乐观锁悲观锁及实现

下面我们看看怎么调用悲观锁,我只写一个代码片段,其他地方没有大的改变,如果大家想尝试下结果的话,可以自己写下看看,session.load(User.class,1,LockMode.UPGRADE);通过这句话调用锁机制,如果其他人想要用的话呢,就要一直等到Transactioncommit以后才可以。

乐观锁,乐观锁其实并不是一种锁,而是一种冲突检测机制,他可以随时改变数据,但是在save和update的时候会进行检测,检测版本是否符合标准,如果版本小于等于新版本就不会对数据进行改动,相反还会报错,说是一个脏数据,说明数据有问题,这样也会造成更新丢失。

我们要怎么调用乐观锁呢,相对于悲观锁,乐观锁的调用还是比较麻烦的,我们需要在数据库中加入version,也需要在持久类中加入verison,这个version不用我们进行管理是由hibernate进行管理的。还要在*.hbm.xml中的class标签中配置上

optimistic-lock="verson"这里说明的是这个version不是字段,而是你乐观锁采用哪种机制,这里写成version意思就是采用版本判断这个机制,然后还要在主键id下面配置这个name后面跟的就是数据库中的字段名。

4.ORACKE创建表空间student

createtablespacestudent

logging

datafile'E:\oracle\product\10.2.0\oradata\testserver\student.dbf'

size32m

autoextendon

next32mmaxsize2048m

extentmanagementlocal;

5.在mysql中创建一个临时表并说明临时表的使用限制

CREATETEMPORARYTABLEtmp_table

ALTERDATABASETEMPFILE'tmp_table'AUTOEXTENDONMAXSIZE8000M

6.Mysql支持事务吗

在缺省模式下,MYSQL是autocommit模式的,所有的数据库更新操作都会即时提交,所以在缺省情况下,mysql是不支持事务的。

7.一张表有多个相同的id,查询出ID相同的,并显示出有多少个相同的?

Selecteid,count(*)fromemployeegroupbyeidhavingcount(eid)>1

8.一张学生表student,有字段班级classid,学号id,成绩grade

(1)求各个班的平均成绩

Selectclassid,avg(grade)fromstudentgroupbyclassid

(2)查询出比该班平均成绩高的学生的所有信息

selectw.id,w.grade,b.avg_gradefromstudentw,(

selectclassid,avg(grade)avg_gradefromstudentgroupbyclassid)b

wherew.classid=b.classidandw.grade>b.avg_grade;

9.改错selectc1,c2,c3fromT1groupbyc1,c2havingc1>1

C3不在groupby子句中

10.ORACLE数据库中系统全局区的简称是:程序全局区是:

系统全局区的简称是:SGA程序全局区是:PGA

11.去年的今日是哪一天?SQL语句

selectadd_months(sysdate,-12)fromdual

12.中国人事部想开发一个系统,纪录所有国民跳槽纪录,以及对企业信息,国民信息进行管理,中国人事部拥有的资源有:中国所有企业信息,中国国国民信息,根据以上信息,进行数据库设计

企业信息:eid,name…

国民信息:rid,name…

工作记录:id,eid,rid,startDate,endDate…

13.在网络数据库中,其余各节点为终端向A发数据库请求属于什么式的数据库系统

集中式数据库系统:在这种系统中,整个DBMS的核心,数据库和应用程序都放在主机上,用户通过终端来并发地存取数据,共享数据资源,这种系统又称为主从式或主机/终端式系统。

14.一个用户具有多个角色请查该表具有该用户的所有角色的其他用户

selectdistincteidfromuser_rolescxwherenotexists(select*fromuser_rolescywherescy.eid='a00001'andnotexists(select*fromuser_rolesczwherescz.eid=scx.eidandscz.rid=scy.rid));

15.什么是oracle的CBO?什么是RBO?什么情况下oracle使用CBO

RuleBasedOptimizer(RBO)基于规则

CostBasedOptimizer(CBO)基于成本,或者讲统计信息

CBO和RBO作为不同的SQL优化器,对SQL语句的执行计划产生重大影响,如果要对现有的应用程序从RBO向CBO移植,则必须充分考虑这些影响,避免SQL语句性能急剧下降;但是,对新的应用系统,则可以考虑直接使用CBO,在CBO模式下进行SQL语句编写、分析执行计划、性能测试等工作,这需要开发者对CBO的特性比较熟悉。

16.用SQL查出表中主键以及表之间的关系

selectcu.*fromuser_cons_columnscu,user_constraintsauwherecu.constraint_name=au.constraint_nameandau.constraint_type='P'andau.table_name='EMP'

17.获取某日期的当月最后一天

selectlast_day(sysdate)fromdual;

18.当数据库中数据存储数据很多时,应该怎样优化?

1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要.

2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)

3、升级硬件

4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段

5、提高网速;

19.用一个SQL语句清楚XX子段的重复记录,保留主建最小的一条

deletefrompeoplewherexxin(selectxxfrompeoplegroupbyxxhavingcount(xx)>1)

andidnotin(selectmin(id)frompeoplegroupbyxx

20.Howtoavoidsqlinjection?翻译就是如何避免SQL注入?

1,使用参数化的过滤性语句要防御SQL注入,用户的输入就绝对不能直接被嵌入到SQL语句中。相反,用户的输入必须进行过滤,或者使用参数化的语句

2,还要避免使用解释程序,因为这正是黑客们借以执行非法命令的手段。

3,防范SQL注入,还要避免出现一些详细的错误消息,因为黑客们可以利用这些消息。要使用一种标准的输入确认机制来验证所有的输入数据的长度、类型、语句、企业规则等

4,还有很重要的一点应该在Web应用程序开发过程的所有阶段实施代码的安全检查。首先,要在部署Web应用之前实施安全测试,还应当在部署之后用漏洞扫描工具和站点监视工具对网站进行测试

21.项目中出入库单据超过100万条,系统在单据调出,保存过程中速度较慢,原因有哪些?怎么提高速度?

答:慢有很多情况,

情况1:远程查询,其实可能查询不慢,由于数据量大,传输过程慢

情况2:WHERE后面的比较数据太多,比如like类的语句

情况3:需要哪个字段只取那个字段就行了,比如select*froma与selectb,c,dfroma速度是有差距的

提高速度方案:数据库定期维护,压缩,把不常用的数据备份后放入备份库里,查询时查备份库等;索引约束过多会引起插入数据过慢、索引与检索无法起到作用;SQL优化很重要;存储的服务器性能也很重要,100万的数据量已经可以考虑分区存储数据了;(第七次考试)

操作系统、项目管理、前沿技术、软件测试、智力题

1.Ajax、jms、pojo名词的理解

Ajax:异步JavaScript和XML,是一种用于创建更好更快以及交互性更强的Web应用程序的技术。

Jms:(javamessageservice)JAVA消息服务。是一个Java平台中关于面向消息中间件(MOM)的API。

主要实现各个应用程序之间的通讯。包括点对点和广播

Pojo:简单的Java对象,实际就是普通JavaBeans。POJO有一些private的参数作为对象的属性。然后针对每个参数定义了get和set方法作为访问的接口

2.列举五个现在时髦的技术,并说明理由

strutsstruts2ibatishibernatespringejbjqueryextjs

3.如果你同事犯了很大的错,但是在会议上,你的领导没有批评你的同事,却批评了你,你该怎么办?

开会的时候即使有再大的委屈也不能争吵或者在会上解释,因为这样往往会适得其反,可以事后找领导解释,这样既保证了领导的权威,并在他冷静后再解释也能达到我们想要的结果。

4.刚才的办公室里有哪几中电器设备?考察学生对身边事务的观察力;

5.医生交给你6个药丸,让你每隔半小时吃一次,多久才能吃完?

一次吃一颗:两个半小时吃完

一次吃两颗:一个小时吃完

一次吃三颗:30分钟吃完

一次吃6颗:几秒钟

6.小明参加400米赛跑,他超过了第二名,那么他现在是第几名?

第二名

7.如果你的项目程序运行很慢你估计是那点的问题

系统优化涉及到软件的各个方面:需求、模块划分、数据库设计、程序编码以及一些特殊的优化方法如缓存技术等。在系统开发告一段落情况下,提高已有系统的性能,减少如内存、数据库、网络带宽等资源的占用。

硬件方面:CPU和风扇是否正常运转并足够制冷,是否有足够的内存和磁盘空间等

8.Linux在目录user下新建文件夹T和t1,在t1下新建T2

ü强力删除t1目录及其下所有

ü拷贝文件A.txt到/root/t2路径下

ü修改/etc/profile文件后,除重启计算机外,如何即时生效?

ü用命令的方法导出D:\mysql,Bin路径D:\mysql\bin

9.XP中IIS中是否可以同时安装2个wed为什么?如何操作?

ü建立第一个Web站点

比如本机的IP地址为192.168.0.1,自己的网页放在D:\Wy目录下,网页的首页文件名为Index.htm,现在想根据这些建立好自己的Web服务器。

对于此Web站点,我们可以用现有的“默认Web站点”来做相应的修改后,就可以轻松实现。请先在“默认Web站点”上单击右键,选“属性”,以进入名为“默认Web站点属性”设置界面。

1).修改绑定的IP地址:转到“Web站点”窗口,再在“IP地址”后的下拉菜单中选择所需用到的本机IP地址“192.168.0.1”。

2).修改主目录:转到“主目录”窗口,再在“本地路径”输入(或用“浏览”按钮选择)好自己网页所在的“D:\Wy”目录。

3).添加首页文件名:转到“文档”窗口,再按“添加”按钮,根据提示在“默认文档名”后输入自己网页的首页文件名“Index.htm”。

4).添加虚拟目录:比如你的主目录在“D:\Wy”下,而你想输入“192.168.0.1/test”的格式就可调出“E:\All”中的网页文件,这里面的“test”就是虚拟目录。请在“默认Web站点”上单击右键,选“新建→虚拟目录”,依次在“别名”处输入“test”,在“目录”处输入“E:\All”后再按提示操作即可添加成功。

5).效果的测试:打开IE浏览器,在地址栏输入“192.168.0.1”之后再按回车键,此时就能够调出你自己网页的首页,则说明设置成功!

注:具体不同的电脑会有不同的选项名称,但大体上还是可以找到了(多试一下)。

ü添加更多的Web站点

1).多个IP对应多个Web站点

如果本机已绑定了多个IP地址,想利用不同的IP地址得出不同的Web页面,则只需在“默认Web站点”处单击右键,选“新建→站点”,然后根据提示在“说明”处输入任意用于说明它的内容(比如为“我的第二个Web站点”)、在“输入Web站点使用的IP地址”的下拉菜单处选中需给它绑定的IP地址即可;当建立好此Web站点之后,再按上步的方法进行相应设置。

2).一个IP地址对应多个Web站点

很显然,改了端口号之后使用起来就麻烦些。如果你已在DNS服务器中将所有你需要的域名都已经映射到了此惟一的IP地址,则用设不同“主机头名”的方法,可以让你直接用域名来完成对不同Web站点的访问。

比如你本机只有一个IP地址为192.168.0.1,你已经建立(或设置)好了两个Web站点,一个是“默认Web站点”,一个是“我的第二个Web站点”,现在你想输入“www.enanshan.com”可直接访问前者,输入“www.popunet.com”可直接访问后者。其操作步骤如下:

(1)请确保已先在DNS服务器中将你这两个域名都已映射到了那个IP地址上;并确保所有的Web站点的端口号均保持为80这个默认值。

(2)再依次选“默认Web站点→右键→属性→Web站点”,单击“IP地址”右侧的“高级”按钮,在“此站点有多个标识下”双击已有的那个IP地址(或单击选中它后再按“编辑”按钮),然后在“主机头名”下输入“www.enanshan.com”再按“确定”按钮保存退出。

(3)接着按上步同样的方法为“我的第二个Web站点”设好新的主机头名为“www.popunet.com”即可。

(4)最后,打开你的IE浏览器,在地址栏输入不同的网址,就可以调出不同Web站点的内容了。

ü多个域名对应同个Web站点

你只需先将某个IP地址绑定到Web站点上,再在DNS服务器中,将所需域名全部映射向你的这个IP地址上,则你在浏览器中输入任何一个域名,都会直接得到所设置好的那个网站的内容。

10.excel中不需要显示单元格数值为0的数值时?如何操作

工具→选项→视图→选项卡里面下方有一个“零值”,前面的勾取消即可

11.excel是否可以隐藏网格线?

可以,工具→选项→视图→选项卡里面下方有一个“网格线”,前面的勾取消即可

12.会计科目按性质分哪几类?

答:资产、负债、所有者权益、收入、费用。

13.一份好的缺陷报告要那些关键要素?

1.缺陷概要

2.简单的缺陷描述

3.产生缺陷的先决条件及重现步骤

4.预期结果和实际结果,必要的截图

5.严重性及优先级

6.标记该缺陷出现的频率

14.一个优秀的测试要那些素质

测试的目标是找出软件缺陷,软件测试员得基本素质是:打破砂锅问到底

测试员应具备的素质:

1.探索精神:不会害怕进入陌生的环境

2.故障排除能手:善于发现问题的症结

3.不懈努力:不停的尝试。他们可能会碰到转瞬即逝或者难以重建的软件缺陷,不会心存侥幸,而是尽一切可能去寻找

4.创造性:测试显而易见的事实那不是软件测试员,他们的工作是想出富有创意甚至超常的手段来寻找软件缺陷

5.追求完美:力求完美,但是知道某些无法企及时不去苛求,而是尽力接近目标

7.说服力:善于表达观点,表明软件缺陷为何必须修复,并通过实际演示力陈观点

8.在编程方面受过教育

15.C语言:函数打开,关闭,随机读写问件

FILE*fp;/*定义文件类型的指针,它将指向你所要打开的文件,以后向文件写入数据或者是从文件中读取数据都需要用到他*/

Include“stdio.h”

Fp=fopen()//打开文件

fclose(fp)//关闭文件

fseek(FILE*stream,longoffset,intfromwhere);

16.黑盒,白盒测试是什么?区别?

黑盒:也称功能测试或数据驱动测试。把被测试对象看成一个黑盒子,测试人员完全不考虑程序内部结构和处理过程。只在软件的接口处进行测试,根据需求规格说明书检查程序是否满足功能要求。黑盒测试有以下几个方面,但主要还是功能部分测试。

1.正确性:计算结果,命名等

2.可用性:是否满足软件的需求说明

3.边界值

5.压力测试:多用户情况考虑使用

6.错误恢复:错误处理,页面数据验证等

白盒:也称结构测试或逻辑驱动测试。把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态和预期的状态是否一致。白盒测试主要特征是测试对象进入了代码内部,根据开发人员自己对代码的理解和接触所进行的软件测试,这一阶段测试以软件开发人员为主。

17.3G的了解和看法

3G是一个比较热的话题,WCDMA,TDSCDMA,CDMA2000三种标准开启了三国争霸的序幕,对于电信行业的发展这是好事,毕竟竞争有利于消费者,但3G业务还是偏高。

3G是第三代移动通信技术的简称,是指支持高速数据传输的蜂窝移动通讯技术,3G服务能同时传送声音及数据信息。其代表特征是提供高速数据业务。3G是将无线通与国际互联网等多媒体通信结合的新一代移动通信系统。3代表3G时代下的移动+宽带+固网+手机+……融合。

18.12个球,其中一个重量不一样,称三次,找出不一样的那个

12颗球分3组。

第一次使用天平:任意将两组至于天平上每边4颗,有两种情况:

A:如果天平任保持平衡,那么那一颗就在其余4颗里。

第二次,在其余4颗里任选两颗,放在天平上,即可排除掉两颗。

B:如果不平衡,则任意在天平一侧的盘子里拿两颗和其余4颗中的两颗互换。此为第二次使用天平。

如天平平衡,那么你拿走的那两颗就有一颗是要找的。如天平不平衡,那么放进去的那两颗就有一颗是

第三次,将其中一颗与已知的一颗标准球称,即可知道结果。

19.美国有多少辆汽车?

同类型题目:

世界上一共有多少个钢琴调音师?调音师的人数取决于有多少钢琴需要调音。调音师的工作量由钢琴的数量和调音的频度决定。美国共有3亿人口,按三口之家计算,全美国共有1亿个家庭,如果一半家庭即5000万个家庭属于富裕阶层,拥有钢琴比例按10%这个比例可能有点偏高,但在推算大致比例时是允许的计算,那么就有500万个家庭拥有钢琴,这样,全美国就有500万架钢琴。如果每架钢琴一年调音一次,一个调音师一年调音1000架次的话,那么全美国调音师的数量就是500万除以1000,等于5000人。世界人口有60多亿,是美国的20倍,但调音师应该不足美国的20倍。大体推算一下可知,美国的调音师数量约占全世界的1/4,全世界的调音师应该有2万人。

深圳华为公司笔试题

1.单项选择题

1.Java是从()语言改进重新设计。

A.AdaB.C++C.PasacalD.BASIC

答案:B

2.下列语句哪一个正确()

A.Java程序经编译后会产生machinecode

B.Java程序经编译后会产生bytecode

C.Java程序经编译后会产生DLL

D.以上都不正确

3.下列说法正确的有()

A.class中的constructor不可省略

B.constructor必须与class同名,但方法不能与class同名

C.constructor在一个对象被new时执行

D.一个class只能定义一个constructor

答案:C

4.提供Java存取数据库能力的包是()

A.java.sqlB.java.awtC.java.langD.java.swing

答案:A

5.下列运算符合法的是()

A.&&B.<>C.ifD.:=

6.执行如下程序代码

a=0;c=0;

do{

--c;

a=a-1;

}while(a>0);后,C的值是()

A.0B.1C.-1D.死循环

7.下列哪一种叙述是正确的()

A.abstract修饰符可修饰字段、方法和类

B.抽象方法的body部分必须用一对大括号{}包住

答案:D

8.下列语句正确的是()

A.形式参数可被视为localvariable

B.形式参数可被字段修饰符修饰

C.形式参数为方法被调用时,真正被传递的参数

D.形式参数不可以是对象

9.下列哪种说法是正确的()

A.实例方法可直接调用超类的实例方法

B.实例方法可直接调用超类的类方法

C.实例方法可直接调用其他类的实例方法

D.实例方法可直接调用本类的类方法

二、多项选择题

1.Java程序的种类有()

A.类(Class)B.AppletC.ApplicationD.Servlet

答案:BC

2.下列说法正确的有()

A.环境变量可在编译sourcecode时指定

B.在编译程序时,所能指定的环境变量不包括classpath

C.javac一次可同时编译数个Java源文件

D.javac.exe能指定编译结果要置于哪个目录(directory)

答案:BCD

3.下列标识符不合法的有()

A.newB.$UsdollarsC.1234D.car.taxi

答案:ACD

4.下列说法错误的有()

A.数组是一种对象

B.数组属于一种原生类

C.intnumber=[]={31,23,33,43,35,63}

D.数组的大小可以任意改变

5.不能用来修饰interface的有()

A.privateB.publicC.protectedD.static

6.下列正确的有()

A.callbyvalue不会改变实际参数的数值

B.callbyreference能改变实际参数的参考地址

C.callbyreference不能改变实际参数的参考地址

D.callbyreference能改变实际参数的内容

7.下列说法错误的有()

A.在类方法中可用this来调用本类的类方法

B.在类方法中调用本类的类方法时可直接调用

C.在类方法中只能调用本类中的类方法

D.在类方法中绝对不能调用实例方法

8.下列说法错误的有()

A.Java面向对象语言容许单独的过程与函数存在

B.Java面向对象语言容许单独的方法存在

C.Java语言中的方法属于类中的成员(member)

D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同

答案:ABC

9.下列说法错误的有()

A.能被java.exe成功运行的javaclass文件必须有main()方法

B.J2SDK就是JavaAPI

C.Appletviewer.exe可利用jar选项运行.jar文件

D.能被Appletviewer成功运行的javaclass文件必须有main()方法

三、判断题

1.Java程序中的起始类名称必须与存放该类的文件名相同。()正确

2.Unicode是用16位来表示一个字的。()正确

3.原生类中的数据类型均可任意转换。()错误

1、给定如下JAVA程序片断:

classA{

publicA(){

system.out.println(“A”);

classBextendsA{

publicB(){

System.out.println(“B”);

Bb=newB();

}上述程序将().(选择一项)

A、不能通过编译

B、通过编译,输出为:AB

C、通过编译,输出为:B

D、通过编译,输出为:A

2、某一java程序中有如下代码:

Datalnputstreamdin=newDataInputstream(

newBufferedInputstream(newFileInputstream(“employee.dat”)));

假设在employee.dat文件中只有如下一段字符:abcdefg。则:System.out.println(din)在屏幕上打印().(选择一项)

A、A

B、B

C、97

D、98

3、给定java代码片段,如下:

inti=0,j=-1;

switch(i){

case0,1:j=1;

case2:j=2;

System.out.print("j="+j);编译运行,正确的是()。(选择一项)

A、程序编译出错

B、j=1

C、j=2

D、j=0

4、在Java中,下面关于构造函数的描述正确的是()。(选择一项)

A、类必须有显式构造函数

B、它的返回类型是void

C、它和类有相同的名称,但它不能带任何参数

D、以上皆非

5、在JAVA编程中,Swing包中的组件处理事件时,下面()是正确的。(选择一项)

B、Swing包中组件产生的事件类型,也都带有一个J字母,如:JmouseEvent

C、Swing包中的组件也可以采用事件的传递处理机制

D、Swing包的组件所对应的事件适配器也是带有J字母的,如:JmouseAdapter

6、publicclassEqTest{

EqTeste=newEqTest();

EqTest(){

Strings="Java";Strings2="java";

//在这儿放置测试代码

System.out.println("相等");

System.out.println("不相等");

}在上面的Java代码的注释行位置,放置()测试代码能输出“相等”结果。(选择一项)

A、if(s==s2)

B、if(s.equals(s2))

C、if(s.equalsIgnoreCase(s2))

D、if(s.noCaseMatch(s2))

7、在类的说明符中,被指定为私有的数据可以被以下()访问。(选择一项)

A、程序中的任何函数

B、其他类的成员函数

C、类中的成员函数

D、派生类中的成员函数

8、在JAVA编程中,以下()命令用来执行java类文件。(选择一项)

A、javac

B、java

C、appletviewer

D、以上所有选项都不正确

9、Java中,下面的方法可以正确的创建一个Swing标签组件是()(选择两项)

A、ImageIconicon=newImageIcon(

B、ImageIconicon=newImageIcon(

C、ImageIconicon=newImageIcon(

D、JLabellabel=newJLabel(SwingConstants.LEFT);

10、分析下面的用Java语言编写的trythis()方法:

publicvoidtrythis(){

System.out.print("a");

problem();

}catch(RuntimeExceptione){

System.out.print("b");

System.out.print("c");

}finally{

System.out.print("d");

System.out.print("e");

}当该方法被调用时,如果其中的problem()方法引发一个RuntimeException类的异常,那么输出结果将是()。(选择一项)

A、abcde

B、abd

C、abde

D、abe

11、publicclassMyClass1{

publicstaticvoidmain(Stringargv[]){

_____classMyInner{}

}在以上java代码中的横线上,可放置()修饰符。(选择三项)

A、public

B、private

C、static

D、friend

12、publicclasstest3{

for(intj=3;j>0;j--){

continue;

System.out.println(“i=”+i+”j=”+j)

}上面的JAVA代码编译运行后,下列选项中,()会出现在输出结果中,(选择三项)

A、i=0j=3

B、i=0j=0

C、i=2j=2

D、i=0j=2

E、i=1j=2

13、如下Java代码段,体现了()概念。(选择一项)

.........

publicvoidaMethod(Strings){.........}

publicvoidaMethod(inti){.........}

publicvoidaMethod(intI,floatf){.........}

A、多继承

B、重载

C、重写

D、多态

14、java语言中,下列时处理输出操作的所有类的基础的是()(选择一个)

A、DataOutput

B、OutputStream

C、BufferedOutputStream

D、IOStream

15、在jave中,类Worker是类Person的子类,Worker的构造方法中有一句”super()”,该语句()。(选择一项)

A、调用类Worker中定义的super()方法

B、调用类Person中定义的super()方法

C、调用类Person的构造函数

D、句法错误

16、在Java中,关于final关键字的说法正确的是()。(选择两项)

A、如果修饰变量,则一旦赋了值,就等同一个常量

B、如果修饰类,则该类只能被一个子类继承

C、如果修饰方法,则该方法不能在子类中被覆盖

D、如果修饰方法,则该方法所在的类不能被继承

17、在Java中,下列选项表示字符”a”值的是().(选择一项)

A、'a'

B、"a"

C、newCharacter(a)

D、\000a

18、给定java代码片段,如下:

Integera=newInteger(3);

Integerb=newInteger(3);

System.out.println(a==b);运行后,这段代码将输出()。(选择一项)

A、true

B、false

C、0

D、1

19、Java程序中读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于10,使用throw语句显式地引发异常,异常输出信息为“something’swrong!”,语句为()。(选择一项)

A、if(I>10)throwException(“something’swrong!”);

B、if(I>10)throwExceptione(“something’swrong!”);

C、if(I>10)thrownewException(“something’swrong!”);

D、if(I>10)thrownewExceptione(“something’swrong!”);

20、42.给定两个java程序,如下:Text.java的编译运行结果是().(选择一项)

pubilcinterfaceFace{intcount=40;}

pubilcclassTextimplementsFace{

privatestaticintcounter;

pubilcstaticvoidmain(String[]args){

System.out.println(++counter);

A、40

B、41

21、给定一个Java程序代码,如下:运行编译后,输出结果是().(选择一项)

pubilcclassTest{

intcount=9;

pubilcvoidcount1(){

intcount=10;

System.out.println("count1"+count);

pubilcvoidcount2(){

System.out.println("count2"+count);

pubilcstaticvoidmain(Stringargs[]){

Testt=newTwst();

t.count1();

t.count2();

A、count1=9count2=9

B、count1=10count2=9

C、count1=10count2=10

D、count1=9count2=10

22、给定java代码如下:要使用这段代码能够编译成功,横线处可以填入().(选择两项)

pubilcintcount(charc,inti,doubled){return______;}

A、c*i

B、c*(int)d

C、(int)c*d

D、i*d

23、在JAVA编程中,Java编译器会将Java程序转换为()。(选择一项)

A、字节码

B、可执行代码

C、机器代码

24、在J2EE中,下列元素经过排序的集合类是()。(选择一项)

A、LinkedList

B、Stack

C、Hashtable

D、TreeSet

25、分析下面的Java程序:

publicclassyy{

publicstaticvoidmain(String[]ards)throwsException{

thrownewException();

System.out.println("Caughtinmain()");

System.out.println("nothing");

}输出结果为()。(选择一项)

A、Caughtinmain()nothing

B、Caughtinmain()

C、nothing

D、没有任何输出

26、编译并运行下面的Java代码段:

charc='a';switch(c){

case'a':System.out.println("a");

default:System.out.println("default");

}输出结果是()。(选择一项)

A、代码无法编译,因为switch语句没有一个合法的表达式

B、adefault

C、a

D、default

27、在Java中,执行下面的语句后,c的值为()。(选择一项)

Strings="Jessica";charc=s.charAt(6);

A、nullwww.87717.com

B、''

C、'c'

D、'a'

28、在J2EE中,下面的代码中出现编译错误的是()。(选择一项)

A、Filef=newFile("/","autoexec.bat");

B、DataInputStreamdin=newDataInputStream(newFileInputStream("autoexec.bat"));

C、InputStreamReaderin=newInputStreamReader(System.in);

D、OutputStreamWriterout=newOutputStreamWriter(System.in);

29、在JavaSwing编程中,要获取每次选择的JComboBox对象的选项值,可以使用()类型的监听器.(选择两项)

A、ActionListener

B、ltemListener

C、KeyListener

D、SelectionListener

30、在Java中,下面关于包的陈述中正确的是()。(选择两项)

C、只有公共类才能放在包中

D、可以将多个源文件中的类放在同一个包中

31、在Java中,要想使只有定义该类所在的包内的类可以访问该类,应该用()关键字。(选择一项)

A、不需要任何关键字

C、final

D、protected

32、包pack1的类class1中有成员方法:

protectedvoidmethod_1(){…}

privatevoidmethod_2(){…}

publicvoidmethod_3(){…}

voidmethod_4(){…},在包pack2中的类class2是class1的子类,你在class2中可以调用方法()。(选择两项)

A、method_1

B、method_2

C、method_3

D、method_4

33、在Java语言中,小明在他的包mypackage中定义了类My_Class,在mypackage的子包mysubpackage中也有个类My_Class。小明用.importmypackage:引入包,执行其中的语句:My_ClassNewClass=NewMy_Class();时,将发生()。(选择一项)

A、创建一个类mypackage.My_Class对象

B、创建一个类mypackage.Mysubpackage.My_Class的对象

C、该语句是错误的

D、创建一个类mypackage.My_Class的对象和一个类mypackage.Mysubpackage.My_Class的对象

34、在JavaSwing编程中,给定一个java程序main方法的代码片段如下:

JFramejf=newJFrame();

jf.getContentpane().setLayout(null);

jf.setSize(200,200);

jf.setVisible(true);//a

要在界面上显示如下组件,则应在A处填入().(选择一项)

A、JTextAreatext=textJTextArea(100,100);

text.setBounds(10,10,150,100);jf.getContentpane().add(text);

B、JTextFieldtext=textJTextField(100,100);JScrollpanetext=newJScrollpane(text);

jf.setBounds(10,10,150,100);jf.getContentpane().add(jp);

C、JTextAreatext=newJTextArea(100,1);JScrollpanejp=newJScrollpane(text);

jp.setBounds(10,10,150,100);jf.getContentpane().add(jp);

D、JTextAreatext=newJTextArea(100,100);JScrollpane

jp=newJScrollpane(text);jp.setBounds(10,10,150,100);

jf.getContentpane().add(jp);

35、在JAVA语言中,你的按钮要实现下面的功能:当鼠标按下按钮时,显示“鼠标已按下”;当释放按键时,显示“鼠标已释放”。你必须具体定义接口MouseListener的()方法。(选择两项)

A、mouseClicked

B、mouseEntered

C、mouseExited

D、mousePressed

E、mouseReleaseed

A、MouseListener

B、ActionListener

C、WindowListener

D、以上都要

A、只有同一类中的成员才能访问它

B、不同包中的任何其他类都能够访问它

C、同包中的任何其他类能够访问它

D、不同包中的子类可以访问该变量

38、在Java事件处理模型中,当按下鼠标按钮时,处理()事件。(选择一项)

A、mouseReleased

B、mouseExited

C、mousePressed

D、mouseDown

A、a)s3=s1+s2

B、b)s3=s1&s2

C、c)s3=s1||s2

D、d)s3=s1&&s2

40、在Java中,调用Math.random()方法可能返回的结果是()。(选择一项)

A、132.34

B、0.342

C、29.34E10

D、1.0009

41、在Java语言中,Panel默认的布局管理器是()。(选择一项)

A、BorderLayout

B、FlowLayout

C、GridLayout

D、GridBagLayout

42、publicclassMyClass1{

publicstaticvoidmain(Stringargv[]){}

______classMyInner{}}在以上Java代码的横线上,可放置()修饰符。(选择两项)

C、implements

43、在java中,下列赋值语句正确的是()。(选择二项)

A、charc='a';

B、charc="a";

C、charc=97;

D、charc=newCharacter('a');

44、与传统的过程编程不同,面向对象方法的主要思想是()。(选择两项)

A、真实反映用户的实际需求

B、将现实世界的一切抽象为实体或对象

C、将现实世界细分为一个过程化实现

D、将软件组织成为对象的集合,将数据结构和行为结合在一起

45、在Java中,根据你的理解,下列方法()可能是类Orange的构造方法。(选择3项)

A、Orange(){…}

B、Orange(…){…}

C、PublicvoidOrange(){…}

D、PublicOrange(){…}

E、PublicOrangeConstuctor(){…}

46、45.在Java中,()借口位于集合框架的顶层.(选择一项)

A、Map

B、Collection

C、Set

D、List

47、给定某java程序片段,如下:inti=1;intj=i++;if((i>++j)&&(i++==j))i+=j;System.out.println(i);该程序运行后,i的输出结果为()。(选择一项)

A、1

B、2

C、3

D、4

48、在Java中,假设我们有一个实现ActionListener接口的类,以下方法中()能够为一个Button类注册这个类。(选择一项)

A、addListener()

B、addActionListener()

C、addButtonListener()

D、setListener()

49、44.在JAVA中的布局管理器,以下说法中错误的是().(选择一项)

A、FlowLayout以由上到下的方式从左到右排列组件

B、BorderLayout使用"东"."西"."南"."北","居中"来指定组件的位置

C、GridLayout可以创建网格布局,网格布局中各组的大小可以任意调整

D、可以通过容器的setLayout方法为容器指定布局管理

50、研究下面的Java代码:

publicclasstestException{

intn[]={0,1,2,3,4};

for(inti=1;i<6;i++)

sum=sum+n[i];

System.out.println("sum="+sum);

}catch(ArrayIndexOutOfBoundsExpceptione){

System.out.println("数组越界");

System.out.println("程序结束");

}输出结果将是()。(选择一项)

A、10数组越界程序结束

B、10程序结束

C、数组越界程序结束

D、程序结束

2、父类的构造方法是否可以被子类覆盖(重写)?

答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。

3、请讲述String和StringBuffer的区别。

答:String类所定义的对象是用于存放“长度固定”的字符串。

StringBuffer类所定义的对象是用于存放“长度可变动”的字符串。

4、如果有两个类A、B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢?

答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。假如A为B的父类,B为C的父类,此时C就能实现A、B的功能。

5、结合Java视频Lesson5(多线程),分析sleep()和wait()方法的区别。

答:Sleeping睡眠的意思:sleep()方法用来暂时中止执行的线程。在睡眠后,线程将进入就绪状态。

waiting等待的意思:如果调用了wait()方法,线程将处于等待状态。用于在两个或多个线程并发运行时。

6、谈谈你对抽象类和接口的理解。

答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。他使用extends来继承。

接口:一个接口允许一个类从几个接口继承而来,Java程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是interface来实现。

THE END
1.math是什么意思math怎么读中文意思用法math是什么意思、math怎么读读音:英[m?θ] 美[m?θ]初中 math 基本解释n. 数学(等于mathematics)math 网络释义n. 数学(等于mathematics) n. (Math)人名;(德)马特;(柬)马;(英)马思中文词源math 数学缩写自mathematics.词组短语1、study math 学习数学 2、applied math [网络] 美国大学应用数学专业;https://danci.gjcha.com/math.html
2.探索JavaScript的数学魔法:深入Math对象在前端开发中,JavaScript 提供了许多强大的工具来处理数据和操作。其中,Math 对象是 JavaScript 中一个非常重要的内置对象,它提供了许多用于执行数学运算的属性和方法。无论是简单的算术运算还是复杂的数学函数,Math 对象都能满足你的需求。本文将深入探讨 Math 对象的高级用法,帮助你更好地利用这一强大的工具。 https://blog.csdn.net/python_jeff/article/details/144371849
3.从零开始的Python世界生活——内置模块篇(Math)Python的math模块提供了丰富的数学函数和常数,支持基本的数学运算、三角函数、对数、指数等,适用于科学计算和工程应用。 数学常量: 注意math模块的常量是以双精度浮点数存储的,所以通常只有15到17位有效数字的精度,如果需要更高的精度推荐使用decimal模块或mpmath库 https://www.erlo.vip/share/27/108712.html
4.c语言中abc是什么意思,导入什么包字符数组的简写。在计算机c语言中,“abc”这样的字符串其实是字符数组的简写,通常需要导入stdbool.h包才能使用bool类型。而C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。https://zhidao.baidu.com/question/2275812384297319988.html
5.数学数学中的英语名词汇微积分 第一章 函数与极限 Chapter1 Function and Limit 集合 set 元素 element 子集 subset 空集 empty set 并集 union 交集 intersection 差集 difference of set 基本集 basic set 补集 complement set 直积 di…https://zhuanlan.zhihu.com/p/134603058
6.面试题(二)9. 事件委托是什么?让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行。10. 闭包是什么,有什么特性,对页面有什么影响?我的理解是,闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。https://www.jianshu.com/p/d88cd0cd30cb?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
7.Alibaba最新1000多道Java面试题汇总详解,收藏起来慢慢刷!13、讲下 java 中的 math 类有那些常用方法? 14、Char 类型能不能转成 int 类型?能不能转化成 string 类型,能不能转成 double 类型 15、什么是拆装箱? 16、Java 中的包装类都是那些? 17、一个 java 类中包含那些内容? 18、那针对浮点型数据运算出现的误差的问题,你怎么解决? https://maimai.cn/article/detail?fid=1728969401&efid=esjJLvGGL4fAr1LArgq_cQ
8.解题思路范文12篇(全文)这是高一年下学期期末统考卷填空题的最后一题.此题在本校的学生中得分率非常低.绝大多数学生面对△ABC的一般性,点位置的不确定性无从下手;对求出面积S′,S的值毫无信心;觉得没有坐标的向量运算很难操作.如何指导学生获取问题信息,正确理解题意,探寻解题思路?在没有好的办法或者没有完全清晰明了问题的指向时,https://www.99xueshu.com/w/ikey7hbwpis3.html
9.JAVA定义一个函数比较两个数的大小java比较两个变量的大小系统先在字符串中寻找是否存在"abc"的常量 如果存在,则直接将该"abc"在常量池中的地址指向s,这个时候,系统没有创建新对象。 如果不存在,则在常量池中新建一个"abc"并放入常量池里面,然后再返回该地址,这个时候,系统创建了一个对象。 String s = "abc"; https://blog.51cto.com/u_16213618/11049097
10.七年级暑假生活指导答案山东教育出版社4.小红的意思:同位角相等两直线平行 小花的理由:内错角相等两直线平行 另一组平行线:AB//CE 理由:∠ABC=∠ECD →AB//CE ( 同位角相等两直线平行) 5.设2元x张,则5元58-20-7-x 张 2x+5(58-20-7-x)+20+10*7=200 x=15 2元15张,则5元16张 https://www.yjbys.com/xuexi/shujiazuoye/1116766.html
11.www.hovkox.net/aplmine12欧洲黄片APP下载。 亚洲无码小于500 小黄文日逼文 336.62MB 828好评 三级片色色色国产免费观看 女的扒开退让男人猛桶 国产一区二区三区喷水美女 185.80MB 904好评 亚洲熟妇免费发布页 日本强奸aahaaaaaa电影 国产中文字幕 104.99MB 554好评 久久亚洲AV理论片 http://www.hovkox.net/aplmine12_16301.html
12.C语言中EOF是什么意思?C语言中EOF是什么意思? 评分: 如果您在看代码过程中,看到特殊的字符感觉不是关键字也不是函数,那您首先要想到的就是:这个东西是不是#define或者typedef过的呢? C语言 程序设计 EOF 文章 基础课 C语言基础 2020-07-18 上传 大小:51KB 所需: 50积分/C币 立即下载 https://www.iteye.com/resource/weixin_38625192-12634630
13.哈拉认证清真认证halal认证ABCFAQ清真认证ABC 清真-全球清真?业在过去年中稳步发展。然?,控制快速增?的?业清真认证标准和指南是什么?这是我们试图解决的最重要问题之?,因为清真?业的每个?都似乎都有的看法,清真的定义对他们意味着什么。 什么是清真标准和清真认证指南?https://www.xbaohui.com/?m=home&c=View&a=index&aid=480
14.entanglement是什么意思,entanglement怎么读,entanglement的意思He is lead author of a paper to be published tomorrow in physical review letters , which explains how string theory math can be used to predict quantum entanglement . 他是今天发表在《物理评论快报》(physicalreviewletters)杂志上的一篇论文的领衔作者,这篇论文解释了弦论数学如何能够被用于预测量子纠缠。https://fanyi.kkabc.com/ci/entanglement
15.C#正则表达式(Regex类)用法实例总结C#教程1.1.1元字符是什么 所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。 1.1.2定位元字符 字符 说明 \b 匹配单词的开始或结束. \B 匹配非单词的开始或结束 ^匹配必须出现在字符串的开头或行的开头 https://m.jb51.net/article/258019.htm
16.Charpter1曾记否,sin(π/6)+cos(π/3)=1sin(π/6)+cos(π/3)=1,我们来看一看 Python 的运算结果: In [36]: math.sin(math.pi/6) + math.cos(math.pi/3) Out[36]: 1.0 8. 绘图 第一步,我们先导入画图工具箱。 下面语句的意思是从一个叫 matplotlib 的工具箱中导入一个小的工具箱 pyplot,pyplot https://siqef.phbs.pku.edu.cn/python/PyIntro-ch.html