- 下列是类和对象关系得是(B)(易)
A.苹果和橘子 B.水果和苹果
C.水果和水果刀 D.苹果和水果刀
- int i=0; i=i++;执行这2句话后变量i的值为(A)(难)
A. 0 B. 1 C. 2 D. 3
- 怎样用2个栈实现队列(难)
答案:队列的要求是先进先出,用两个栈可以很容易的实现
假设其中一个栈为s1, 另一个为s2
l 入队:将元素放入s1中,s2始终为空
l 出队: 1). 首先将s1中的元素全部导入s2的栈中,清空s1;2). 然后再将s2栈顶元素出栈,保留下来;3). 将s2剩余元素导入s1中,恢复数据原有顺序,就可以了。
- 用递归实现任意一个数的阶乘(中)
public class test {
public static void main(String [] args) {
System.out.println(fuc(100));
}
public static double fuc(int n){
if(n==1) return 1;
else return n*fuc(n-1);
}
}
- 使用递归检索指定文件夹中的资源(难)
package com.accp;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Recursive {
private static List fileList = new ArrayList();
/**
* 使用递归搜索指定文件夹中的资源
* @param path 要搜索的文件目录
* @return 包含文件路径的列表
*/
public static List searchFile(String path) {
try {
// List fileList = new ArrayList();
File dir = new File(path);
File[] files = dir.listFiles();
if (files == null) {
return null;
}
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
fileList.add(files[i].getAbsolutePath());
searchFile(files[i].getAbsolutePath());
} else {
String strFileName = files[i].getAbsolutePath().toLowerCase();
fileList.add(files[i].getAbsolutePath());
}
}
return fileList;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
String path = “c:\java”;
long start = System.currentTimeMillis();
Recursive r = new Recursive();
List files = r.searchFile(path);
System.out.println(“共有文件数量:” + files.size());
System.out.print(“总共用时:”);
System.out.println(System.currentTimeMillis() – start);
Iterator i = files.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
}
}
- 编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。(难)
import java.io.*;
public class Dicemal{
public static void main(String[] args) throws Exception{
int shang=0,yu;
boolean flag=false;
System.out.println(“请输入一个数字(最大值为<“+Integer.MAX_VALUE+”):”);
InputStream is = System.in;
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String str=br.readLine();
char[] ch=new char[str.length()];
str.getChars(0, str.length(), ch, 0);
for(int a=0;a<str.length();a++){
if(!Character.isDigit(ch[a])){
System.out.println(“有非数字字符”);
System.exit(0);
}
}
try{
shang=Integer.parseInt(str);
flag=true;
}catch(Exception e){
System.out.println(“数字过大”);
}
str=””;
if (flag){
while (shang != 0){
yu = shang % 2;
shang = shang / 2;
str = yu + str;
}
}
System.out.println(str);
}
}
- 请写出你知道的JAVA开源软件,并用一句话说明其功能。(中)
答案:Struts WEB框架
Spring IOC/AOP 框架
Hibernate ORM框架
DWR ajax 框架
Log4j 日志调试
Validator 验证框架
- 构建工具Ant使用的缺省xml文件名是?(中)
答案:Build.xml
- 简述什么是SOA。(难)
答案:面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
- XML在JAVA中有那些解析方法。(难)
DOM/SAX
- WAR包中的jar一般是放在哪个目录下?(难)
答案:lib
- 简述Junit和单元测试的作用?(中)
答案:检查程序和预期设计的是否一致.
- 什么是工作流?(难)
答案:工作流(Work Flow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的河水就是工作流。
工作流属于计算机支持的协同工作(Computer Supported Cooperative Work,CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。
许多公司采用纸张表单,手工传递的方式,一级一级审批签字,工作效率非常低下,对于统计报表功能则不能实现。而采用工作流软件,使用者只需在电脑上填写有关表单,会按照定义好的流程自动往下跑,下一级审批者将会收到相关资料,并可以根据需要修改、跟踪、管理、查询、统计、打印等,大大提高了效率,实现了知识管理,提升了公司的核心竞争力。
- JavaEE是什么?(中)
答案:是sun提出的一种规范和标准.现在有很多种实现
- 什么是webService? (中)
答案:WEB服务是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。
WEB服务的核心主要包括:
l SOAP:一个基于XML的可扩展消息信封格式,需同时绑定一个传输用协议。这个协议通常是HTTP或HTTPS,但也可能是SMTP或XMPP。
l WSDL:一个XML格式文档,用以描述服务端口访问方式和使用协议的细节。通常用来辅助生成服务器和客户端代码及配置信息。
l UDDI:一个用来发布和搜索WEB服务的协议,应用程序可借由此协议在设计或运行时找到目标WEB服务。
WEB服务实际上是一组工具,并有多种不同的方法调用之。三种最普遍的手段是:远程过程调用(RPC),面向服务架构(SOA)以及表述性状态转移(REST)。
- Struts,webWork 的理解. (中)
答案:两个实现了MVC的WEB应用程序开发的框架.
- ORM的中间控件有哪些(举例). (中)
答案:Hibernate , IbatIs, JDO , EntityBean
- 写出java异常处理的5个关键字(中)
答案:Try , catch, finally, throw, throws
- 描述break和continue控制循环的流程不同之处(中)
答案:break 退出牡循环体,continue指退出当前这次循环,继续进入下一次循环.
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?(易)
会执行,在return前执行。
- 常见的runtime exception有哪些?。(易)
ArithmeticException,
ArrayStoreException,
BufferOverflowException,
BufferUnderflowException,
CannotRedoException, CannotUndoException,
ClassCastException,
CMMException,
ConcurrentModificationException,
DOMException,
EmptyStackException, IllegalArgumentException,
IllegalMonitorStateException,
IllegalPathStateException,
IllegalStateException,
ImagingOpException, IndexOutOfBoundsException,
MissingResourceException,
NegativeArraySizeException,
NoSuchElementException, NullPointerException,
ProfileDataException,
ProviderException,
RasterFormatException,
SecurityException,
SystemException, UndeclaredThrowableException,
UnmodifiableSetException,
UnsupportedOperationException
NullPointException
- 代码推断?(中)
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round方法返回与参数最接近的长整数.
- 构造器Constructor是否可被(覆盖)override? (易)
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。