JAVA面试题参考答案,细则见下一篇

一  单选题

1-5:B C D D A    6-10D ACD C D B

11-15:C B AC AB AB    16-20:C C D A B

二  填空题(每个空一分)

1.   6world123

2.   1  1  -1  -1

3.     false

4.     是

5.     16   2n+1.(前边数字对即可)

6.     10   1.5倍 .(前边数字对即可)

7.     字节码文件.

8.   Exception  Throwable.

9.   5

10.  继承、封装和多态

 三.简单题

1. 存在使i+ 1 < i的数吗,如果存在说明情况,如果不存在说明理由.(4分)

答案:存在(2分)

解析:如果i为int型,那么当i为int能表示的最大整数时,i+1就溢出变成负数了,此时不就<i了吗。(2分)


2、阐述final、finally、finalize的用途和区别。 (6)
答: 
(1)final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 

内部类要访问局部变量,局部变量必须定义成final类型,例如,一段代码…… (2分)

finally是异常处理语句结构的一部分,表示总是执行。(2分)

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法(2分)


3Java支持的数据类型有哪些?每种数据类型的字节长度是多少?什么是自动拆装箱?(6)

Java语言支持的8中基本数据类型是:

  • byte  1
  • short  2
  • int  4
  • long 8
  • float  4
  • double  8
  • Boolean  1
  • char  2        (4分,答出基本类型2分,字节长度答对全部2分,其余0分)

自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int转化成Integerdouble转化成double,等等。反之就是自动拆箱。(2,意思到位即可)

4. 下面程序能正常运行吗? 能的话输出什么?不能的话原因是什么?(6分)

答案:

能正常运行,输出为haha(2分),

因为null值可以强制转 换为任何java类类型,(String)null也是合法的。但null强制转换后是无效对象,其返回值还是为null,而static方法的调用是和 类名绑定的,不借助对象进行访问所以能正确输出。反过来,没有static修饰就只能用对象进行访问,使用null调用对象肯定会报空指针错了。这里和 C++很类似 (4分)
5 、哪些情况下可以终止一个正在运行的线程的方式?(6分)
抛出异常或错误;(2分)
调用stop()(不建议使用,容易导致死锁);(2分)
执行完run(),线程正常结束。(2分)

6. 下面程序的运行结果是什么? (6分)

答案:(全对才有分)

static A

static B

I'm A class

HelloA

I'm B class

HelloB

 

16. 重写和重载的区别?

(1)重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同);(2分)

(2)重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现;只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常;子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法;(4分)

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值