虽然申请博客已经有一段时间了,却是第一次写博客,有点激动,不知道该写些什么,刚好大三老学姐正值找实习工作之际,每天都会刷一点题,现在在看Java程序员面试笔试宝典一书,刚好把里面的题每天总结5道,写在博客里,一来自我督促,保持每天都会刷题,二来自我加深印象,三来可以省去大家的整理时间,如果能对朋友们有那么一点点的帮助,我也会开心很久的小白渣渣,欢迎大家指正,也欢迎转发给需要的小伙伴们,只需指明出处就好!
啦啦啦,每天进步一点点
正文正文正文啦啦啦啦:
Java基础知识:
61,一个Java程序运行从上到下的环境次序是()
A, 操作系统、Java程序、JRE/JVM、硬件
B, JRE/JVM、Java程序、硬件、操作系统
C, Java程序、JRE/JVM、操作系统、硬件
D,Java程序、操作系统、JRE/JVM、硬件
参考答案:C。
62,下列说法中,正确的是()
A, Java程序经编译后会产生机器码
B, Java程序经编译后会产生字节码
C, Java程序经编译后产生DLL
D,以上都不正确
参考答案:B。.java文件被javac指令编译为.class后缀的字节码文件,再由JVM执行。
63,现有如下代码。
1 public Object m(){
2 Objecto = new Float(3.14F);
3 Object[] oa = new Object[1];
4 oa[0]= o;
5 o= null;
6 oa[0]=null;
7 print‘return 0’;
8 }
当Float对象在第2行被创建后,什么时候能够被垃圾回收?()
A,4行以后 B,5行以后 C,6行以后 D,7行以后
参考答案:C。在第6行后不再有对象引用Float对象了,因此能够被垃圾回收。
64,下列关于垃圾回收的说法中,正确的是()
A, 一旦一个对象成为垃圾,就立刻被回收掉
B, 对象空间被回收掉之后,会执行该对象的finalize方法
C, Finalize方法和c++的析构函数完全是一回事情
D,一个对象成为垃圾是因为不再有引用指着它,但是线程并非如此
参考答案:D。成为垃圾的对象,只有在下次垃圾回收器运行时才会被回收,而不是马上被清理,因此A错误。finalize方法是在对象空间被回收前调用的,因此选项B错误。在c++语言中,调用了析构函数后,对象一定会被销毁,而Java语言调用了finalize方法,垃圾却不一定会被回收,因此finalize与c++的析构函数是不同的,所以C不正确。对于D,当一个对象不再被引用后就成为垃圾可以被回收,但是线程就算没有被引用也可以独立运行的,因此与对象不同。所以D正确。
65,是否可以主动通知jvm进行垃圾回收?
参考答案:由于垃圾回收器的存在,Java语言本身没有给开发人员提供显式释放已分配内存的方法,也就是说,开发人员不能实时地调用垃圾回收器对某个对象或所有对象进行垃圾回收。但开发人员可以通过调用System.gc()方法来“通知”垃圾回收器运行,当然,jvm也并不会保证垃圾回收器马上就会运行。由于System.gc()方法的执行会停止所有响应,去检查内存中是否有可回收的对象,这会对程序的正常运行以及性能造成极大的威胁,因此实际编程时,不推荐频繁使用这一方法。
注:参考Java程序员面试笔试宝典(PS:这里只是总结摘抄一部分题,建议有精力的同学可以去看看书哈,那里更全面。)