For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
马上又到了“金三银四”的时候了,很多朋友都想问有没有比较经典的Java工程师的面试题呢,下面长沙达内小编就给大家讲讲吧:
1.枚举接口和迭代器接口之间有什么区别?
枚举的速度是迭代器的两倍,占用的内存更少。但是,迭代器比枚举安全得多,因为其他线程无法修改迭代器遍历的集合中的对象。同时,迭代器允许调用方删除基础集合中的元素,这对于枚举是不可能的。
2.HashSet和TreeSet的区别是什么?
HashSet是由一个哈希表实现的,所以它的元素是无序的。add()、remove()和contains()方法的时间复杂度为O(1)。
另一方面,TreeSet是通过树结构实现的,其中的元素是有序的。因此,add()、remove()、contains()方法的时间复杂度为O(logn)。
3.Java中垃圾收集的目的是什么?垃圾收集什么时候开始?
垃圾收集的目的是识别和丢弃应用程序不再用于释放和重用资源的对象。
4.系统。GC()和运行时GC()做什么?
这两种方法用于提示JVM进行垃圾收集。然而,由JVM决定是否立即启动垃圾收集或延迟垃圾收集。
5.何时调用finalize()方法?析构函数的作用是什么?
在释放对象占用的内存之前,垃圾收集器调用对象的finalize()方法。通常建议在这种方法中释放对象所持有的资源。
6.如果对象的引用设置为null,垃圾收集器会立即释放对象占用的内存吗?
不,此对象将在下一个垃圾收集周期中可回收。
7.在Java中,什么时候可以对对象进行垃圾收集?
当当前使用对象的应用程序无法访问该对象时,可以回收该对象。
8.Java中异常和错误的区别是什么?
Exception和error是throwable的子类。Exception用于用户程序可以捕获的异常。错误定义了用户程序不希望捕获的异常。
9.异常处理后异常对象会发生什么情况?
异常对象将在下一个垃圾收集过程中回收。
10.finally代码块和finalize()方法之间的区别是什么?
无论是否引发异常,都将执行finally代码块。它主要用于释放应用程序占用的资源。finalize()方法是对象类的受保护方法。在对象被垃圾收集之前,Java虚拟机会调用它。
以上面试题大家都要认真记下哦,如果想突击学习就快来长沙达内报名Java课程吧~