java面试题大全doc.docx
《java面试题大全doc.docx》由会员分享,可在线阅读,更多相关《java面试题大全doc.docx(51页珍藏版)》请在冰豆网上搜索。
![java面试题大全doc.docx](https://file1.bdocx.com/fileroot1/2023-6/26/ee2a69fc-26b6-40ee-aa5e-51d6decaeb2e/ee2a69fc-26b6-40ee-aa5e-51d6decaeb2e1.gif)
java面试题大全doc
java面试题大全
企业笔试面试题分析
本套题目主要出自神州数码,华为,笔试考试题以及SCJP认证考题
一,选择题
1.下列数组初始化正确的是:
C
Aint[5]a={1,2,3,4,5};
Bint[2][2]a={{1,2},{3,4}};
Cint[][]a={{2,3,4,5},newint[3]};
Dint[][]a=newint[][5];
2.下面的程序名为Student.java:
B
publicclassStudent
{
privateStringname;
publicStudent(Strings_name)//1
{
name=s_name;//2
}
publicstaticvoidmain(Stringargs[])
{
Students=newStudent();//3
}
}
使用如下指令编译:
javacStudent.java
将会得到什么结果?
A.将会顺利通过编译,并将产生一个Student.class的类文件。
B.编译时在//3处出错。
C.编译时在//2处出错。
D.编译时在//1处出错。
3.关于下述程序:
C
publicclassDivide
{
publicstaticvoidmain(Stringargs[])
{
System.out.println(""17.0/0=""+17.0/0);//1
System.out.println(""17/0=""+17/0);//2
}
}
描述正确的是?
A.编译出错
B.编译通过,运行时//1、//2处均出现异常
C.编译通过,运行时//1处得到一个无穷大值,//2处将出现异常
D.编译通过,运行时//1处出现异常,//2处将得到一个无穷大值
4.有下面程序:
B
publicclassTestString
{
publicstaticvoidmain(String[]args)
{
Stringstr1=“abcd”;
Stringstr2=“abcd”;
Stringstr3=newString(“abcd”);
Stringstr4=newString(“abcd”);
System.out.println(str1==str2);
System.out.println(str3==str4);
}
}
输出结果是?
AtruetrueBtruefalseCfalsetrueDfalsefalse
5.关于下面的类描述中正确的是:
C
classTest{
voidtest(inti){
System.out.println(""Iamanint."");
}
voidtest(Strings){
System.out.println(""Iamastring."");
}
publicstaticvoidmain(Stringargs[]){
Testt=newTest();
charch='y';
t.test(ch);
}
}
A.编译出错
B.编译通过,运行出错
C.编译通过,运行时输出“Iamanint”
D.编译通过,运行时输出“Iamastring”
6.如希望父类中的某成员变量能被任何包中的子类直接访问,那么定义该变量时使用限定词____最适合。
C
A.publicBprivateCprotectedD.default
7.当编译和运行下列程序段时,会发生什么?
C
classBase{}
classSubextendsBase{}
classSub2extendsBase{}
publicclassCEx{
publicstaticvoidmain(Stringargv[]){
Baseb=newBase();
Subs=(Sub)b;
}
}
A通过编译和并正常运行。
B编译时出现错误。
C编译通过,运行时出现异常。
D以上都错
8.下面正确的是:
A
A在Java中类只允许单一继承
B在Java中一个类只允许实现一个接口
C在Java中类不能同时继承一个类和实现一个接口
D在Java中一个接口只能继承一个接口
9.下面哪些是java语言中的关键字?
B
Asizeof
Babstract
CNULL
DNative
10.下面语句哪个是正确的?
D
Acharc='ab';
Bintl=0xfffL;
Cfloatf=0.23;
Ddoubled=0.7E-3;
11.classExSuper{
Stringname;
Stringnick_name;
publicExSuper(Strings,Stringt){
name=s;
nick_name=t;
}
publicStringtoString(){
returnname;
}
}
publicclassExampleextendsExSuper{
publicExample(Strings,Stringt){
super(s,t);
}
publicStringtoString(){
returnname+""a.k.a""+nick_name;
}
publicstaticvoidmain(Stringargs[]){
ExSupera=newExSuper(""First"",""1st"");
ExSuperb=newExample(""Second"",""2nd"");
System.out.println(""ais""+a.toString());
System.out.println(""bis""+b.toString());
}
}
运行结果是C
A编译时会出现例外。
B运行结果为:
aisFirst
bissecond
C运行结果为:
aisFirst
bisSeconga.k.a2nd
D运行结果为:
aisFirsta.k.a1nd
bisSeconda.k.a2nd
12.abstractclassMineBase{
abstractvoidamethod();
staticinti;
}
publicclassMineextendsMineBase
{
publicstaticvoidmain(Stringargv[]){
int[]ar=newint[5];
for(i=0;i System.out.println(ar[i]);
}
}
程序编译运行结果是C
A打印5个0。
B编译出错,数组ar[]必须初始化。
C编译出错,Mine应声明为abstract。
D出现IndexOutOfBoundes的例外。
13.publicclassFoo{
publicstaticvoidmain(String[]args){
try{
return;}
finally{System.out.println(""Finally"");
}
}
}
结果是:
B
A程序正常运行,但不输出任何结果。
B程序正常运行,并输出""Finally""。
C编译能通过,但运行时会出现一个例外。
D因为没有catch语句块,所以不能通过编译。
14.哪个表达式结果为true?
D
Integeri=newInteger(42);
Longh=newLong(42);
Doubled=newDouble(42.0);
Doubledd=newDouble(42);
Ai==h;
Bd==dd;
Ci.equals(h);
Dd.equals(dd);
15.package语句正确的是A
A必须在程序开头
B不一定在程序开头
C可以在import之后
D包名可以以数字开头
16.有关类Demo,哪句描述是正确的?
A
publicclassDemoextendsBase{
privateintcount;
publicDemo(){
System.out.println(""ADemoobjecthasbeencreated"");
}
protectedvoidaddOne(){count++;}
}
A当创建一个Demo类的实例对象时,count的值为0。
B当创建一个Demo类的实例对象时,count的值是不确定的。
C超类对象中可以包含改变count值的方法。
DDemo的子类对象可以访问count。
17.java中,关于char类型错误的是C
A占2字节
B可以存储一个英文字母
C不能存储一个汉字
D其对应的封装类是Character
18.关于接口跟抽象类正确的是C
A接口能够创建对象
B抽象类能够创建对象
C接口中不能定义变量,都是常量
D接口中可以有private方法
19.关于内部类错误的是:
A
A静态内部类可以访问其外部类的非静态属性
B非静态内部类可以访问其外部类的静态属性
C内部类可以是protected
D内部类可以是final的
20.异常处理正确的是:
B
A调用任何可能抛出异常方法,都必须捕捉trycatch或者throws
BRuntimeException可以不捕捉或者throws
Cthrow跟throws用法是一样的
Dtry必须有catch,可以没有finally
21.Vector与ArrayList正确的是:
C
AArrayList出现比Vector早
BArrayList速度比Vector慢
CArrayList没有同步保护,Vector具有同步保护
DArrayListVector两者都是无序的集合"
22.下面在Java线程同步中已经不推荐使用,应该避免使用的方法是:
D
AjoinBnotifyCwaitDsuspend
23.Whichofthefollowinglinesofcodewillcompilewithouterror?
B
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”);"
24.下列哪些组件可以为其设置布局管理器D
AJDialog
BJFrame
CJWindow
DJPanel
25.下列程序C
classA
{
publicstaticvoidmain(String[]args)
{
Bb=newB();
b.run();
for(inti=0;i<30;i++)
{
System.out.println(""good"");
}
}
}
classBextendsThread
{
publicvoidrun()
{
for(inti=0;i<30;i++)
{
System.out.println(""hello"");
}
}
};
A编译错误
B编译正确,执行时goodhello交替输出
C编译正确,执行时先输出30个hello再输出30个good
D编译正确,程序运行时出现异常
26.关于线程错误的是D
A多线程共享同一数据可能出现错误,所以读写数据都需要加同步保护
B线程在suspend时,不会释放同步锁,因此可能造成死锁,不推荐使用
C线程在wait时,可以释放同步锁,因此线程通信时推荐使用。
D线程在sleep时,可以释放同步锁。
27.FileInputStream和FileOutputStream错误的是C
A是字节流
B是节点流
C用其拷贝文件时,不能拷贝中文
D可以拷贝任何文本文件和2进制文件。
28.下列错误的是C
AString类对象具有不可改变的特性,对象内容无法改变
BStringBuffer类内容可以改变
C用String类比StringBuffer来做字符串运算比较节约内存
DString类对象每次连接都创建一个新的对象
29.一个类中那些内容可以在序列化时写入文件或发送到网络上D
Atransient修饰的属性
B静态属性
C方法
D类名
30.关于Collection接口错误的是:
D
ACollection下面分为两个接口Set跟List接口
BSet接口的实现类是无序无重复集合例如HashSet
CList接口的实现类是有序可以重复集合例如ArrayList与Vector
DMap接口也是Collection的子接口,实现类有HashMap和Hashtable
31.Whathappenswhenyoutrytocompileandrunthefollowingapplication?
Chooseallcorrectoptions.A
1.publicclassZ{
2.publicstaticvoidmain(String[]args){
3.newZ();
4.}
5.
6.Z(){
7.Zalias1=this;
8.Zalias2=this;
9.synchronized(alias1){
10.try{
11.alias2.wait();
12.System.out.println(“DONEWAITING”);
13.}
14.catch(InterruptedExceptione){
15.System.out.println(“INTERRUPTED”);
16.}
17.catch(Exceptione){
18.System.out.println(“OTHEREXCEPTION”);
19.}
20.finally{
21.System.out.println
(“FINALLY”);
22.}
23.}
24.System.out.println(“ALLDONE”);
25.}
26.}
A.Theapplicationcompilesbutdoesn’tprintanything.
B.Theapplicationcompilesandprint“DONEWAITING”
C.Theapplicationcompilesandprint“FINALLY”
D.Theapplicationcompilesandprint“ALLDONE”
E.Theapplicationcompilesandprint“INTERRUPTED”
32.一个Javaapplet的init()方法如下所示,关于该applet运行时显示的图形用户界面下述的论述是正确的D
publicvoidinit(){
setLayout(newBorderLayout());
add(""East"",newButton(""hello""));
}
选项:
a)在applet中什么也未显示
b)在applet窗口正中央显示一个按钮
c)在applet窗口的左侧显示一个按钮
d)在applet窗口的右侧显示一个按钮
e)一个按钮填充整个applet区域
33.下列关于关系数据库的说法正确的是:
A贮存在列下的数据不必具有相同数据类型。
B行是唯一的(没有完全相同的行)。
C列有顺序。
D行有顺序。
34.以下不属于DML数据操纵语句的是:
D
Ainsert
Bupdate
Cdelete
Dcommit
35.以下sql语句正确的是:
D
Aselectstudentid,depart,count(*)fromstudentgroupbydepart;
Bselectstudentid,count(*)fromstudent;
Cselectdepart,max(avg(age))fromstudentgroupbydepart;
Dselectstudentid,avg(score),max(score)fromscoregroupbystudentid
36.在oracle中提交之前,下面说法错误的是:
D
A当前的用户可以看到DML操作的结果
B其他用户不能看到DML操作的结果
C被操作的数据被锁住,其他用户不能修改这些数据
D所有的savepoints被去掉
37.在JSP中使用getProperty>标记时,不会出现的属性是:
C
A.name
B.property
C.value
D.以上皆不会出现
38.JSP内嵌对象session的类型为javax.servlet.http.HttpSession,下述语句会使该对象失效的是:
C
Asession.dispose();
Bsession.clear();
Csession.invalidate();
Dsession.removeAll();
39.对于JavaBean的属性,下面哪种说法是不正确的:
D
AJavaBean中不一定要有属性
BJavaBean类可以不是public的
C要访问和修改JavaBean的属性,应该通过get/set方法
D如果一个属性只提供了get方法,那么它是只读的
40.在JSP中调用JavaBean时不会用到的标记是:
A
A
BuseBean>
CsetProperty>
DgetProperty>
41.Page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:
D
A<%@page%>作用于整个JSP页面。
B可以在一个页面中使用多个<%@page%>指令。
C为增强程序的可读性,建议将<%@page%>指令放在JSP文件的开头,但不是必须的。
D<%@page%>指令中的所有属性只能出现一次。
42.useBean>标签中scope的范围由小到大是D
Apagesessionrequestapplication
Bapplicationpagerequestsession
Capplicationsessionrequestpage
Dpagerequestsessionapplication
43.要让不同用户共享一个JavaBean的对象则该对象的范围应该设置为:
C
Asession
Bpage
Capplication
Drequest
44.关于include>与<%@include%>的区别下面错误的是:
B
A用include>被包含的页面和本页面将分别生成两个servlet
B用<@include>被包含的页面和本页面将分别生成两个servlet
Cinclude>可以包含jsp和html文件
D<@include>可以包含jsp和html文件
45.以下那种请求表明客户端只想接收到响应的头信息,并决定了接收文挡的大小,修改时间。
D
APUT
BGET
CTRACE
DHEAD
46.下面为部署文件中的Servlet影射代码片段,正确的是:
C
A
ABC
/ABC
B
ABC
/ABC
C
ABC
/ABC/*
D
Noneofthese.
47.关于自定义标签的使用不正确的是:
B
A必须在JSP页面中使用<@taglib>
B必须经过web.xml映射
C必须存在tld文件
D自定义标签的类必须是public的
48.response.sendRedirect()跳转与forward>跳转错误的是D
AsendRedirect()地址栏中显示跳转后的地址
Bforward跳转地址栏中显示跳转前的地址
Cforward的时候可以用param>传递参数
DsendRedirec