第 1 页 57 页 面试题集
面试题集分十局部: Core Java: 1 — 95题 1 — 24页 根底语法: 1 — 61题 1 — 13页 异常: 62 — 69题 13 — 15页 集合: 70 — 80题 15 — 18页 线程: 81 — 90题 18 — 21页 IO & Socket: 91 — 95题 21 — 24页 二OOAD & UML: 96 — 101题 24 — 25页 三XML: 102 — 105题 26 — 29页 四SQL: 106 — 109题 29 — 31页 五JDBC & Hibernate: 110 — 121题 31 — 35页 六Web: 122 — 161题 35 — 44页 七EJB & Spring: 162 — 179题 44 — 47页 八数结构 & 算法 & 计算机根底: 180 — 187题 47 — 51页 九C++: 188 — 201题 51 — 55页 十Weblogic(附加局部) 1 —— 13题 55 — 57页
CoreJava局部:〔95题:根底91道中等难度4道〕
根底语法局部:〔61题:根底60道中等难度1道〕
1面象特征方面 根底 答:面象特征方面: 1)抽象:抽象忽略题中前目标关方面便更充分注意前目标关方面抽象算解全部问题选择中局部暂时局部细节抽象包括两方面程抽象二数抽象 2)继承:继承种联结类层次模型允许鼓励类重提供种明确表述性方法象新类现类中派生程称类继承新类继承原始类特性新类称原始类派生类〔子类〕原始类称新类基类〔父类〕派生类基类里继承方法实例变量类修改增加新方法更适合特殊需 3)封装:封装程数包围起数访问通已定义界面面象计算始根概念现实世界描绘成系列完全治封装象象通受保护接口访问象 4)态性:态性指允许类象消息作出响应态性包括参数化态性包含态性态性语言具灵活抽象行享代码享优势解决应程序函数名问题
2作域publicprivateprotected写时区?根底 答:区: 作域 前类 包 子孙类 public √ √ √ √
第 2 页 57 页
protected √ √ √ × default √ √ × × private √ × × × 写时默认default
3String根数类型 根底 答:
4float型float f34否正确 根底 答正确精度准确应该强制类型转换示:float f(float)34
5语句float f13编译否通?根底 答应该强制类型转换示:float f(float)13
6short s1 1 s1 s1 + 1什错 short s1 1 s1 + 1什错 根底 答:short s1 1 s1 s1 + 1s1+1运算结果int型需强制转换类型 short s1 1 s1 + 1正确编译动类型提升
7Java没goto 根底 答:gotojava中保存字现没java中
8int Integer 什区 根底 答:Java 提供两种类型:引类型原始类型〔置类型〕 intjava原始数类型Integerjavaint提供封装类 Java原始类型提供封装类: 原始类型 booleancharbyteshortintlongfloatdouble 封装类型:BooleanCharacterByteShortIntegerLongFloatDouble 引类型原始类型行完全具语义引类型原始类型具特征法包括:速度问题种类型种类型数结构存储引类型原始类型作某类实例数时指定缺省值象引实例变量缺省值 null原始类型实例变量缺省值类型关
9&&&区?根底 答:&位运算符表示位运算&&逻辑运算符表示逻辑〔and〕
10简述逻辑操作(&|^)条件操作(&&||)区?根底 答:区两点:a条件操作操作布尔型逻辑操作仅操作布尔型操作数值型b逻辑操作会产生短路
11heapstack什区?根底 答:栈种线形集合添加删元素操作应段完成栈进先出方式进行处理堆栈组成元素
第 3 页 57 页
12Mathround(115) 等少 Mathround(115)等少 根底 答:Mathround(115)12 Mathround(115)11 round方法返回参数接长整数参数加12求floor
13swtich否作byte否作long否作String 根底 答:switch〔expr1〕中expr1整数表达式传递 switch case 语句参数应该 int short char 者 bytelongstring 作swtich
14编程题 效率方法算出28等於 根底 答: 2 << 3
15没length()方法 String没length()方法?根底 答:数组没length()方法length属性Stringlength()方法
16JAVA中跳出前重嵌套循环?根底 答:外层循环前加label标识然breaklabel方法跳出重循环
17构造器Constructor否override 根底 答:构造器Constructor继承重写Overriding重载Overloading
18两象值相(xequals(y) true)hash code句话 根底 答:相hash code
19否继承String类 根底 答:String类final类继承
20二条语句返回值true: A:beijing〞beijing〞 B:beijing〞equalsIgnoreCase〔new String〔beijing〞〕〕根底 答:A B
21象作参数传递方法方法改变象属性返回变化结果里底值传递引传递 根底 答:值传递Java 编程语言值传递参数象实例作参数传递方法中时参数值该象引象容调方法中改变象引永远会改变
22web应开发程中常遇输出某种编码字符iso88591等输出某种编码字符串?根底 答:public String translate(String str){
第 4 页 57 页
String tempStr try{ tempStr new String(strgetBytes(ISO88591) GBK) tempStr tempStrtrim() }catch (Exception e){ Systemerrprintln(egetMessage()) } return tempStr }
23String StringBuffer区 根底 答:JAVA台提供两类:StringStringBuffer储存操作字符串包含字符字符数String类提供数值改变字符串StringBuffer类提供字符串进行修改知道字符数改变时候StringBuffer典型StringBuffers动态构造字符数
24String StringBuffer StringBuilder区根底 答:String长度变 StringBuffer长度变果字符串中容常进行操作特容修改时StringBuffer果需StringStringBuffertoString()方法线程安 StringBuilder JDK 5 开始StringBuffer该类补充单线程等价类通常应该优先 StringBuilder 类支持相操作执行步速度更快
25OverloadOverride区Overloaded方法否改变返回值类型 根底 答:方法重写Overriding重载OverloadingJava态性表现重写Overriding父类子类间态性种表现重载Overloading类中态性种表现果子类中定义某方法父类相名称参数说该方法重写 (Overriding)子类象方法时调子类中定义言父类中定义屏蔽〞果类中定义名方法参数数参数类型称方法重载(Overloading)Overloaded方法改变返回值类型
26定义类A类B:根底
class A {
int a1
double d20
void show(){
Systemoutprintln(Class A a+a +\td+d)
}
}
class B extends A{
第 5 页 57 页
float a30f
String dJava program
void show(){
supershow( )
Systemoutprintln(Class B a+a +\td+d)
}
}
(1) 假设应程序main方法中语句:
A anew A()
ashow()
输出结果?
(2) 假设应程序main方法中定义类B象b:
A bnew B()
bshow()
输出结果?
答:输出结果: 1〕Class A a1 d20 2〕Class A a1 d20
Class B a30 dJava program
27描述JVM加载class文件原理机制 根底 答:JVM中类装载ClassLoader子类实现Java ClassLoader 重Java运行时系统组件负责运行时查找装入类文件类
28char型变量中存贮中文汉字什 根底 答:够定义成中文java中unicode编码char占16字节放中文没问题
29abstract classinterface什区 根底 答:声明方法存实现类做抽象类〔abstract class〕创立表达某根行类该类声明方法该类中实现该类情况创立abstract 类实例然创立变量类型抽象类指具体子类实例抽象构造函数抽象静态方法Abstract 类子类父类中抽象方法提供实现否抽象类取代子类中实现该方法知道行类类中实现方法接口〔interface〕抽象类变体新型继承性通实现样接口获接口中方法抽象成员变量public static final类实现接口类实现特殊接口时定义〔程序体予〕种接口方法然实现该接口类象调接口方法抽象类允许接口名作引变量类型通常动态联编生效引转换接口类型接口类型转换instanceof 运算符决定某象类否实现接口
第 6 页 57 页
30Static Nested Class Inner Class?根底 答:Static Nested Class声明静态〔static〕部类赖外部类实例实例化通常部类需外部类实例化实例化
31java中会存存泄漏请简单描述根底 答:会存达象象GC回收导致消耗存资源
32abstractmethod否时static否时native否时synchronized 根底 答:
33静态变量实例变量区?根底 答:静态变量称类变量全类赖某象通类名直接访问实例变量必须存某实例通象访问
34否static方法部发出非static方法调?根底 答:果中包含象method()保证象初始化
35写clone()方法时通常行代码什?根底 答:Clone 缺省行:superclone()负责产生正确空间逐位复制
36GC什 什GC 根底 答:GC垃圾收集意思〔Gabage Collection〕存处理编程员容易出现问题方忘记者错误存回收会导致程序系统稳定甚崩溃Java提供GC功动监测象否超作域达动回收存目Java语言没提供释放已分配存显示操作方法 Java 程序员担忧存理垃圾收集器会动进行理请求垃圾收集调面方法:Systemgc() RuntimegetRuntime()gc()
37垃圾回收优点原理考虑2种回收机制根底 答:Java语言中显著特点引入垃圾回收机制c++程序员头疼存理问题迎刃解Java程序员编写程序时候需考虑存理垃圾回收机制Java中象作域〞概念象引作域〞垃圾回收效防止存泄露效存垃圾回收器通常作单独低级线程运行预知情况存堆中已死亡者长时间没象进行清楚回收程序员实时调垃圾回收器某象象进行垃圾回收回收机制分代复制垃圾回收标记垃圾回收增量垃圾回收
38垃圾回收器根原理什?垃圾回收器马回收存?什方法动通知虚拟机进行垃圾回收?根底 答:GC说程序员创立象时GC开始监控象址情况通常GC采图方式记录理堆(heap)中象通种方式确定象达象达GC确定
第 7 页 57 页
象达时GC责回收存空间程序员手动执行Systemgc()通知GC运行Java语言标准保证GC定会执行
39String snew String(xyz〞)创立String Object 根底 答:两象xyx指xyx引象s
40接口否继承接口 抽象类否实现(implements)接口 抽象类否继承实体类(concrete class) 根底 答:接口继承接口抽象类实现(implements)接口抽象类继承实体类前提实体类必须明确构造函数
41Java接口C++虚类相处根底 答:Java支持继承某类象分类象里面方法属性现单继承机制满足求继承相接口更高灵活性接口中没实现代码类实现接口该类实现接口里面方法属性接口里面属性默认状态面public static方法默认情况public类实现接口
42java〞源文件中否包含类〔部类〕?什限制?根底 答:必须类名文件名相
43说出常类包接口请举5根底 答:常类:BufferedReader BufferedWriter FileReader FileWirter String Integer 常包:javalang javaawt javaio javautil javasql 常接口:Remote List Map Document NodeList
44Anonymous Inner Class (匿名部类) 否extends(继承)类?否implements(实现)interface(接口) 根底 答:继承类实现接口swing编程中常方式
45部类引包含类成员?没什限制?根底 答:部类象访问创立外部类象容
46java中实现态机制什?根底 答:方法覆盖Overriding重载Overloadingjava态性表现覆盖Overriding父类子类间态性种表现重载Overloading类中态性种表现
47java中类声明final类型表示什意思?根底 答:表示该类继承顶级类
48面类继承 根底 1〕javalangThread (T)
第 8 页 57 页
2〕javalangNumber (T) 3〕javalangDouble (F) 4〕javalangMath (F) 5〕javalangVoid (F) 6〕javalangClass (F) 7〕javalangClassLoader (T) 答:127继承
49指出面程序运行结果 根底 class A{ static{ Systemoutprint(1) } public A(){ Systemoutprint(2) } } class B extends A{ static{ Systemoutprint(a) } public B(){ Systemoutprint(b) } } public class Hello{ public static void main(String[] ars){ A ab new B() 执行处结果 1a2b ab new B() 执行处结果 1a2b2b } } 答:输出结果1a2b2b类static 代码段作类首次加载(虚拟机加载)执行代码类加载首先执行基类构造执行身构造
50继承时候类执行序问题般选择题问会印出什 根底 父类: package test public class FatherClass { public FatherClass() { Systemoutprintln(FatherClass Create) } } 子类 package test import testFatherClass
第 9 页 57 页
public class ChildClass extends FatherClass { public ChildClass() { Systemoutprintln(ChildClass Create) } public static void main(String[] args) { FatherClass fc new FatherClass() ChildClass cc new ChildClass() } } 答:输出结果: FatherClass Create FatherClass Create ChildClass Create
51部类实现方式 根底 答:例代码: package test public class OuterClass { private class InterClass { public InterClass() { Systemoutprintln(InterClass Create) } } public OuterClass() { InterClass ic new InterClass() Systemoutprintln(OuterClass Create) } public static void main(String[] args) { OuterClass oc new OuterClass() } } 输出结果 InterClass Create OuterClass Create
52关部类: 根底 public class OuterClass { private double d1 10 insert code here } You need to insert an inner class declaration at line 3Which two inner class declarations are valid(Choose two) A class InnerOne{ public static double methoda() {return d1} }
第 10 页 57 页
B public class InnerOne{ static double methoda() {return d1} } C private class InnerOne{ double methoda() {return d1} } D static class InnerOne{ protected double methoda() {return d1} } E abstract class InnerOne{ public abstract double methoda() } 答:答案CE说明: 1〕静态部类静态成员非静态部类静态成员 AB 错 2〕静态部类非静态成员访问外部类静态变量访问外部类非静态变量 D 错 3〕非静态部类非静态成员访问外部类非静态变量 C 正确
53数类型间转换 1)数值型字符转换数字? 2)数字转换字符? 3)取数点前两位四舍五入 根底 答:1)调数值类型相应包装类中方法parse***(String)valueOf(String) 返回相应根类型包装类型数值 2)数字空字符串相加获应字符串外根类型 数字调String类中valueOf(…)方法返回相应字符串包装类型数字调toString()方法获相应字符串 3)该数字构造象利round()方法 进行四舍五入保存数点两位转换字符串截取两位
54字符串操作:实现字符串反转换?根底 答:字符串构造StringBuffer象然调StringBuffer中reverse方法实现字符串反转调replace方法实现字符串换
55编码转换:样GB2312编码字符串转换ISO88591编码字符串?根底 答:例代码 String s1 String s2 new String(s1getBytes(GB2312) ISO88591)
56写函数求输入字符串字符长度该字符串进行分隔 根底 答:函数代码: public String[] split(String str int chars){
第 11 页 57 页
int n (strlength()+ chars 1)chars String ret[] new String[n] for(int i0 i57写函数2参数1字符串1字节数返回截取字符串求字符串中中文出现乱码:〔ABC〞4〕应该截AB〞输入〔ABC汉DEF〞6〕应该输出ABC〞ABC+汉半〞 根底 答:代码: public String subString(String str int subBytes) { int bytes 0 存储字符串总字节数 for (int i 0 i < strlength() i++) { if (bytes subBytes) { return strsubstring(0 i) } char c strcharAt(i) if (c < 256) { bytes + 1 英文字符字节数作1 } else { bytes + 2 中文字符字节数作2 if(bytes subBytes 1){ return strsubstring(0 i) } } } return str }
58日期时间: 1)取年月日时分秒? 2)取1970年现毫秒数? 3)取某日期月天? 4)格式化日期?根底 答:1)创立实例(CalendargetInstance())调get() 方法传入参数获参数应值: calendarget(CalendarYEAR)获年 2)方法均获该毫秒数
第 12 页 57 页
CalendargetInstance()getTimeInMillis() SystemcurrentTimeMillis() 3)例代码 Calendar time CalendargetInstance() timeset(CalendarDAY_OF_MONTH timegetActualMaximum(CalendarDAY_OF_MONTH)) 4)利ataFormat类中format()方法日期格式化
59Java编程印昨天前时刻根底 答:public class YesterdayCurrent{ public static void main(String[] args){ Calendar cal CalendargetInstance() caladd(CalendarDATE 1) Systemoutprintln(calgetTime()) } }
60javajavasciprt区根底 答:JavaScriptJava两公司开发两产品JavaSUN公司推出新代面象程序设计语言特适合Internet应程序开发JavaScriptNetscape公司产品目扩展Netscape Navigator功开发种嵌入Web页面中基象事件驱动解释性语言 前身Live ScriptJava前身Oak语言面两种语言间异作拟: 1〕基象面象: Java种真正面象语言开发简单程序必须设计象 JavaScript种脚语言制作网络关户交互作复杂软件种基象〔Object Based〕事件驱动〔Event Driver〕编程语言身提供非常丰富部象供设计员 2〕解释编译: Java源代码执行前必须编译 JavaScript种解释性编程语言源代码需编译浏览器解释执行 3〕强类型变量类型弱变量: Java采强类型变量检查变量编译前必须作声明 JavaScript中变量声明采弱类型变量前需作声明解释器运行时检查数类型 4〕代码格式样
61什时候assert?中等难度 答:assertion(断言)软件开发中种常调试方式开发语言中支持种机制般说assertion保证程序根关键正确性assertion检查通常开发测试时开启提高性软件发布assertion检查通常关闭实现中断言包含布尔表达式语句执行语句时假定该表达式 true果表达式计算 false系统
第 13 页 57 页
会报告 Assertionerror 断言调试目: assert(a > 0) throws an Assertionerror if a < 0 断言两种形式: assert Expression1 assert Expression1 Expression2 Expression1 应该总产生布尔值 Expression2 出值意表达式值生成显示更调试信息 String 消息 断言默认情况禁编译时启断言需 source 14 标记: javac source 14 Testjava 运行时启断言 enableassertions 者 ea 标记 运行时选择禁断言 da 者 disableassertions 标记 系统类中启断言 esa 者 dsa 标记包根底启者禁断言预计正常情况会达位置放置断言断言验证传递私方法参数断言应该验证传递公方法参数否启断言公方法必须检查参数公方法中非公方法中利断言测试置条件外断言应该方式改变程序状态
异常局部:〔8题:根底8道〕
62Java中异常处理机制简单原理应?根底 答:JAVA程序违反JAVA语义规时JAVA虚拟机会发生错误表示异常违反语义规包括2种情况种JAVA类库置语义检查例数组标越界会引发IndexOutOfBoundsException访问null象时会引发NullPointerException种情况JAVA允许程序员扩展种语义检查程序员创立异常选择时throw关键字引发异常异常子类
63errorexception什区 根底 答:error表示系统级错误程序必处理异常恢复困难情况种严重问题方存溢出指程序处理样情况 exception表示需捕捉者需程序进行处理异常种设计实现问题说表示果程序运行正常会发生情况
64try {}里return语句紧tryfinally {}里code会会执行什时候执行return前 根底 答:会执行return前执行
65JAVA语言进行异常处理关键字:throwsthrowtrycatchfinally分代表什意义?try块中抛出异常?根底 答:Java通面象方法进行异常处理种异常进行分类提供良接口Java中异常象Throwable类子类实例方法出现异常便抛出异常象该象中包含
第 14 页 57 页
异常信息调象方法捕获异常进行处理Java异常处理通5关键词实现:trycatchthrowthrowsfinally般情况try执行段程序果出现异常系统会抛出〔throws〕异常时候通类型捕捉〔catch〕〔finally〕缺省处理器处理 try指定块预防异常〞程序 catch子句紧try块面指定想捕捉异常〞类型 throw语句明确抛出异常〞 throws标明成员函数抛出种异常〞 Finally确保段代码发生什异常〞执行段代码 成员函数调外面写try语句成员函数部写try语句保护代码遇try语句异常〞框架放堆栈面直try语句完成果级try语句没某种异常〞进行处理堆栈会展开直遇处理种异常〞try语句
66运行时异常般异常异?根底 答:异常表示程序运行程中出现非正常状态运行时异常表示虚拟机通常操作中遇异常种常见运行错误java编译器求方法必须声明抛出发生非运行时异常求必须声明抛出未捕获运行时异常
67常见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
68final finally finalize区 根底 答:final:修饰符〔关键字〕果类声明final意味着派生出新子类作父类继承类声明 abstract声明final变量方法声明final保证中改变声明final变量必须声明时定初值引中读取修改声明final方法样重载 finally:异常处理时提供 finally 块执行操作果抛出异常相匹配 catch 子句会执行然控制会进入 finally 块〔果话〕 finalize:方法名Java 技术允许 finalize() 方法垃圾收集器象存中出前做必清理工作方法垃圾收集器确定
第 15 页 57 页
象没引时象调 Object 类中定义类继承子类覆盖 finalize() 方法整理系统资源者执行清理工作finalize() 方法垃圾收集器删象前象调
69类Example A继承 Exception类 ExampleB继承Example A根底 代码片断: try{ throw new ExampleB(b〞) }catch〔ExampleA e〕〔ExampleA〞〕 }catch〔Exception e〕〔Exception〞〕 } 输出容应该: A:ExampleA B:Exception C:b D: 答:输出A
集合局部:〔11题:根底11道〕
70介绍JAVA中Collection FrameWork(写数结构)根底 答:Collection FrameWork:
Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection根集合接口Collection代表组ObjectCollection元素〔Elements〕Map提供keyvalue映射
71ListSetMap否继承Collection接口?根底 答:ListSetMap
72知道集合类?方法?根底 答:常集合类 List MapList 具体实现包括 ArrayList Vector变列表拟适合构建存储操作类型象元素列表 List 适数值索引访问元素情形 Map 提供更通元素存储方法 Map 集合类存储元素〔称作键〞值〞〕中键映射值
第 16 页 57 页
73说出ArrayListVector LinkedList存储性特性?根底 答:ArrayListVector数组方式存储数数组元素数实际存储数便增加插入元素允许直接序号索引元素插入元素涉数组元素移动等存操作索引数快插入数慢Vectorsynchronized方法〔线程安〕通常性较ArrayList差LinkedList双链表实现存储序号索引数需进行前遍历插入数时需记录项前项插入速度较快
74Collection Collections区?根底 答:Collectionjavautil接口种集合父接口继承接口Set ListCollectionsjavautil类针集合帮助类提供系列静态方法实现种集合搜索排序线程安化等操作
75HashMapHashtable区 根底 答:二者实现Map接口惟键映射特定值区: 1)HashMap没排序允许 null 键 null 值Hashtable允许 2)HashMapHashtablecontains方法掉改成containsvaluecontainsKeycontains方法容易引起误解 3)Hashtable继承Dictionary类HashMapJava12引进Map接口实现 4)Hashtable方法SynchronizeHashMap线程访问Hashtable时需方法实现步HashMap 必须提供外步 HashtableHashMap采hashrehash算法致样性会差异
76ArraylistVector区?根底 答:ArrayListVector二方面说:
1〕步性:Vector线程安〔步〕ArrayList线程序安 2〕数增长:需增长时Vector默认增长倍ArrayList半
77ListMapSet三接口存取元素时什特点?根底 答:List 特定次序持元素重复元素Set 法拥重复元素部排序Map 保存keyvalue值value值
78Set里元素重复什方法区分重复否呢 equals() 区 根底 答:Set里元素重复equals ()方法区分重复否覆盖equals()方法判断象容否相〞〞判断址否相等决定引值否指象
79程序出便10数序号110序输出输出相应序号根底 答:代码: package test import javautilArrayList
第 17 页 57 页
import javautilCollections import javautilIterator import javautilList import javautilRandom public class RandomSort { public static void printRandomBySort() { Random random new Random() 创立机数生成器 List list new ArrayList() 生成10机数放集合list中 for (int i 0 i < 10 i++) { listadd(randomnextInt(1000)) } Collectionssort(list) 集合中元素进行排序 Iterator it listiterator() int count 0 while (ithasNext()) { 序输出排序集合中元素tln(++count + + itnext()) } } public static void main(String[] args) { printRandomBySort() } }
80JAVA实现种排序JAVA类实现序列化方法? COLLECTION框架中实现拟实现什样接口?根底 答:插入法进行排序代码: package test import javautil* class InsertSort { ArrayList al public InsertSort(int numint mod) { al new ArrayList(num) Random rand new Random() Systemoutprintln(The ArrayList Sort Before) for (int i0i第 18 页 57 页
tempInt (Integer)alremove(i) if(tempIntintValue() > ((Integer)alget(MaxSize1))intValue()){ aladd(MaxSizetempInt) MaxSize++ Systemoutprintln(altoString()) }else{ for (int j0jtempIntintValue()){ aladd(jtempInt) MaxSize++ Systemoutprintln(altoString()) break } } } } Systemoutprintln(The ArrayList Sort After) for(int i0i线程局部:〔10题:根底7道中等难度3道〕
81sleep() wait() 什区 根底 答:sleep线程类〔Thread〕方法导致线程暂停执行指定时间执行时机线程监控状态然保持时会动恢复调sleep会释放象锁waitObject类方法象调wait方法导致线程放弃象锁进入等象等锁定池针象发出notify方法〔notifyAll〕线程进入象锁定池准备获象锁进入运行状态
82线程进入象synchronized方法线程否进入象方法 根底 答:线程访问该象非步方法步方法进入
第 19 页 57 页
83请说出知道线程步方法根底 答:wait()线程处等状态释放持象lock sleep()正运行线程处睡眠状态静态方法调方法捕捉InterruptedException异常 notify()唤醒处等状态线程注意调方法时候确切唤醒某等状态线程JVM确定唤醒线程优先级 notityAll()唤醒处入等状态线程注意唤醒线程象锁竞争
84线程种实现方法什步种实现方法什 根底 答:线程两种实现方法分继承Thread类实现Runnable接口 步实现方面两种分synchronizedwaitnotify
85步异步异什情况分?举例说明根底 答:果数线程间享例正写数线程读者正读数已线程写数享数必须进行步存取应程序象调需花费长时间执行方法希程序等方法返回时应该异步编程情况采异步途径更效率
86启动线程run()start()根底 答:启动线程调start()方法线程代表虚拟处理机处运行状态意味着JVM调度执行意味着线程会立运行run()方法产生必须退出标志停止线程
87 线程根概念线程根状态状态间关系?根底 答:线程指程序执行程中够执行程序代码执行单位程序少线程程序身 Java中线程四种状态分:运行绪挂起结束
88简述synchronized异 ?中等难度 答:相点:Lock完成synchronized实现功 点:Locksynchronized更精确线程语义更性synchronized会动释放锁Lock定求程序员手工释放必须finally句中释放
89java中种方法实现线程?什关键字修饰步方法 stop()suspend()方法推荐?中等难度 答:两种实现方法分继承Thread类实现Runnable接口 synchronized关键字修饰步方法 反stop()安会解线程获取锁定果象处种连贯状态线程种状态检查修改结果难检查出真正问题
第 20 页 57 页
suspend()方法容易发生死锁调suspend()时候目标线程会停然持前获锁定时线程访问锁定资源非挂起〞线程恢复运行线程说果想恢复目标线程时试图锁定资源会造成死锁应该suspend()应Thread类中置入标志指出线程应该活动挂起假设标志指出线程应该挂起便wait()命进入等状态假设标志指出线程应恢复notify()重新启动线程
90设计4线程中两线程次j增加1两线程j次减少1写出程序中等难度 答:程序部类实现线程j增减时候没考虑序问题: public class TestThread { private int j public TestThread(int j) {thisj j} private synchronized void inc(){ j++ Systemoutprintln(j + Inc + ThreadcurrentThread()getName()) } private synchronized void dec(){ j Systemoutprintln(j + Dec + ThreadcurrentThread()getName()) } public void run() { (new Dec())start() new Thread(new Inc())start() (new Dec())start() new Thread(new Inc())start() } class Dec extends Thread { public void run() { for(int i0 i<100 i++){ dec() } } } class Inc implements Runnable { public void run() { for(int i0 i<100 i++){ inc() } } }
第 21 页 57 页
public static void main(String[] args) { (new TestThread(5))run() } }
IO流Socket局部:〔5题:根底5道〕
91什java序列化实现java序列化?根底 答:序列化种处理象流机制谓象流象容进行流化流化象进行读写操作流化象传输网络间序列化解决象流进行读写操作时引发问题 序列化实现:需序列化类实现Serializable接口该接口没需实现方法implements Serializable标注该象序列化然输出流(FileOutputStream)构造ObjectOutputStream(象流)象接着ObjectOutputStream象writeObject(Object obj)方法参数obj象写出(保存状态)恢复话输入流
92java中种类型流?JDK种类型流提供抽象类供继承请说出分类?根底 答:字节流字符流字节流继承InputStreamOutputStream字符流继承ReaderWriterjavaio包中许流提高性方便
93文件目录〔IO〕操作: 1)列出某目录文件? 2)列出某目录子目录? 3)判断文件目录否存? 4)读写文件?根底 答:1)例代码 File file new File(e\\总结) File[] files filelistFiles() for(int i0 i第 22 页 57 页
byte[] bs new byte[100] while(true){ int len finread(bs) if(len < 0) break Systemoutprint(new String(bs0len)) } finclose() 写文件 FileWriter fw new FileWriter(e\\testtxt) fwwrite(hello world + SystemgetProperty(lineseparator)) fwwrite(北京) fwclose()
94写方法输入文件名字符串统计字符串文件中出现次数根底 答:代码: public int countWords(String file String find) throws Exception { int count 0 Reader in new FileReader(file) int c while ((c inread()) 1) { while (c findcharAt(0)) { for (int i 1 i < findlength() i++) { c inread() if (c findcharAt(i)) break if (i findlength() 1) count++ } } } return count }
95Java 通信编程编程题(问答)JAVA SOCKET编程读效劳器字符写入显示?根底 答:Server端程序 package test import javanet* import javaio* public class Server{ private ServerSocket ss private Socket socket private BufferedReader in private PrintWriter out public Server(){ try {
第 23 页 57 页
ssnew ServerSocket(10000) while(true){ socket ssaccept() String RemoteIP socketgetInetAddress()getHostAddress() String RemotePort +socketgetLocalPort() Systemoutprintln(A client come inIP + RemoteIP+RemotePort) in new BufferedReader(new InputStreamReader(socketgetInputStream())) String line inreadLine() Systemoutprintln(Cleint send is + line) out new PrintWriter(socketgetOutputStream()true) outprintln(Your Message Received) outclose() inclose() socketclose() } }catch (IOException e){ outprintln(wrong) } } public static void main(String[] args){ new Server() } } Client端程序 package test import javaio* import javanet* public class Client { Socket socket BufferedReader in PrintWriter out public Client(){ try { Systemoutprintln(Try to Connect to 12700110000) socket new Socket(12700110000) Systemoutprintln(The Server Connected) Systemoutprintln(Please enter some Character) BufferedReader line new BufferedReader(new InputStreamReader(Systemin)) out new PrintWriter(socketgetOutputStream()true)
第 24 页 57 页
outprintln(linereadLine()) in new BufferedReader( new InputStreamReader(socketgetInputStream())) Systemoutprintln(inreadLine()) outclose() inclose() socketclose() }catch(IOException e){ outprintln(Wrong) } } public static void main(String[] args) { new Client() } }
二OOADUML局部:〔6题:根底2道中等难度4道〕
96UML什?常种图?根底 答:UML标准建模语言常图包括:例图静态图(包括类图象图包图)行图交互图(序图合作图)实现图
97编程题 写Singleton出根底 答:Singleton模式作保证Java应程序中类Class实例存举例:定义类构造函数privatestaticprivate该类变量类初始化时实例话通publicgetInstance方法获取引继调中方法 第种形式 public class Singleton { private Singleton(){} private static Singleton instance new Singleton() public static Singleton getInstance(){ return instance } } 第二种形式 public class Singleton { private static Singleton instance null public static synchronized Singleton getInstance(){ if (instancenull) instance=new Singleton() return instance } }
第 25 页 57 页
形式 定义类构造函数private方法static般认第种形式更加安
98说说熟悉听说j2ee中种常模式设计模式法中等难度 答:Session Facade Pattern:SessionBean访问EntityBean Message Facade Pattern:实现异步调 EJB Command Pattern:Command JavaBeans取代SessionBean实现轻量级访问 Data Transfer Object Factory:通DTO Factory简化EntityBean数提供特性 Generic Attribute Access:通AttibuteAccess接口简化EntityBean数提供特性 Business Interface:通远程〔〕接口Bean类实现相接口标准业务逻辑致性 EJB架构设计坏直接影响系统性扩展性维护性组件重性开发效率工程越复杂工程队伍越庞越表达良设计重性
99Java中常设计模式?说明工厂模式?中等难度 答:Java中23种设计模式:Factory〔工厂模式〕Builder〔建造模式〕 Factory Method〔工厂方法模式〕Prototype〔原始模型模式〕Singleton〔单例模式〕 Facade〔门面模式〕Adapter〔适配器模式〕 Bridge〔桥梁模式〕 Composite〔合成模式〕Decorator〔装饰模式〕 Flyweight〔享元模式〕 Proxy〔代理模式〕Command〔命令模式〕 Interpreter〔解释器模式〕 Visitor〔访问者模式〕Iterator〔迭代子模式〕 Mediator〔调停者模式〕 Memento〔备忘录模式〕Observer〔观察者模式〕State〔状态模式〕Strategy〔策略模式〕Template Method〔模板方法模式〕 Chain Of Responsibleity〔责链模式〕 工厂模式:工厂模式种常模式根工厂模式实现类根提供数生成组类中某类实例通常组类公抽象父类实现相方法方法针数进行操作首先需定义基类该类子类通方法实现基类中方法然需定义工厂类工厂类根条件生成子类实例子类实例开发员调基类中方法必考虑底返回子类实例
100开发中设计模式什场合 中等难度 答:模式描述环境中断出现问题然描述该问题解决方案核心通种方式数次已解决方案需重复相工作MVC设计模式开发JSPServlet者J2EE相关应简单工厂模式等
101软件开发中迭代含义理解中等难度 答:软件开发中开发阶段序执行应该行执行迭代意思样开发中需求变化员变动更适应
第 26 页 57 页
三XML局部:〔4题:根底1道中等难度1道较难2道〕
102XML文档定义种形式?间质区?解析XML文档种方式?根底 答:1〕两种形式:dtdschema 2〕质区:schema身xmlXML解析器解析(DTD开展schema根目) 3〕解析方式:DOMSAXSTAX等: DOM处理型文件时性降非常厉害问题DOM树结构造成种结构占存较DOM必须解析文件前整文档装入存适合XML机访问 SAXDOMSAX事件驱动型XML解析方式序读取XML文件需次全部装载整文件遇文件开头文档结束者标签开头标签结束时会触发事件户通回调事件中写入处理代码处理XML文件适合XML序访问 STAXStreaming API for XML (StAX)
103工程中xml技术方面实现 中等难度 答数存贮信息配置两方面做数交换台时数源数组装成XML文件然XML文件压缩包加密通网络传送接收者接收解密解压缩XML文件中复原相关信息进行处理做软件配置时利XML方便进行软件种配置参数存贮XML文件中
104jdom解析xml文件时解决中文问题解析 较难 答:代码编码方式加解决 package test import javaio* public class DOMTest{ private String inFile c\peoplexml private String outFile c\peoplexml public static void main(String args[]){ new DOMTest() } public DOMTest(){ try{ javaxxmlparsersDocumentBuilder builder javaxxmlparsersDocumentBuilderFactory newInstance()newDocumentBuilder() orgw3cdomDocument doc buildernewDocument() orgw3cdomElement root doccreateElement(老师) orgw3cdomElement wang doccreateElement(王) orgw3cdomElement liu doccreateElement(刘) wangappendChild(doccreateTextNode(王老师)) rootappendChild(wang)
第 27 页 57 页
docappendChild(root) javaxxmltransformTransformer transformer javaxxmltransformTransformerFactory newInstance()newTransformer() transformersetOutputProperty( javaxxmltransformOutputKeysENCODINGgb2312) transformersetOutputProperty( javaxxmltransformOutputKeysINDENT yes) transformertransform(new javaxxmltransformdomDOMSource(doc) new javaxxmltransformstreamStreamResult(outFile)) }catch (Exception e){ Systemoutprintln (egetMessage()) } } }
105编程JAVA解析XML方式较难 答:SAX方式解析XMLXML文件: 王明 信息学院 6258113 男1955年生博士95年调入海南学 事件回调类SAXHandlerjava : import javaio* import javautilHashtable import orgxmlsax* public class SAXHandler extends HandlerBase{ private Hashtable table new Hashtable() private String currentElement null private String currentValue null public void setTable(Hashtable table){ thistable table } public Hashtable getTable(){ return table } public void startElement(String tag AttributeList attrs) throws SAXException{ currentElement tag }
第 28 页 57 页
public void characters(char[] ch int start int length) throws SAXException{ currentValue new String(ch start length) } public void endElement(String name) throws SAXException{ if (currentElementequals(name)) tableput(currentElement currentValue) } } JSP容显示源码SaxXmljsp剖析XML文件peoplexml <@ page errorPageErrPagejsp contentTypetexthtmlcharsetGB2312 > <@ page importjavaio* > <@ page importjavautilHashtable > <@ page importorgw3cdom* > <@ page importorgxmlsax* > <@ page importjavaxxmlparsersSAXParserFactory > <@ page importjavaxxmlparsersSAXParser > <@ page importSAXHandler > < File file new File(c\peoplexml) FileReader reader new FileReader(file) Parser parser SAXParserFactory spf SAXParserFactorynewInstance() SAXParser sp spfnewSAXParser() SAXHandler handler new SAXHandler() spparse(new InputSource(reader) handler) Hashtable hashTable handlergetTable() outprintln(
面试题集分十局部: Core Java: 1 — 95题 1 — 24页 根底语法: 1 — 61题 1 — 13页 异常: 62 — 69题 13 — 15页 集合: 70 — 80题 15 — 18页 线程: 81 — 90题 18 — 21页 IO & Socket: 91 — 95题 21 — 24页 二OOAD & UML: 96 — 101题 24 — 25页 三XML: 102 — 105题 26 — 29页 四SQL: 106 — 109题 29 — 31页 五JDBC & Hibernate: 110 — 121题 31 — 35页 六Web: 122 — 161题 35 — 44页 七EJB & Spring: 162 — 179题 44 — 47页 八数结构 & 算法 & 计算机根底: 180 — 187题 47 — 51页 九C++: 188 — 201题 51 — 55页 十Weblogic(附加局部) 1 —— 13题 55 — 57页
CoreJava局部:〔95题:根底91道中等难度4道〕
根底语法局部:〔61题:根底60道中等难度1道〕
1面象特征方面 根底 答:面象特征方面: 1)抽象:抽象忽略题中前目标关方面便更充分注意前目标关方面抽象算解全部问题选择中局部暂时局部细节抽象包括两方面程抽象二数抽象 2)继承:继承种联结类层次模型允许鼓励类重提供种明确表述性方法象新类现类中派生程称类继承新类继承原始类特性新类称原始类派生类〔子类〕原始类称新类基类〔父类〕派生类基类里继承方法实例变量类修改增加新方法更适合特殊需 3)封装:封装程数包围起数访问通已定义界面面象计算始根概念现实世界描绘成系列完全治封装象象通受保护接口访问象 4)态性:态性指允许类象消息作出响应态性包括参数化态性包含态性态性语言具灵活抽象行享代码享优势解决应程序函数名问题
2作域publicprivateprotected写时区?根底 答:区: 作域 前类 包 子孙类 public √ √ √ √
第 2 页 57 页
protected √ √ √ × default √ √ × × private √ × × × 写时默认default
3String根数类型 根底 答:
4float型float f34否正确 根底 答正确精度准确应该强制类型转换示:float f(float)34
5语句float f13编译否通?根底 答应该强制类型转换示:float f(float)13
6short s1 1 s1 s1 + 1什错 short s1 1 s1 + 1什错 根底 答:short s1 1 s1 s1 + 1s1+1运算结果int型需强制转换类型 short s1 1 s1 + 1正确编译动类型提升
7Java没goto 根底 答:gotojava中保存字现没java中
8int Integer 什区 根底 答:Java 提供两种类型:引类型原始类型〔置类型〕 intjava原始数类型Integerjavaint提供封装类 Java原始类型提供封装类: 原始类型 booleancharbyteshortintlongfloatdouble 封装类型:BooleanCharacterByteShortIntegerLongFloatDouble 引类型原始类型行完全具语义引类型原始类型具特征法包括:速度问题种类型种类型数结构存储引类型原始类型作某类实例数时指定缺省值象引实例变量缺省值 null原始类型实例变量缺省值类型关
9&&&区?根底 答:&位运算符表示位运算&&逻辑运算符表示逻辑〔and〕
10简述逻辑操作(&|^)条件操作(&&||)区?根底 答:区两点:a条件操作操作布尔型逻辑操作仅操作布尔型操作数值型b逻辑操作会产生短路
11heapstack什区?根底 答:栈种线形集合添加删元素操作应段完成栈进先出方式进行处理堆栈组成元素
第 3 页 57 页
12Mathround(115) 等少 Mathround(115)等少 根底 答:Mathround(115)12 Mathround(115)11 round方法返回参数接长整数参数加12求floor
13swtich否作byte否作long否作String 根底 答:switch〔expr1〕中expr1整数表达式传递 switch case 语句参数应该 int short char 者 bytelongstring 作swtich
14编程题 效率方法算出28等於 根底 答: 2 << 3
15没length()方法 String没length()方法?根底 答:数组没length()方法length属性Stringlength()方法
16JAVA中跳出前重嵌套循环?根底 答:外层循环前加label标识然breaklabel方法跳出重循环
17构造器Constructor否override 根底 答:构造器Constructor继承重写Overriding重载Overloading
18两象值相(xequals(y) true)hash code句话 根底 答:相hash code
19否继承String类 根底 答:String类final类继承
20二条语句返回值true: A:beijing〞beijing〞 B:beijing〞equalsIgnoreCase〔new String〔beijing〞〕〕根底 答:A B
21象作参数传递方法方法改变象属性返回变化结果里底值传递引传递 根底 答:值传递Java 编程语言值传递参数象实例作参数传递方法中时参数值该象引象容调方法中改变象引永远会改变
22web应开发程中常遇输出某种编码字符iso88591等输出某种编码字符串?根底 答:public String translate(String str){
第 4 页 57 页
String tempStr try{ tempStr new String(strgetBytes(ISO88591) GBK) tempStr tempStrtrim() }catch (Exception e){ Systemerrprintln(egetMessage()) } return tempStr }
23String StringBuffer区 根底 答:JAVA台提供两类:StringStringBuffer储存操作字符串包含字符字符数String类提供数值改变字符串StringBuffer类提供字符串进行修改知道字符数改变时候StringBuffer典型StringBuffers动态构造字符数
24String StringBuffer StringBuilder区根底 答:String长度变 StringBuffer长度变果字符串中容常进行操作特容修改时StringBuffer果需StringStringBuffertoString()方法线程安 StringBuilder JDK 5 开始StringBuffer该类补充单线程等价类通常应该优先 StringBuilder 类支持相操作执行步速度更快
25OverloadOverride区Overloaded方法否改变返回值类型 根底 答:方法重写Overriding重载OverloadingJava态性表现重写Overriding父类子类间态性种表现重载Overloading类中态性种表现果子类中定义某方法父类相名称参数说该方法重写 (Overriding)子类象方法时调子类中定义言父类中定义屏蔽〞果类中定义名方法参数数参数类型称方法重载(Overloading)Overloaded方法改变返回值类型
26定义类A类B:根底
class A {
int a1
double d20
void show(){
Systemoutprintln(Class A a+a +\td+d)
}
}
class B extends A{
第 5 页 57 页
float a30f
String dJava program
void show(){
supershow( )
Systemoutprintln(Class B a+a +\td+d)
}
}
(1) 假设应程序main方法中语句:
A anew A()
ashow()
输出结果?
(2) 假设应程序main方法中定义类B象b:
A bnew B()
bshow()
输出结果?
答:输出结果: 1〕Class A a1 d20 2〕Class A a1 d20
Class B a30 dJava program
27描述JVM加载class文件原理机制 根底 答:JVM中类装载ClassLoader子类实现Java ClassLoader 重Java运行时系统组件负责运行时查找装入类文件类
28char型变量中存贮中文汉字什 根底 答:够定义成中文java中unicode编码char占16字节放中文没问题
29abstract classinterface什区 根底 答:声明方法存实现类做抽象类〔abstract class〕创立表达某根行类该类声明方法该类中实现该类情况创立abstract 类实例然创立变量类型抽象类指具体子类实例抽象构造函数抽象静态方法Abstract 类子类父类中抽象方法提供实现否抽象类取代子类中实现该方法知道行类类中实现方法接口〔interface〕抽象类变体新型继承性通实现样接口获接口中方法抽象成员变量public static final类实现接口类实现特殊接口时定义〔程序体予〕种接口方法然实现该接口类象调接口方法抽象类允许接口名作引变量类型通常动态联编生效引转换接口类型接口类型转换instanceof 运算符决定某象类否实现接口
第 6 页 57 页
30Static Nested Class Inner Class?根底 答:Static Nested Class声明静态〔static〕部类赖外部类实例实例化通常部类需外部类实例化实例化
31java中会存存泄漏请简单描述根底 答:会存达象象GC回收导致消耗存资源
32abstractmethod否时static否时native否时synchronized 根底 答:
33静态变量实例变量区?根底 答:静态变量称类变量全类赖某象通类名直接访问实例变量必须存某实例通象访问
34否static方法部发出非static方法调?根底 答:果中包含象method()保证象初始化
35写clone()方法时通常行代码什?根底 答:Clone 缺省行:superclone()负责产生正确空间逐位复制
36GC什 什GC 根底 答:GC垃圾收集意思〔Gabage Collection〕存处理编程员容易出现问题方忘记者错误存回收会导致程序系统稳定甚崩溃Java提供GC功动监测象否超作域达动回收存目Java语言没提供释放已分配存显示操作方法 Java 程序员担忧存理垃圾收集器会动进行理请求垃圾收集调面方法:Systemgc() RuntimegetRuntime()gc()
37垃圾回收优点原理考虑2种回收机制根底 答:Java语言中显著特点引入垃圾回收机制c++程序员头疼存理问题迎刃解Java程序员编写程序时候需考虑存理垃圾回收机制Java中象作域〞概念象引作域〞垃圾回收效防止存泄露效存垃圾回收器通常作单独低级线程运行预知情况存堆中已死亡者长时间没象进行清楚回收程序员实时调垃圾回收器某象象进行垃圾回收回收机制分代复制垃圾回收标记垃圾回收增量垃圾回收
38垃圾回收器根原理什?垃圾回收器马回收存?什方法动通知虚拟机进行垃圾回收?根底 答:GC说程序员创立象时GC开始监控象址情况通常GC采图方式记录理堆(heap)中象通种方式确定象达象达GC确定
第 7 页 57 页
象达时GC责回收存空间程序员手动执行Systemgc()通知GC运行Java语言标准保证GC定会执行
39String snew String(xyz〞)创立String Object 根底 答:两象xyx指xyx引象s
40接口否继承接口 抽象类否实现(implements)接口 抽象类否继承实体类(concrete class) 根底 答:接口继承接口抽象类实现(implements)接口抽象类继承实体类前提实体类必须明确构造函数
41Java接口C++虚类相处根底 答:Java支持继承某类象分类象里面方法属性现单继承机制满足求继承相接口更高灵活性接口中没实现代码类实现接口该类实现接口里面方法属性接口里面属性默认状态面public static方法默认情况public类实现接口
42java〞源文件中否包含类〔部类〕?什限制?根底 答:必须类名文件名相
43说出常类包接口请举5根底 答:常类:BufferedReader BufferedWriter FileReader FileWirter String Integer 常包:javalang javaawt javaio javautil javasql 常接口:Remote List Map Document NodeList
44Anonymous Inner Class (匿名部类) 否extends(继承)类?否implements(实现)interface(接口) 根底 答:继承类实现接口swing编程中常方式
45部类引包含类成员?没什限制?根底 答:部类象访问创立外部类象容
46java中实现态机制什?根底 答:方法覆盖Overriding重载Overloadingjava态性表现覆盖Overriding父类子类间态性种表现重载Overloading类中态性种表现
47java中类声明final类型表示什意思?根底 答:表示该类继承顶级类
48面类继承 根底 1〕javalangThread (T)
第 8 页 57 页
2〕javalangNumber (T) 3〕javalangDouble (F) 4〕javalangMath (F) 5〕javalangVoid (F) 6〕javalangClass (F) 7〕javalangClassLoader (T) 答:127继承
49指出面程序运行结果 根底 class A{ static{ Systemoutprint(1) } public A(){ Systemoutprint(2) } } class B extends A{ static{ Systemoutprint(a) } public B(){ Systemoutprint(b) } } public class Hello{ public static void main(String[] ars){ A ab new B() 执行处结果 1a2b ab new B() 执行处结果 1a2b2b } } 答:输出结果1a2b2b类static 代码段作类首次加载(虚拟机加载)执行代码类加载首先执行基类构造执行身构造
50继承时候类执行序问题般选择题问会印出什 根底 父类: package test public class FatherClass { public FatherClass() { Systemoutprintln(FatherClass Create) } } 子类 package test import testFatherClass
第 9 页 57 页
public class ChildClass extends FatherClass { public ChildClass() { Systemoutprintln(ChildClass Create) } public static void main(String[] args) { FatherClass fc new FatherClass() ChildClass cc new ChildClass() } } 答:输出结果: FatherClass Create FatherClass Create ChildClass Create
51部类实现方式 根底 答:例代码: package test public class OuterClass { private class InterClass { public InterClass() { Systemoutprintln(InterClass Create) } } public OuterClass() { InterClass ic new InterClass() Systemoutprintln(OuterClass Create) } public static void main(String[] args) { OuterClass oc new OuterClass() } } 输出结果 InterClass Create OuterClass Create
52关部类: 根底 public class OuterClass { private double d1 10 insert code here } You need to insert an inner class declaration at line 3Which two inner class declarations are valid(Choose two) A class InnerOne{ public static double methoda() {return d1} }
第 10 页 57 页
B public class InnerOne{ static double methoda() {return d1} } C private class InnerOne{ double methoda() {return d1} } D static class InnerOne{ protected double methoda() {return d1} } E abstract class InnerOne{ public abstract double methoda() } 答:答案CE说明: 1〕静态部类静态成员非静态部类静态成员 AB 错 2〕静态部类非静态成员访问外部类静态变量访问外部类非静态变量 D 错 3〕非静态部类非静态成员访问外部类非静态变量 C 正确
53数类型间转换 1)数值型字符转换数字? 2)数字转换字符? 3)取数点前两位四舍五入 根底 答:1)调数值类型相应包装类中方法parse***(String)valueOf(String) 返回相应根类型包装类型数值 2)数字空字符串相加获应字符串外根类型 数字调String类中valueOf(…)方法返回相应字符串包装类型数字调toString()方法获相应字符串 3)该数字构造象利round()方法 进行四舍五入保存数点两位转换字符串截取两位
54字符串操作:实现字符串反转换?根底 答:字符串构造StringBuffer象然调StringBuffer中reverse方法实现字符串反转调replace方法实现字符串换
55编码转换:样GB2312编码字符串转换ISO88591编码字符串?根底 答:例代码 String s1 String s2 new String(s1getBytes(GB2312) ISO88591)
56写函数求输入字符串字符长度该字符串进行分隔 根底 答:函数代码: public String[] split(String str int chars){
第 11 页 57 页
int n (strlength()+ chars 1)chars String ret[] new String[n] for(int i0 i
58日期时间: 1)取年月日时分秒? 2)取1970年现毫秒数? 3)取某日期月天? 4)格式化日期?根底 答:1)创立实例(CalendargetInstance())调get() 方法传入参数获参数应值: calendarget(CalendarYEAR)获年 2)方法均获该毫秒数
第 12 页 57 页
CalendargetInstance()getTimeInMillis() SystemcurrentTimeMillis() 3)例代码 Calendar time CalendargetInstance() timeset(CalendarDAY_OF_MONTH timegetActualMaximum(CalendarDAY_OF_MONTH)) 4)利ataFormat类中format()方法日期格式化
59Java编程印昨天前时刻根底 答:public class YesterdayCurrent{ public static void main(String[] args){ Calendar cal CalendargetInstance() caladd(CalendarDATE 1) Systemoutprintln(calgetTime()) } }
60javajavasciprt区根底 答:JavaScriptJava两公司开发两产品JavaSUN公司推出新代面象程序设计语言特适合Internet应程序开发JavaScriptNetscape公司产品目扩展Netscape Navigator功开发种嵌入Web页面中基象事件驱动解释性语言 前身Live ScriptJava前身Oak语言面两种语言间异作拟: 1〕基象面象: Java种真正面象语言开发简单程序必须设计象 JavaScript种脚语言制作网络关户交互作复杂软件种基象〔Object Based〕事件驱动〔Event Driver〕编程语言身提供非常丰富部象供设计员 2〕解释编译: Java源代码执行前必须编译 JavaScript种解释性编程语言源代码需编译浏览器解释执行 3〕强类型变量类型弱变量: Java采强类型变量检查变量编译前必须作声明 JavaScript中变量声明采弱类型变量前需作声明解释器运行时检查数类型 4〕代码格式样
61什时候assert?中等难度 答:assertion(断言)软件开发中种常调试方式开发语言中支持种机制般说assertion保证程序根关键正确性assertion检查通常开发测试时开启提高性软件发布assertion检查通常关闭实现中断言包含布尔表达式语句执行语句时假定该表达式 true果表达式计算 false系统
第 13 页 57 页
会报告 Assertionerror 断言调试目: assert(a > 0) throws an Assertionerror if a < 0 断言两种形式: assert Expression1 assert Expression1 Expression2 Expression1 应该总产生布尔值 Expression2 出值意表达式值生成显示更调试信息 String 消息 断言默认情况禁编译时启断言需 source 14 标记: javac source 14 Testjava 运行时启断言 enableassertions 者 ea 标记 运行时选择禁断言 da 者 disableassertions 标记 系统类中启断言 esa 者 dsa 标记包根底启者禁断言预计正常情况会达位置放置断言断言验证传递私方法参数断言应该验证传递公方法参数否启断言公方法必须检查参数公方法中非公方法中利断言测试置条件外断言应该方式改变程序状态
异常局部:〔8题:根底8道〕
62Java中异常处理机制简单原理应?根底 答:JAVA程序违反JAVA语义规时JAVA虚拟机会发生错误表示异常违反语义规包括2种情况种JAVA类库置语义检查例数组标越界会引发IndexOutOfBoundsException访问null象时会引发NullPointerException种情况JAVA允许程序员扩展种语义检查程序员创立异常选择时throw关键字引发异常异常子类
63errorexception什区 根底 答:error表示系统级错误程序必处理异常恢复困难情况种严重问题方存溢出指程序处理样情况 exception表示需捕捉者需程序进行处理异常种设计实现问题说表示果程序运行正常会发生情况
64try {}里return语句紧tryfinally {}里code会会执行什时候执行return前 根底 答:会执行return前执行
65JAVA语言进行异常处理关键字:throwsthrowtrycatchfinally分代表什意义?try块中抛出异常?根底 答:Java通面象方法进行异常处理种异常进行分类提供良接口Java中异常象Throwable类子类实例方法出现异常便抛出异常象该象中包含
第 14 页 57 页
异常信息调象方法捕获异常进行处理Java异常处理通5关键词实现:trycatchthrowthrowsfinally般情况try执行段程序果出现异常系统会抛出〔throws〕异常时候通类型捕捉〔catch〕〔finally〕缺省处理器处理 try指定块预防异常〞程序 catch子句紧try块面指定想捕捉异常〞类型 throw语句明确抛出异常〞 throws标明成员函数抛出种异常〞 Finally确保段代码发生什异常〞执行段代码 成员函数调外面写try语句成员函数部写try语句保护代码遇try语句异常〞框架放堆栈面直try语句完成果级try语句没某种异常〞进行处理堆栈会展开直遇处理种异常〞try语句
66运行时异常般异常异?根底 答:异常表示程序运行程中出现非正常状态运行时异常表示虚拟机通常操作中遇异常种常见运行错误java编译器求方法必须声明抛出发生非运行时异常求必须声明抛出未捕获运行时异常
67常见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
68final finally finalize区 根底 答:final:修饰符〔关键字〕果类声明final意味着派生出新子类作父类继承类声明 abstract声明final变量方法声明final保证中改变声明final变量必须声明时定初值引中读取修改声明final方法样重载 finally:异常处理时提供 finally 块执行操作果抛出异常相匹配 catch 子句会执行然控制会进入 finally 块〔果话〕 finalize:方法名Java 技术允许 finalize() 方法垃圾收集器象存中出前做必清理工作方法垃圾收集器确定
第 15 页 57 页
象没引时象调 Object 类中定义类继承子类覆盖 finalize() 方法整理系统资源者执行清理工作finalize() 方法垃圾收集器删象前象调
69类Example A继承 Exception类 ExampleB继承Example A根底 代码片断: try{ throw new ExampleB(b〞) }catch〔ExampleA e〕〔ExampleA〞〕 }catch〔Exception e〕〔Exception〞〕 } 输出容应该: A:ExampleA B:Exception C:b D: 答:输出A
集合局部:〔11题:根底11道〕
70介绍JAVA中Collection FrameWork(写数结构)根底 答:Collection FrameWork:
Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection根集合接口Collection代表组ObjectCollection元素〔Elements〕Map提供keyvalue映射
71ListSetMap否继承Collection接口?根底 答:ListSetMap
72知道集合类?方法?根底 答:常集合类 List MapList 具体实现包括 ArrayList Vector变列表拟适合构建存储操作类型象元素列表 List 适数值索引访问元素情形 Map 提供更通元素存储方法 Map 集合类存储元素〔称作键〞值〞〕中键映射值
第 16 页 57 页
73说出ArrayListVector LinkedList存储性特性?根底 答:ArrayListVector数组方式存储数数组元素数实际存储数便增加插入元素允许直接序号索引元素插入元素涉数组元素移动等存操作索引数快插入数慢Vectorsynchronized方法〔线程安〕通常性较ArrayList差LinkedList双链表实现存储序号索引数需进行前遍历插入数时需记录项前项插入速度较快
74Collection Collections区?根底 答:Collectionjavautil接口种集合父接口继承接口Set ListCollectionsjavautil类针集合帮助类提供系列静态方法实现种集合搜索排序线程安化等操作
75HashMapHashtable区 根底 答:二者实现Map接口惟键映射特定值区: 1)HashMap没排序允许 null 键 null 值Hashtable允许 2)HashMapHashtablecontains方法掉改成containsvaluecontainsKeycontains方法容易引起误解 3)Hashtable继承Dictionary类HashMapJava12引进Map接口实现 4)Hashtable方法SynchronizeHashMap线程访问Hashtable时需方法实现步HashMap 必须提供外步 HashtableHashMap采hashrehash算法致样性会差异
76ArraylistVector区?根底 答:ArrayListVector二方面说:
1〕步性:Vector线程安〔步〕ArrayList线程序安 2〕数增长:需增长时Vector默认增长倍ArrayList半
77ListMapSet三接口存取元素时什特点?根底 答:List 特定次序持元素重复元素Set 法拥重复元素部排序Map 保存keyvalue值value值
78Set里元素重复什方法区分重复否呢 equals() 区 根底 答:Set里元素重复equals ()方法区分重复否覆盖equals()方法判断象容否相〞〞判断址否相等决定引值否指象
79程序出便10数序号110序输出输出相应序号根底 答:代码: package test import javautilArrayList
第 17 页 57 页
import javautilCollections import javautilIterator import javautilList import javautilRandom public class RandomSort { public static void printRandomBySort() { Random random new Random() 创立机数生成器 List list new ArrayList() 生成10机数放集合list中 for (int i 0 i < 10 i++) { listadd(randomnextInt(1000)) } Collectionssort(list) 集合中元素进行排序 Iterator it listiterator() int count 0 while (ithasNext()) { 序输出排序集合中元素tln(++count + + itnext()) } } public static void main(String[] args) { printRandomBySort() } }
80JAVA实现种排序JAVA类实现序列化方法? COLLECTION框架中实现拟实现什样接口?根底 答:插入法进行排序代码: package test import javautil* class InsertSort { ArrayList al public InsertSort(int numint mod) { al new ArrayList(num) Random rand new Random() Systemoutprintln(The ArrayList Sort Before) for (int i0i
tempInt (Integer)alremove(i) if(tempIntintValue() > ((Integer)alget(MaxSize1))intValue()){ aladd(MaxSizetempInt) MaxSize++ Systemoutprintln(altoString()) }else{ for (int j0j
81sleep() wait() 什区 根底 答:sleep线程类〔Thread〕方法导致线程暂停执行指定时间执行时机线程监控状态然保持时会动恢复调sleep会释放象锁waitObject类方法象调wait方法导致线程放弃象锁进入等象等锁定池针象发出notify方法〔notifyAll〕线程进入象锁定池准备获象锁进入运行状态
82线程进入象synchronized方法线程否进入象方法 根底 答:线程访问该象非步方法步方法进入
第 19 页 57 页
83请说出知道线程步方法根底 答:wait()线程处等状态释放持象lock sleep()正运行线程处睡眠状态静态方法调方法捕捉InterruptedException异常 notify()唤醒处等状态线程注意调方法时候确切唤醒某等状态线程JVM确定唤醒线程优先级 notityAll()唤醒处入等状态线程注意唤醒线程象锁竞争
84线程种实现方法什步种实现方法什 根底 答:线程两种实现方法分继承Thread类实现Runnable接口 步实现方面两种分synchronizedwaitnotify
85步异步异什情况分?举例说明根底 答:果数线程间享例正写数线程读者正读数已线程写数享数必须进行步存取应程序象调需花费长时间执行方法希程序等方法返回时应该异步编程情况采异步途径更效率
86启动线程run()start()根底 答:启动线程调start()方法线程代表虚拟处理机处运行状态意味着JVM调度执行意味着线程会立运行run()方法产生必须退出标志停止线程
87 线程根概念线程根状态状态间关系?根底 答:线程指程序执行程中够执行程序代码执行单位程序少线程程序身 Java中线程四种状态分:运行绪挂起结束
88简述synchronized异 ?中等难度 答:相点:Lock完成synchronized实现功 点:Locksynchronized更精确线程语义更性synchronized会动释放锁Lock定求程序员手工释放必须finally句中释放
89java中种方法实现线程?什关键字修饰步方法 stop()suspend()方法推荐?中等难度 答:两种实现方法分继承Thread类实现Runnable接口 synchronized关键字修饰步方法 反stop()安会解线程获取锁定果象处种连贯状态线程种状态检查修改结果难检查出真正问题
第 20 页 57 页
suspend()方法容易发生死锁调suspend()时候目标线程会停然持前获锁定时线程访问锁定资源非挂起〞线程恢复运行线程说果想恢复目标线程时试图锁定资源会造成死锁应该suspend()应Thread类中置入标志指出线程应该活动挂起假设标志指出线程应该挂起便wait()命进入等状态假设标志指出线程应恢复notify()重新启动线程
90设计4线程中两线程次j增加1两线程j次减少1写出程序中等难度 答:程序部类实现线程j增减时候没考虑序问题: public class TestThread { private int j public TestThread(int j) {thisj j} private synchronized void inc(){ j++ Systemoutprintln(j + Inc + ThreadcurrentThread()getName()) } private synchronized void dec(){ j Systemoutprintln(j + Dec + ThreadcurrentThread()getName()) } public void run() { (new Dec())start() new Thread(new Inc())start() (new Dec())start() new Thread(new Inc())start() } class Dec extends Thread { public void run() { for(int i0 i<100 i++){ dec() } } } class Inc implements Runnable { public void run() { for(int i0 i<100 i++){ inc() } } }
第 21 页 57 页
public static void main(String[] args) { (new TestThread(5))run() } }
IO流Socket局部:〔5题:根底5道〕
91什java序列化实现java序列化?根底 答:序列化种处理象流机制谓象流象容进行流化流化象进行读写操作流化象传输网络间序列化解决象流进行读写操作时引发问题 序列化实现:需序列化类实现Serializable接口该接口没需实现方法implements Serializable标注该象序列化然输出流(FileOutputStream)构造ObjectOutputStream(象流)象接着ObjectOutputStream象writeObject(Object obj)方法参数obj象写出(保存状态)恢复话输入流
92java中种类型流?JDK种类型流提供抽象类供继承请说出分类?根底 答:字节流字符流字节流继承InputStreamOutputStream字符流继承ReaderWriterjavaio包中许流提高性方便
93文件目录〔IO〕操作: 1)列出某目录文件? 2)列出某目录子目录? 3)判断文件目录否存? 4)读写文件?根底 答:1)例代码 File file new File(e\\总结) File[] files filelistFiles() for(int i0 i
byte[] bs new byte[100] while(true){ int len finread(bs) if(len < 0) break Systemoutprint(new String(bs0len)) } finclose() 写文件 FileWriter fw new FileWriter(e\\testtxt) fwwrite(hello world + SystemgetProperty(lineseparator)) fwwrite(北京) fwclose()
94写方法输入文件名字符串统计字符串文件中出现次数根底 答:代码: public int countWords(String file String find) throws Exception { int count 0 Reader in new FileReader(file) int c while ((c inread()) 1) { while (c findcharAt(0)) { for (int i 1 i < findlength() i++) { c inread() if (c findcharAt(i)) break if (i findlength() 1) count++ } } } return count }
95Java 通信编程编程题(问答)JAVA SOCKET编程读效劳器字符写入显示?根底 答:Server端程序 package test import javanet* import javaio* public class Server{ private ServerSocket ss private Socket socket private BufferedReader in private PrintWriter out public Server(){ try {
第 23 页 57 页
ssnew ServerSocket(10000) while(true){ socket ssaccept() String RemoteIP socketgetInetAddress()getHostAddress() String RemotePort +socketgetLocalPort() Systemoutprintln(A client come inIP + RemoteIP+RemotePort) in new BufferedReader(new InputStreamReader(socketgetInputStream())) String line inreadLine() Systemoutprintln(Cleint send is + line) out new PrintWriter(socketgetOutputStream()true) outprintln(Your Message Received) outclose() inclose() socketclose() } }catch (IOException e){ outprintln(wrong) } } public static void main(String[] args){ new Server() } } Client端程序 package test import javaio* import javanet* public class Client { Socket socket BufferedReader in PrintWriter out public Client(){ try { Systemoutprintln(Try to Connect to 12700110000) socket new Socket(12700110000) Systemoutprintln(The Server Connected) Systemoutprintln(Please enter some Character) BufferedReader line new BufferedReader(new InputStreamReader(Systemin)) out new PrintWriter(socketgetOutputStream()true)
第 24 页 57 页
outprintln(linereadLine()) in new BufferedReader( new InputStreamReader(socketgetInputStream())) Systemoutprintln(inreadLine()) outclose() inclose() socketclose() }catch(IOException e){ outprintln(Wrong) } } public static void main(String[] args) { new Client() } }
二OOADUML局部:〔6题:根底2道中等难度4道〕
96UML什?常种图?根底 答:UML标准建模语言常图包括:例图静态图(包括类图象图包图)行图交互图(序图合作图)实现图
97编程题 写Singleton出根底 答:Singleton模式作保证Java应程序中类Class实例存举例:定义类构造函数privatestaticprivate该类变量类初始化时实例话通publicgetInstance方法获取引继调中方法 第种形式 public class Singleton { private Singleton(){} private static Singleton instance new Singleton() public static Singleton getInstance(){ return instance } } 第二种形式 public class Singleton { private static Singleton instance null public static synchronized Singleton getInstance(){ if (instancenull) instance=new Singleton() return instance } }
第 25 页 57 页
形式 定义类构造函数private方法static般认第种形式更加安
98说说熟悉听说j2ee中种常模式设计模式法中等难度 答:Session Facade Pattern:SessionBean访问EntityBean Message Facade Pattern:实现异步调 EJB Command Pattern:Command JavaBeans取代SessionBean实现轻量级访问 Data Transfer Object Factory:通DTO Factory简化EntityBean数提供特性 Generic Attribute Access:通AttibuteAccess接口简化EntityBean数提供特性 Business Interface:通远程〔〕接口Bean类实现相接口标准业务逻辑致性 EJB架构设计坏直接影响系统性扩展性维护性组件重性开发效率工程越复杂工程队伍越庞越表达良设计重性
99Java中常设计模式?说明工厂模式?中等难度 答:Java中23种设计模式:Factory〔工厂模式〕Builder〔建造模式〕 Factory Method〔工厂方法模式〕Prototype〔原始模型模式〕Singleton〔单例模式〕 Facade〔门面模式〕Adapter〔适配器模式〕 Bridge〔桥梁模式〕 Composite〔合成模式〕Decorator〔装饰模式〕 Flyweight〔享元模式〕 Proxy〔代理模式〕Command〔命令模式〕 Interpreter〔解释器模式〕 Visitor〔访问者模式〕Iterator〔迭代子模式〕 Mediator〔调停者模式〕 Memento〔备忘录模式〕Observer〔观察者模式〕State〔状态模式〕Strategy〔策略模式〕Template Method〔模板方法模式〕 Chain Of Responsibleity〔责链模式〕 工厂模式:工厂模式种常模式根工厂模式实现类根提供数生成组类中某类实例通常组类公抽象父类实现相方法方法针数进行操作首先需定义基类该类子类通方法实现基类中方法然需定义工厂类工厂类根条件生成子类实例子类实例开发员调基类中方法必考虑底返回子类实例
100开发中设计模式什场合 中等难度 答:模式描述环境中断出现问题然描述该问题解决方案核心通种方式数次已解决方案需重复相工作MVC设计模式开发JSPServlet者J2EE相关应简单工厂模式等
101软件开发中迭代含义理解中等难度 答:软件开发中开发阶段序执行应该行执行迭代意思样开发中需求变化员变动更适应
第 26 页 57 页
三XML局部:〔4题:根底1道中等难度1道较难2道〕
102XML文档定义种形式?间质区?解析XML文档种方式?根底 答:1〕两种形式:dtdschema 2〕质区:schema身xmlXML解析器解析(DTD开展schema根目) 3〕解析方式:DOMSAXSTAX等: DOM处理型文件时性降非常厉害问题DOM树结构造成种结构占存较DOM必须解析文件前整文档装入存适合XML机访问 SAXDOMSAX事件驱动型XML解析方式序读取XML文件需次全部装载整文件遇文件开头文档结束者标签开头标签结束时会触发事件户通回调事件中写入处理代码处理XML文件适合XML序访问 STAXStreaming API for XML (StAX)
103工程中xml技术方面实现 中等难度 答数存贮信息配置两方面做数交换台时数源数组装成XML文件然XML文件压缩包加密通网络传送接收者接收解密解压缩XML文件中复原相关信息进行处理做软件配置时利XML方便进行软件种配置参数存贮XML文件中
104jdom解析xml文件时解决中文问题解析 较难 答:代码编码方式加解决 package test import javaio* public class DOMTest{ private String inFile c\peoplexml private String outFile c\peoplexml public static void main(String args[]){ new DOMTest() } public DOMTest(){ try{ javaxxmlparsersDocumentBuilder builder javaxxmlparsersDocumentBuilderFactory newInstance()newDocumentBuilder() orgw3cdomDocument doc buildernewDocument() orgw3cdomElement root doccreateElement(老师) orgw3cdomElement wang doccreateElement(王) orgw3cdomElement liu doccreateElement(刘) wangappendChild(doccreateTextNode(王老师)) rootappendChild(wang)
第 27 页 57 页
docappendChild(root) javaxxmltransformTransformer transformer javaxxmltransformTransformerFactory newInstance()newTransformer() transformersetOutputProperty( javaxxmltransformOutputKeysENCODINGgb2312) transformersetOutputProperty( javaxxmltransformOutputKeysINDENT yes) transformertransform(new javaxxmltransformdomDOMSource(doc) new javaxxmltransformstreamStreamResult(outFile)) }catch (Exception e){ Systemoutprintln (egetMessage()) } } }
105编程JAVA解析XML方式较难 答:SAX方式解析XMLXML文件:
第 28 页 57 页
public void characters(char[] ch int start int length) throws SAXException{ currentValue new String(ch start length) } public void endElement(String name) throws SAXException{ if (currentElementequals(name)) tableput(currentElement currentValue) } } JSP容显示源码SaxXmljsp