面试题

Java面试常被问到的题目+解答

2018-01-26  本文已影响16人  OSET我要编程

第一,anonymousinnerclass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

第二,staticnestedclass和innerclass的不同,说得越多越好(面试题有的很笼统)。

static nestedclass指静态嵌套类,或称嵌套类,是C++中常用的说法,inner class指内部类,是JAVA中的说法。

第三,&和&&的区别。

这个问得很少。

&和^,<<,<<<,|同属于位运算符,其中&是按位与,例如,1&1=1,1&0=0,&&是逻辑运算符,处理真假值,例如,true&&true=true。

第四,hashmap和hashtable的区别。

常问。

第五,collection和collections的区别。

你千万别说一个是单数一个是复数。

collection是结合类的上级接口,子接口有List和Set等,Collections是java.util下的一个工具类,提供一些列静态方法对集合搜索排序线程同步化等。

第六,什么时候用assert。

api级的技术人员有可能会问这个。

第七,gc是什么?为什么要有gc?

基础。

第八,string s=newstring("xyz");创建了几个stringobject?

2个,文字池中1个,堆中1个,先在文字池中创建1个"xyz"对象,再在堆中拷贝一个"xyz"对象,并将其赋给引用s。

第九,math.round(11.5)等於多少?math.round(-11.5)等於多少?

Math.round(x)相当于(int)Math.floor(x+o.5f),

故math.round(11.5)=Math.floor(11.5+0.5)=Math.floor(12)=12;

Math.round(-11.5)=Math.floor(-11)=-11;

第十,short s1=1;s1=s1+1;有什么错?short

s1=1;s1+=1;有什么错?

面试题都是很变态的,要做好受虐的准备。

s1=s1+1会出错,s1+1是int型,不能将int赋值给s1.需要显示转换,s1=(int)(s1+1).而s1+=1不会出错,至于原因,有人说和编译器的机制有关,需要看编译原理,话说编译原理什么的最讨厌了,就这样吧。

第十一,sleep和wait有什么区别?

搞线程的最爱。

第十二,java有没有goto?

很十三的问题,如果哪个面试的问到这个问题,我劝你还是别进这家公司。

第十三,数组有没有length这个方法?string有没有length这个方法?

数组无,数组是成员变量,length.String是成员函数length;我不知道这个题意义何在,平时都用eclipse的,会在意这个么...

第十四,overload和override的区别。overloaded的方法是否可以改变返回值的类型?

常问。

我写的一篇随笔详细说明了重载,重写和多态之间的关系,返回值类型不包含在函数签名中,所以只有返回值不同的重载不成立。

第十五,set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用hashcode还是equals?它们有何区别?

第十六,给我一个你最常见到的runtimeexception

如果你这个答不出来,面试的人会认为你没有实际编程经验。

NullPointerException,空引用异常.说实话,中软的笔试题就有这个,我连题目意思都理解错了,压根没认出来runtime

exception是指运行时异常。

第十七,error和exception有什么区别?

为什么水的题最容易出现?

第十八,list,set,map是否继承自collection接口?

第十九,abstractclass和interface有什么区别?

常问。

真的是常问...

第二十,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

第二十一,接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concreteclass)?

接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类。换句话说,抽象类除了不能实例化以外和普通类没什么区别。

第二十二,启动一个线程是用run还是start?

用start,start会通过调用run来实现多进程。

第二十三,构造器constructor是否可被override?

构造函数不能被重写。

第二十四,是否可以继承string类?

String类为final,不可被继承。

第二十五,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

第二十六,try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

return前被执行,有程序为证:

结果是:

retrun

finally

return 1

第二十七,编程题:用最有效率的方法算出2乘以8等於几?

有c背景的程序员特别喜欢问这种问题。

第二十八,两个对象值相同(x.equals(y)true),但却可有不同的hashcode,这句话对不对?

第二十九,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

引用传递,毫无疑问,对象传递只能是引用.你可以换改变引用的内容,但并不能改变引用本身。

第三十,swtich是否能作用在byte上,是否能作用在long上,是否能作用在string上?

switch语句中的表达式只能是整数类型,即必须是int,char或者枚举类型数据。不能是boolean或浮点型,甚至其他类型的整数数据(byte,short及long)。

从教材上摘录而来,应该相当权威了。

第三十一,编程题:写一个singleton出来。

singleton模式即确保一个类只有一个实例,应用级singleton好像比较复杂,但最简单的singleton还是很好实现的。

【福利篇】

免费课程试听(复制链接)http://www.zparkedu.com/

上一篇下一篇

猜你喜欢

热点阅读