JAVA面试宝典最全的总结.docx
- 文档编号:18585329
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:69
- 大小:54.74KB
JAVA面试宝典最全的总结.docx
《JAVA面试宝典最全的总结.docx》由会员分享,可在线阅读,更多相关《JAVA面试宝典最全的总结.docx(69页珍藏版)》请在冰点文库上搜索。
JAVA面试宝典最全的总结
第一章Java概述
笔试题
一、填空题
1.【基础题】Java是一种先编译后解释运行的语言。
二、选择题
三、名词解释
1.【基础题】J2SE:
Java2StandardEditionJava标准版
2.【基础题】J2EE:
Java2EnterpriseEditionJava企业版
3.【基础题】J2ME:
Java2MicroEditionJava微型版
4.【基础题】JDK:
JavaDevelopmentKitJava开发工具包
5.【基础题】JRE:
JavaRuntimeEnvironmentJava运行环境
四、问答题
1.【基础题】Java的优点有哪些(回答六个以上)?
1)简单(Simple)
2)安全(Secure)
3)可移植(Portable)
4)面向对象(Object-oriented)
5)健壮(Robust)
6)多线程(Multithreaded)
7)体系结构中立(Architecture-neutral)
8)解释执行(Interpreted)
9)高性能(Highperformance)
10)分布式(Distributed)
11)动态(Dynamic)
2.【基础题】假设JDK安装在d:
\java目录中。
写出JAVA环境变量的设置方法。
答:
JAVA_HOME=d:
\java
CLASSPATH=.;d:
\java\lib
PATH=d:
\java\bin
3.【中等题】GC是什么?
为什么要有GC?
答:
GC是垃圾收集的意思(GabageCollection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
4.【中等题】垃圾回收的优点和原理。
并考虑2种回收机制。
答:
Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。
由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。
垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。
垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。
回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
5.【提高题】heap和stack有什么区别。
答:
(stack)栈是一种线形集合,其添加和删除元素的操作应在同一段完成。
栈按照后进先出的方式进行处理。
(heap)堆是栈的一个组成元素
第二章基本词汇、数据类型、变量
笔试题
一、填空题
1.【基础题】Java中数据类型包括基本数据类型和引用类型。
二、选择题
1.【基础题】可作为Java标识符的是(A)
A.identifier
B.User.name
C.Not/ok
D.user-name
2.【基础题】以下选项中,合法的赋值语句是(D)
A.a==1;
B.++i;
C.a=a+1=5;
D.y=(int)I;
三、名词解释
四、问答题
1.【基础题】Java有没有goto?
答:
goto是java中的保留字,现在没有在java中使用。
2.【基础题】写出JAVA的基本数据类型。
答:
byte,short,int,long,char,float,double,boolean
3.【基础题】什么是常量?
什么是变量?
答:
常量能在任何地方被它所允许的类型使用,代表的是所属类型的一个值。
变量是JAVA程序的一个基本存储单元。
变量是有一个标识符,类型及一个可选初始值的组合定义
4.【基础题】Java代码注释有几种?
分别起什么作用?
举例写出来。
答:
有3种;单行注释、多行注释和文档注释;//、/**/、/***/
5.【基础题】字节型(byte)、短整形(short)、整形(int)、单精度浮点型(float)的取值范围是多少?
答:
字节型(byte):
它是有符号的8位类型,数的范围是-128~127。
短整形(short):
short是有符号的16位类型,数的范围是–32,768~32,767。
整形(int):
它是有符号的32位类型,数的范围是-2,147,483,648~2,147,483,647。
单精度浮点型(float):
单精度浮点型(float)专指占用32位存储空间的单精度(single-precision)值。
数的范围是3.4E–038~3.4E+038。
6.【中等题】简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。
答:
区别主要答两点:
a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路
第三章数据类型转换和运算符
笔试题
一、填空题
1.【中等题】intx=5;inty=4;y=x++;y的值是5。
二、选择题
1.【基础题】int类型不可以与下列那些数据类型进行数据类型转换(C)
A.char
B.byte
C.boolean
D.double
2.【基础题】请选择以下运算优先级别:
1()、2>、3++、4+=、5&&。
(C)
A.12345
B.32154
C.13254
D.52134
3.【中等题】inti=2;i+=i-=i*i的值为(A)
A.0
B.2
C.4
D.2
4.【中等题】
booleanbool=true;
if(bool=false){
System.out.println(“a”);
}elseif(bool){
System.out.println(“b”);
}elseif(!
bool){
System.out.println(“c”);
}else{
System.out.println(“d”);
}
Whatistheresult?
(C)
A.a
B.b
C.c
D.d
E.Compilationfails
5.【中等题】
publicclassDelta{
staticbooleanfoo(charc){
System.out.print(c);
returntrue;
}
publicstaticvoidmain(String[]argv){
inti=0;
for(foo(‘A’);foo(‘B’)&&(i<2);foo(‘C’)){
i++;
foo(‘D’);
}
}
}
Whatistheresult?
(A)
A.ABDCBDCB
B.ABCDABCD
C.Compilationfails.
D.Anexceptionisthrownatruntime.
6.【 提高题】
publicclassAlpha1{
publicstaticvoidmain(String[]args){
booleanflag;inti=0;
do{
flag=false;
System.out.println(i++);
flag=i<10;
continue;
}while((flag)?
true:
false);
}
}
Whatistheresult?
(B)
A.000000000
B.0123456789
C.Compilationfails.
D.Thecoderunswithnooutput.
E.Thecodeentersaninfiniteloop.
F.Anexceptionisthrownatruntime.
三、名词解释
四、问答题
1.【基础题】请阐述=运算符和==运算符的区别。
答:
=是赋值运算符,用于给变量赋值
==是比较运算符,用于逻辑比较
第四章流程控制
笔试题
一、填空题
1.【基础题】Java程序控制语句中的循环语法分for,while和do…while三种。
二、选择题
2.【基础题】下列程序在执行完循环后的结果为(D)
inti=1,j=10;
do{
if(i++>--j)
continue;
}while(i<5);
A.i=6j=5
B.i=5j=5
C.i=6j=4
D.i=5j=6
3.【基础题】以下选项中,那一个是结束本次循环关键字(B)
A.break
B.continue
C.go
D.do
4.【基础题】
inti=0;
for(;i<4;i+=2){
System.out.print(i+“”);
}
System.out.println(i);
Whatistheresult?
(A)
A.024
B.0245
C.01234
D.Compilationfails.
E.Anexceptionisthrownatruntime.
5.【基础题】
publicclassSwitchTest{
publicstaticvoidmain(String[]args){
System.out.println(“value=“+switchIt(4));
}
publicstaticintswitchIt(intx){
intj=1;
switch(x){
case1:
j++;
case2:
j++;
case3:
j++;
case4:
j++;
case5:
j++;
default:
j++;
}
returnj+x;
}
}
Whatistheresult?
(F)
A.value=3
B.value=4
C.value=5
D.value=6
E.value=7
F.value=8
6.【基础题】
inti=1,j=-1;
switch(i){
case0,1:
j=1;
case2:
j=2;
default;j=0;
}
System.out.println(“j=”+j);
Whatistheresult?
(E)
A.j=-1
B.j=0
C.j=1
D.j=2
E.Compilationfails.
7.【基础题】
switch(x){
default:
System.out.println(“Hello”);
}
Whichtwoareacceptabletypesforx?
(Choosetwo)(A、C)
A.byte
B.long
C.char
D.float
E.Short
F.Long
三、名词解释
四、问答题
第五章Eclipse使用
笔试题
一、填空题
1.【基础题】Eclipse中代码助手的快捷键是alt+/,格式化的快捷键是ctrl+shift+f。
二、选择题
1.【基础题】Eclipse目录下,插件jar包放在什么文件夹里(B)
A.configuration
B.plugins
C.links
D.features
三、名词解释
1.【基础题】IDE:
IntegratedDevelopmentEnvironment集成开发环境。
四、问答题
1.【基础题】常用的JavaIDE都有哪些?
答:
JBuilder
NetBeans
Eclipse
2.【基础题】MyEclipse是JAVAIDE吗?
答:
不是,MyEclipse是Eclipse的一个插件。
3.【中等题】Eclipse安装插件的方法。
答:
一般来说,安装插件都是直接拷贝到Plugins子目录下,但是这样有个缺陷,若插件太多,会使内容非常混乱,而且分不清哪个是系统自带的,哪个是以后安装的。
这里提供一个办法:
在Eclipse安装目录下新建一个子目录links,里面新建一个文件abcd.link,文件名随便取,文件里的内容为path=D:
/MyPlugins(目录可换成自己的),而在Path中指定的目录,即刚才的D:
/MyPlugins目录下,一定要有一个eclipse子目录,在此子目录下再有features及plugins子目录(同Eclipse安装目录一样),新插件在安装时即可以拷贝到此plugins目录下,这样就避免了所有插件都放在一起的缺点。
而且links目录下可以建多个*.link文件,每个.link文件中的内容可有多行path=...,极大的方便了将插件按照功能来进行分门别类。
第六章String
笔试题
一、填空题
1.【基础题】字符串的下标从0开始。
2.【基础题】String的取子串的方法是substring(),取某个位置上字符的方法是charAt()。
二、选择题
1.【基础题】比较两个字符串引用地址是否相等用那个方法(C)
A.contact()
B.charAt()
C.equals()
D.substring()
2.【基础题】取出字符串的长度是以下那个(B)
A.String.length
B.String.length()
C.String.long
D.String.long()
3.【中等题】
Stringa=“ABCD”;
Stringb=a.toLowerCase();
b.replace(‘a’,‘d’);
b.replace(‘b’,‘c’);
System.out.println(b);
Whatistheresult?
(A)
A.abcd
B.ABCD
C.dccd
D.dcba
E.Compilationfails.
F.Anexceptionisthrownatruntime.
4.【中等题】
publicclassFoo{
publicstaticvoidmain(String[]args){
StringBuffera=newStringBuffer(“A”);
StringBufferb=newStringBuffer(“B”);
operate(a,b);
System.out.println(a+“,”+b);
}
staticvoidoperate(StringBufferx,StringBuffery){
x.append(y);
y=x;
}
}
Whatistheresult?
(D)
A.Thecodecompilesandprints“A,B”.
B.Thecodecompilesandprints“A,A”.
C.Thecodecompilesandprints“B,B”.
D.Thecodecompilesandprints“AB,B”.
E.Thecodecompilesandprints“AB,AB”.
F.Thecodedoesnotcompilebecause“+”cannotbeoverloadedforStringBuffer.
三、名词解释
四、问答题
1.【中等题】equals()和==比较两个字符串是否相同有什么区别。
答:
equals()比较的是两个字符串的值,==比较的是两个字符串的地址。
2.【中等题】简述String和StringBuffer的区别。
答:
JAVA平台提供了两个类:
String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。
这个String类提供了数值不可改变的字符串。
而这个StringBuffer类提供的字符串进行修改。
当你知道字符数据要改变的时候你就可以使用StringBuffer。
典型地,你可以使用StringBuffers来动态构造字符数据。
3.【中等题】Strings=newString("xyz");创建了几个StringObject?
答:
2个,1个在String池中,一个在堆内存中。
4.【基础题】是否可以继承String类?
答:
String类是final类故不可以继承。
第七章数组及算法
笔试题
一、填空题
1.【基础题】字符串的下标从0开始,数组的下标从0开始。
2.【基础题】int[]c1=newint[10];int[]c2={1,2,3,4,5,6,7,8,9,0};数组c1中的元素有__10__个;c2中的元素有__10__个;已初始化赋值的是__C2__;当执行System.out.println(c2[12])代码会产生__数组下标越界错误.
二、选择题
1.【基础题】以下选项中,请选出数组声明错误的(D)
A.String[]seasons={"winter","spring","summer","fall"};
B.int[]intArray=newint[5];
C.String[]StrArray=newString("abc","123");
D.int[]anArray={3,x,9,2};
2.【基础题】以下关于数组的描述有误的是(D)
A.整型数组中的各元素的值必须是整型
B.数组是有序数据的集合
C.如数组名为ab,即ab.length可以取得该数组的长度
D.数组的下标从1开始
3.【基础题】请选择不正确的描述(C)
A.可以声明任何类型的数组──包括原始类型或类类型
B.数组的下标从0开始
C.数组中的元素可以自动增长
D.用数组的属性length可以得到数组的长度
三、名词解释
1.【基础题】数组:
数组是一种数据结构,用来存储同一类型值的集合.通过一个整形下标可以访问数组中的每一个值.一旦创建了数组就不能再改变它的大小了.
四、问答题
1.【基础题】数组有没有length()这个方法?
String有没有length()这个方法?
答:
数组没有length()这个方法,有length的属性。
String有length()这个方法。
第八章类和对象
笔试题
一、填空题
1.【基础题】抽象类的关键字是abstract
2.【基础题】子类的构造中显示调用父类默认构造方法的代码是super()父类有参构造中显示调用自身默认构造方法的代码是this()。
3.【基础题】final关键字可以修饰在类、属性和方法前面
二、选择题
1.【基础题】面向对象的特征有(ABC)
A.继承
B.多态
C.封装
D.抽象
2.【基础题】请选择下面程序中正确的选项(BC)
A.inti=0;
if(i){
System.out.println(“Hi”);
}
B.booleanb=true;
booleanb2=true;
if(b==b2){
System.out.println(“Sotrue”);
}
C.inti=1;
intj=2;
if(i==1||j==2)
System.out.println(“OK”);
D.inti=1;
intj=2;
if(i==1&|j==2)
System.out.println(“OK”);
3.【基础题】方法重载必须的条件为(AB)
A.参数不同
B.参数类型不同
C.返回值不同
D.参数顺序不同
三、名词解释
1.【基础题】重载:
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载
2.【基础题】OOA:
面向对象分析方法(Object-OrientedAnalysis)
3.【基础题】OOD:
面向对象设计方法(Object-Orienteddesign)
4.【基础题】OOP:
面向对象编程方法(Object-Orientedprogramming)
四、问答题
1.【中等题】abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
答:
都不能
2.【中等题】是否可以在静态(static)方法内部调用非静态(static)方法?
答:
不可以,如果其中包含对象的method();不能保证对象初始化。
3.【中等题】面向对象的特征有哪些方面
1)抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
2)继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3)封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4)多态:
多态是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
第九章构造方法
笔试题
一、填空题
1.【基础题】构造方法能(能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 面试 宝典 总结