没有合适的资源?快使用搜索试试~ 我知道了~
Java面试题大全,涵盖了各个方面, 一、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 及其
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/release/download_crawler_static/3631786/bg1.jpg)
第1页共59 页
面试题集
面试题集共分为以下十部分:
一、CoreJava: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、作用域public,private,protected,以及不写时的区别?【基础】
答:区别如下:
作用域当前类同包子孙类其他
public√√√√
Edited by Foxit Reader
Copyright(C) by Foxit Software Company,2005-2006
For Evaluation Only.
![](https://csdnimg.cn/release/download_crawler_static/3631786/bg2.jpg)
第2页共59 页
protected√√√×
default√√××
private√×××
不写时默认为default。
3、String是最基本的数据类型吗?【基础】
答:不是。
4、float型floatf=3.4是否正确?【基础】
答:
不正确; 精度不准确
,
应该用强制类型转换, 如下所示:
floatf=(float)3.4
。
5、语句floatf=1.3;编译能否通过?【基础】
答:不能;应该用强制类型转换,如下所示:floatf=(float)1.3;。
6、shorts1=1;s1=s1+1;有什么错?
shorts1=1;s1+=1;有什么错?【基础】
答:shorts1=1;s1=s1+1;s1+1运算结果是int型,需要强制转换类型;
shorts1=1;s1+=1;可以正确编译,自动类型提升。
7、Java有没有goto?【基础】
答:goto是java中的保留字,现在没有在java中使用。
8、int和Integer有什么区别?【基础】
答:Java提供两种不同的类型:引用类型和原始类型(或内置类型);
int是java的原始数据类型,Integer是java为int提供的封装类。
Java为每个原始类型提供了封装类:
原始类型:boolean,char,byte,short,int,long,float,double
封装类型:
Boolean
,
Character
,
Byte
,
Short
,
Integer
,
Long
,
Float
,
Double
引用类型和原始类型的行为完全不同, 并且它们具有不同的语义。 引用类型和
原始类型具有不同的特征和用法,它们包括: 大小和速度问题, 这种类型以哪种
类型的数据结构存储, 当引用类型和原始类型用作某个类的实例数据时所指定的
缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与
它们的类型有关。
9、&和&&的区别?【基础】
答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。
10、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别?【基础】
答:区别主要有两点:a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作
布尔型,而且可以操作数值型b.逻辑操作不会产生短路。
11、heap和stack有什么区别?【基础】
答:栈是一种线形集合, 其添加和删除元素的操作应在同一段完成, 栈按照后进
先出的方式进行处理;堆是栈的一个组成元素。
Edited by Foxit Reader
Copyright(C) by Foxit Software Company,2005-2006
For Evaluation Only.
![](https://csdnimg.cn/release/download_crawler_static/3631786/bg3.jpg)
第3页共59 页
12、Math.round(11.5)等于多少?Math.round(-11.5)等于多少?【基础】
答:
Math.round(11.5)==12Math.round(-11.5)==-11round方法返回与参数
最接近的长整数,参数加1/2后求其floor。
13
、
swtich是否能作用在byte上, 是否能作用在long上, 是否能作用在String
上?【基础】
答:
switch
(expr1
)中,
expr1是一个整数表达式。 因此传递给switch和case
语句的参数应该是int、short、char或者byte。long,string都不能作用
于swtich。
14、编程题:用最有效率的方法算出2乘以8等於几?【基础】
答:2<<3。
15、有没有length()这个方法?String有没有length()这个方法?【基础】
答:数组没有length()这个方法,有length的属性。String有length()这个
方法。
16、在JAVA中,如何跳出当前的多重嵌套循环?【基础】
答: 在最外层循环前加label标识,然后用break:label方法即可跳出多重循环
。
17、构造器Constructor是否可被override?【基础】
答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重
载Overloading。
18、两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这
句话对不对?【基础】
答:不对,有相同的hashcode。
19、是否可以继承String类?【基础】
答:String类是final类,故不可以继承。
20、以下二条语句返回值为true的有:
A:“beijing”==“beijing”;
B:“beijing”.equalsIgnoreCase(newString(“beijing”
));
【基础】
答:
A
和B。
21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,
并可返回变化后的结果,那么这里到底是值传递还是引用传递?【基础】
答:是值传递。Java编程语言只有值传递参数。当一个对象实例作为一个参数
被传递到方法中时, 参数的值就是对该对象的引用。 对象的内容可以在被调用的
方法中改变,但对象的引用是永远不会改变的。
22、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1
等,如何输出一个某种编码的字符串?【基础】
答:publicStringtranslate(Stringstr){
Edited by Foxit Reader
Copyright(C) by Foxit Software Company,2005-2006
For Evaluation Only.
![](https://csdnimg.cn/release/download_crawler_static/3631786/bg4.jpg)
第4页共59 页
StringtempStr="";
try{
tempStr=newString(str.getBytes("ISO-8859-1"),"GBK");
tempStr=tempStr.trim();
}catch(Exceptione){
System.err.println(e.getMessage());
}
returntempStr;
}
23、String和StringBuffer的区别?【基础】
答:JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字
符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符
串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变
的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动
态构造字符数据。
24、String,StringBufferStringBuilder的区别
。 【基础】
答:String的长度是不可变的;
StringBuffer的长度是可变的,如果你对字符串中的内容经常进行操作,
特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使
用StringBuffer的toString()方法;线程安全;
StringBuilder是从JDK5开始,为StringBuffer该类补充了一个单个线
程使用的等价类;通常应该优先使用StringBuilder类,因为它支持所有相同
的操作,但由于它不执行同步,所以速度更快。
25
、
Overload和Override的区别。 Overloaded的方法是否可以改变返回值的类
型?【基础】
答: 方法的重写Overriding和重载Overloading是Java多态性的不同表现。 重
写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个
类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参
数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用
子类中的定义,对它而言,父类中的定义如同被“屏蔽
”
了。如果在一个类中定
义了多个同名的方法, 它们或有不同的参数个数或有不同的参数类型, 则称为方
法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
26、定义类A和类B
如下:
【基础】
classA{
inta=1;
doubled=2.0;
voidshow(){
System.out.println("ClassA:a="+a+"\td="+d);
}
}
classBextendsA{
Edited by Foxit Reader
Copyright(C) by Foxit Software Company,2005-2006
For Evaluation Only.
![](https://csdnimg.cn/release/download_crawler_static/3631786/bg5.jpg)
第5页共59 页
floata=3.0f;
Stringd="Javaprogram.";
voidshow(){
super.show();
System.out.println("ClassB:a="+a+"\td="+d);
}
}
(1)若在应用程序的main方法中有以下语句:
Aa=newA();
a.show();
则输出的结果如何?
(2)若在应用程序的main方法中定义类B的对象b:
Ab=newB();
b.show();
则输出的结果如何?
答:输出结果为:
1)Class A: a=1 d=2.0;
2)Class A: a=1 d=2.0
Class B: a=3.0 d=Java program。
27、描述一下JVM加载class文件的原理机制?【基础】
答:JVM中类的装载是由ClassLoader和它的子类来实现的,JavaClassLoader
是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。
28、char型变量中能不能存贮一个中文汉字?为什么?【基础】
答:能够定义成为一个中文的,因为java中以unicode编码,一个char占16
个字节,所以放一个中文是没问题的。
29、abstractclass和interface有什么区别?【基础】
答:声明方法的存在而不去实现它的类被叫做抽象类(abstractclass
),它
用
于要创建一个体现某些基本行为的类, 并为该类声明方法, 但不能在该类中实现
该类的情况。不能创建abstract类的实例。然而可以创建一个变量,其类型是
一个抽象类, 并让它指向具体子类的一个实例。 不能有抽象构造函数或抽象静态
方法。Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也
是抽象类为。取而代之, 在子类中实现该方法。 知道其行为的其它类可以在类中
实现这些方法。接口(interface)是抽象类的变体。新型多继承性可通过实现
这样的接口而获得。接口中的所有方法都是抽象的,所有成员变量都是public
staticfinal的。 一个类可以实现多个接口, 当类实现特殊接口时, 它定义 (即
将程序体给予)所有这种接口的方法。 然后, 它可以在实现了该接口的类的任何
对象上调用接口的方法。 由于有抽象类, 它允许使用接口名作为引用变量的类
型。
通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,
instanceof运算符可以用来决定某对象的类是否实现了接口。
Edited by Foxit Reader
Copyright(C) by Foxit Software Company,2005-2006
For Evaluation Only.
剩余58页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/292cb59305b54e389fda5c1da3916a20_kuailefeiniao.jpg!1)
kuailefeiniao
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)