JavaSE面试题.docx
《JavaSE面试题.docx》由会员分享,可在线阅读,更多相关《JavaSE面试题.docx(17页珍藏版)》请在冰豆网上搜索。
JavaSE面试题
1.下面那几个函数是publicvoidmethod(){...}的重载函数
A)publicvoidmethod(intm){...}B)publicintmethod(){...}
C)publicvoidmethod2(){...}D)publicintmethod(intm,floatf){...}
AD
2关于下面的说法哪些是正确的:
A)一旦一个线程被创建,它就立即开始运行。
B)使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运
行。
C)当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。
D)一个线程可能因为不同的原因停止并进入可运行状态
答案:
c
3:
classTest{
privateintm;
publicstaticvoidfun(){
,newTest().m..
4:
以下哪个方法用于定义线程的执行体
A)start()B)init()C)run()D)main()E)synchronized()
答案:
c
5:
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[]){
(arr[1]);
}
}
哪个选项是正确的
A.编译时将产生错误;
B.编译时正确,运行时将产生错误;
C.输出0;
D.输出空
答案:
c
6:
运算符>>和>>>是做什么用的
答案.>>执行有符号右移,>>>执行无符号右移
7:
下列关于栈结构的叙述正确的是
A栈是非线性结构B栈是一种树状结构
C栈具有先进先出的特征D栈具有后进先出的特征
答案:
D
8:
字符(char)的整型表示范围byte呢int呢long呢
答案
byte为-128~127,占用1个字节(-2的7次方到2的7次方-1)
short为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
int为(-48~47),占用4个字节(-2的31次方到2的31次方-1)
long为(-808~807),占用8个字节(-2的63次方到2的63次方-1)
9:
String是否是java中的基本数据类型java中都有哪些基本数据类型
String不是基本数据类型,
八个基本数据类型是char,int,double,float,byte,long,short,boolean,
对应八个包装类是Character,Integer,Double,Float,Byte,Long,Short,Boolean
10:
A.intk=newString(“aa”);
B.Stringstr=String(“bb”);
C.charc=74;
D.longj=8888;
上述表达式正确的是哪些
CD
11:
下述代码的执行结果是
classSuper{
publicintgetLength(){return4;}
}
publicclassSubextendsSuper{
publiclonggetLength(){return5;}
publicstaticvoidmain(String[]args){
Supersooper=newSuper();
Supersub=newSub();
“,”+());
}
}
A.4,4
B.4,5
C.5,4
D.5,5
E.代码不能被编译
答案:
Eswitch不能够作用在String类型上
B.List,Set,Map都继承自Collection接口
C.Java语言支持goto语句
D.GC是垃圾收集器,程序员不用担心内存管理
答案:
d
13:
指出下列程序运行的结果
publicclassExample{
Stringstr=newString("good");
char[]ch={'a','b','c'};
publicstaticvoidmain(Stringargs[]){
Exampleex=newExample();
;
"and");
}
publicvoidchange(Stringstr,charch[]){
str="testok";
ch[0]='g';
}
}
Agoodandabc
Bgoodandgbc
Ctestokandabc
Dtestokandgbc
答案:
b
int[][]myArray=newint[][]{newint[]{5,6,2},newint[]{6,9,7,8,3},newint[]{3,2}};
myArray[2][2]的值是()
A.9
B.2
C.6
D.越界
答案D越界
15、关于异常(Exception),下列描述正确的是(多选)
A.异常的基类为Exception,所有异常都必须直接或者间接继承它
B.异常可以用try{...}catch(Exceptione){...}来捕获并进行处理
C.如果某异常继承RuntimeException,则该异常可以不被声明异常可以随便处理,而不是抛给外层的程序进行处理
答:
ABC
16:
声明一个委托publicintmyCallBack(intx);则用该委托产生的回调方
法的原型应该是
A.voidmyCallBack(intx)
B.intreceive(intnum)
C.Stringreceive(intx)
D.不确定的
答:
B
17:
三种字符串判空串方法:
1:
boolisEmpty=()==0);
2:
boolisEmpty=(str==;
3:
boolisEmpty=(str=="");
哪种方法正确
A.1
B.2
C.3
答:
A
18:
Strings=newString(“hello”);
Stringt=newString(“hello”);
charc[]={„h‟,‟e‟,‟l‟,‟l‟,‟o‟};
下列哪些表达式返回true
A.(t);
B.(c);
C.s==t;
D.(newString(“hello”));
E.t==c;
答:
AD
19:
类Teacher和Student是类Person的子类;
Teachert;
Students;
if(tinstanceofPerson){s=(Student)t;}
最后一条语句的结果是:
A.将构造一个Student对象;
B.表达式是合法的;
C.表达式是错误的;
D.编译时正确,但运行时错误。
答:
D
20给定下列代码:
publicvoidtest(){
try{
oneMethod();
“condition1”);
}catch(ArrayIndexOutOfBoundsExceptione){
2”);
}catch(Exceptione){
3”);
}finally{
}
oneMethod正常运行,将显示
A.condition1
B.condition2
C.condition3
D.finally
答:
AD
21请选出下面两个类间关系描述错误的项
a.publicinterfaceA{}
publicclassBextendsA{}
b.publicinterfaceA{}
publicinterfaceBextendsA{}
c.publicinterfaceA{}
publicclassBimplementsA{}
d.publicclassA{}
publicclassB{protectedAa;}
答:
A
22下列创建数组的方法正确的是
A)inttwoDim[][]=newint[4][];
B)inttwoDim[][]=newint[][4];
C)inttwoDim[][]=newint[4][5];
D)chara[]={‘A’,‘B’};
E)charc[]=“ABC”;
答:
ACD
23:
publicclassXextendsThreadimplementsRunnable{
publicvoidrun(){
"thisisrun()");
}
publicstaticvoidmain(Stringargs[]){
Threadt=newThread(newX());
();
}
}
A第一行会产生编译错误
B第六行会产生编译错误
C第六行会产生运行错误
D程序会运行和启动
答:
D
24:
根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否
会引起死锁
publicvoidtest(inti)
{
lock(this){
if(i>10){
i--;
test(i);
}
}
}
A.会锁死
B.不会锁死
答:
B
25:
欲构造ArrayList类得一个实例,此类实现了List接口,下列哪个方法是正
确的:
AArrayListmyList=newObject();
BListmyList=newArrayList();
CArraylListmyList=newList();
DListmyList=newList();
答:
B
26:
Java网络程序设计中,下列正确的描述是(多选)
A.Java网络编程API建立在Socket基础之上
B.Java网络接口只支持TCP以及其上层协议
C.Java网络接口只支持UDP以及其上层协议
D.Java网络接口支持IP以上的所有高层协议
答:
AD
27:
JavaI/O程序设计中,下列描述正确的是
A.OutputStream用于写操作
B.InputStream用于写操作
C.I/O库不支持对文件可读可写API
答:
A
28:
选出对于XML的评论正确的选项___
A.XML是一种语言无关平台无关的自描述语言。
B.标签实际上包含了元素和属性两部分。
用元素来描述有规律的数据,用属性
来描述系统数据。
C.XML不可跨平台,不具备扩展性。
文档中的每一个元素都处在一个名字空间中;如果没有指定的名字空间,
缺省的名字空间就是和该元素相关联的名字空间。
答:
AD
29:
说说下面语句是否有错误,或可能出现的缺陷,并指出错误,或缺陷在哪
里
publicclassMyFileimplementsRunnable{
publicvoidrun(){
while(true){
try{
FileReaderfr=newFileReader(newFile(""));
Stringline=();
err){
}
Sleep(1000);}
}
答:
没有这个方法
(1000)需要用(1000);
3.没有关闭FileReader
4.死循环,没有退出的可能
30:
判断下列语句是否正确,如果有错误,请指出错误所在
Lista=newArrayList();
(5);
答:
错误,5的默认类型为int。
31:
classBubbleSort{
publicstaticvoidmain(String[]args)
{
int[]arr={8,4,2,3,5};
arr=sort(arr);
for(inta:
arr)
{
"\t");
}
}
publicstaticint[]sort(int[]array){
intcnt;
intn=;
do{
cnt=0;
for(inti=1;i{
if(array[i]{
inttemp=array[i];
array[i]=array[i-1];
array[i-1]=temp;
cnt++;
}
}
n--;
}while(cnt!
=0);
returnarray;
}
}冒泡排序,选择排序...重点掌握
32:
publicclassWorkerThreadextendsThread{
privateStringmessage;
publicWorkerThread(Stringmessage){
=message;
}
publicvoidrun(){
staticvoidmain(String[]args){
newWorkerThread("helloworld!
").start();
}
}
33、在web应用开发过程中经常遇到输出某种编码的字符,如从GBK到iso8859-1
等,如何输出一个某种编码的字符串
答:
publicstaticStringtranslate(Stringstr){
StringtempStr="";
try{
tempStr=newString("GBK"),"ISO-8859-1");
tempStr=();
}catch(Exceptione){
tempStr;
}
34:
publicclassSingleton{
privateSingletonsin=newSingleton();
privateSingleton(){
}
publicstaticSingletoninit(){
returnsin;
}
}
35:
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节
截取的字符串。
但是要保证汉字不被截半个,如"我ABC",4,应该截为"我AB",
输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。
答:
classSplitString
{
publicstaticStringsplit(Stringstr,intnum)
{
byte[]strs=();
if(strs[num-1]<0)
{
num=num-1;
}
byte[]news=newbyte[num];
(strs,0,news,0,num);
returnnewString(news);
}
publicstaticvoidmain(String[]args)
{
Stringstr=split("我ABC",4);
str2=split("我ABC走DEF",6);
}
.}
上面面的代码,如果你用“&”替换“&&”将发生什么错误
答:
会抛出空指针异常;&&会短路,只要遇到boolean值为false就不会再往后
执行了;而&则是会把两边的运算都执行完。
注:
这个题略坑,经常报nullException不过有时候要用到这个东西。
40:
abstractclass和interface有什么区别
想插一句有人用过@interface嘛
声明方法的存在而不去实现它的类被叫做抽象类(abstractclass),它用
于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现
该类的情况。
不能创建abstract类的实例。
然而可以创建一个变量,其类型是
一个抽象类,并让它指向具体子类的一个实例。
不能有抽象构造函数或抽象静态
方法。
Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也
是抽象类为。
取而代之,在子类中实现该方法。
知道其行为的其它类可以在类中
实现这些方法。
接口(interface)是抽象类的变体。
新型多继承性可通过实现
这样的接口而获得。
接口中的所有方法都是抽象的,所有成员变量都是public
staticfinal的。
一个类可以实现多个接口,当类实现接口时,必须实现接口
的所有方法。
抽象类在Java语言中表示的是一种单继承的关系,而接口表示的
是多继承的关系;抽象类中可以定义自己的成员变量,也可以包含非抽象的方法,
而在接口中只能有静态的常量,所有方法必须是抽象的;实现抽象类时可以只实
现其中的部分方法,而要是实现一个接口的话就必须实现这个接口中的所有抽象
方法。
41:
谈谈final,finally,finalize的区别
答:
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派
生出新的子类,不能作为父类被继承。
因此一个类不能既被声明为abstract的
,又被声明为final的。
将变量或方法声明为final,可以保证它们在使用中不
被改变。
被声明为final的变量必须在声明时给定初值,而在以后的引用中只
能读取,不可修改。
被声明为final的方法也同样只能使用,不能重载
finally—再异常处理时提供finally块来执行任何清除操作。
如果抛出一个
异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(
如果有的话)
finalize—方法名。
Java技术允许使用finalize()方法在垃圾收集器将对
象从内存中清除出去之前做必要的清理工作。
这个方法是由垃圾收集器在确定
这个对象没有被引用时对这个对象调用的。
它是在Object类中定义的,因此
所有的类都继承了它。
子类覆盖finalize()方法以整理系统资源或者执行其
他清理工作。
finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
42:
hasa,isa关系:
hasa:
publicclassA{
privateBb=newB();
}
classB{}
isa:
publicinterfaceA{
}
publicclassBimplimentsA{
}
43Math类自己下去看API把...太多了。
44:
java语言中public、private、protected三个关键字的用法,重写和重载
的区别。
答:
作用域当前类同包子类默认
public√√√√
protected√√√×
default√√××
private√×××
45:
说一下“==”和equals()方法在字串变量操作中的不同
答:
”==”比较的是两个字符串对象的地址,
equals()是比较的两个字符串的具体值。
46:
异常机制中try{}后一定要跟catch和finally吗
答:
一定要有catch或者finally,catch子句紧跟在try块后面,用来指定你
想要捕捉的“异常”的类型。
如果有catch的话,可以没有finally。
47:
能用foreach遍历访问的对象需要实现
答:
需要实现Iterable接口
48:
说出一些JDK常用的类,包,接口,Exception请各举5个
类:
HashSet、Thread、String、FileInputStream、Class
包:
、、、、
接口:
Collection、Set、List、Comparable、Serializable
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
49:
AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是
否可以implements(实现)interface(接口)
答:
匿名内部类是可以继承其它类,同样也可以去实现接口的,用法为:
JButtonbutton=newJButton();
(newActionListener()
{
publicvoidactionPerformed(ActionEvente){.}
});
这样的用法在swing编程中是经常使用的,就是因为它需要用到注册监听器
机制,而该监听类如果只服务于一个组件,那么,将该类设置成内部类/匿名类是
最方便的。
注:
著名的监听者模式
50:
接口是否可继承接口抽象类是否可实现接口抽象类是否可继承实体
类
答:
接口是可以继承接口的并且可以继承多个其它接口;抽象类可以实现接口中
的方法;抽象类可以继承实体类。
注:
想当架构师的,这个一定要搞得非常清楚,反射也要搞清楚。
51:
构造器Constructor是否可以被