每天学习五道题,题量不算很大,但是能帮助你巩固和熟悉关于java方面的知识。努力努力!
一、选择题
1.下面关于垃圾收集的说法正确的是
A 一旦一个对象成为垃圾,就立刻被收集掉
B 对象空间被收集之后,会执行该对象的finalize方法
C finalize方法和C++的析构函数是完全一回事情
D 一个对象成为垃圾是因为不再引用指着它,但是线程并非如此
解析:1.在java中,对象的内存在哪个时刻回收,取决于垃圾回收器何时运行。
2.一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法,并且在下一次垃圾回收动作发生时,才会真正的回收对象占用的内存(《java编程思想》)。
3.在C++中,对象的内存在哪个时刻被回收,是可以确定的,在C++中,析构函数的资源释放息息相关,能不能正确处理析构函数,关乎能否正确回收对象内存资源。
在java中,对象的内存在哪个时刻回收,取决于垃圾回收器何时运行,在java中,所有的对象,包括对象中包含的其他对象,它们所占的内存的回收都依靠垃圾回收器,因此不需要一个函数如C++析构函数那样必要的垃圾回收工作。当然存在本地方法时需要finalize()方法来清理本地对象。在《java编程思想》中提及,finalize()方法的一个作用是用来回收“本地方法”中的本地对象。
4.线程在其run()方法执行完以后就会释放掉内存,但是其引用不一定不存在了。
答案:D
2.要使用某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以()
A 让该类不使用任何关键字
B 使用private关键字
C 使用protected关键字
D 使用void关键字
解析:
类本部 | 本包 | 子类 | 外部包 | |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
答案:A
3.JVM内存不包含如下哪个部分()
A Stacks
B PC寄存器
C Heap
D Heap Frame
解析:
答案:D
4.下面哪些是重载的基本条件()(多选题)
A 参数类型不同
B 参数类型的顺序不同(比如int a,float b 与float b,int a)
C 函数返回值类型不同
D 参数个数不同
解析:
重载的概念是:在同一个类中,允许在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可。
只需记住:“两同一不同":同一个类,相同的方法名。参数列表不同:参数个数不同,参数类型不同
答案:ABD
5.装箱、拆箱操作发生在:()
A 类与对象之间
B 对象与对象之间
C 引用类型与值类型之间
D 引用类型与引用类型之间
解析:
通俗的讲,就是基本数据类型和包装类之间的转换。如: int 类型和 Integer 类的转换
基本数据类型转化成包装类是装箱 (如: int --> Integer)。
包装类转化成基本数据类型就是拆箱
(如:Integer --> int)。
包装类就是引用类型,基本数据类型就是值类型。所以选C
答案:C
最后,如果觉得有所收获,就三连一下,日后还会有更多的东西分享。