Java常见面试题(1)

1.Error与Exception有什么区别?
Error表示系统级的错误和程序不必处理的异常, Exception表示需要捕捉或者需要程序进行处理的异常。

2.在java中一个类被声明为final类型,表示了什么意思?
表示该类不能被继承,是顶级类。heap和stack有什么区别。 栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。 堆是栈的一个组成元素

3.String s = new String("xyz");创建了几个String Object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。

4.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?    
short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。

5.数组有没有length()这个方法? String有没有length()这个方法?   
数组没有length()这个方法,有length的属性。   String有有length()这个方法。

6.equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

7.构造器Constructor是否可被override?    
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。 

8.是否可以继承String类?    
String类是final类故不可以继承。 

9.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?    
不能,一个对象的一个synchronized方法只能由一个线程访问。

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

11.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?   
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。

北大青鸟网上报名
北大青鸟招生简章