加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 交互 > 正文

史上最全Java面试题整理(附参考答案)

发布时间:2020-12-24 10:36:47 所属栏目:交互 来源:网络整理
导读:下列面试题都是在网上收集的,本人抱着学习的态度找了下参考答案,有不足的地方还请指正,更多精彩内容可以关注我的微信公众号:Java团长 1、面向对象的特征有哪些方面? 抽象:将同类对象的共同特征提取出来构造类。 继承:基于基类创建新类。 封装:将数据

}

<span class="cke_reset cke_widget_drag_handler_container"><img class="cke_reset cke_widget_drag_handler" title="点击并拖拽以移动" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" alt="" width="15" height="15" data-cke-widget-drag-handler="1">

注意:Java中非静态内部类对象的创建要依赖其外部类对象,上面的面试题中foo和main方法都是静态方法,静态方法中没有this,也就是说没有所谓的外部类对象,因此无法创建内部类对象,如果要在静态方法中创建内部类对象,可以这样做:

25、Java 中会存在内存泄漏吗,请简单描述。

答:理论上Java因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是Java被广泛使用于服务器端编程的一个重要原因);然而在实际开发中,可能会存在无用但可达的对象,这些对象不能被GC回收,因此也会导致内存泄露的发生。例如Hibernate的Session(一级缓存)中的对象属于持久态,垃圾回收器是不会回收这些对象的,然而这些对象中可能存在无用的垃圾对象,如果不及时关闭(close)或清空(flush)一级缓存就可能导致内存泄露。下面例子中的代码也会导致内存泄露。

<span class="hljs-keyword">private T[] elements;
<span class="hljs-keyword">private <span class="hljs-keyword">int size = <span class="hljs-number">0;

<span class="hljs-keyword"&gt;private <span class="hljs-keyword"&gt;static <span class="hljs-keyword"&gt;final <span class="hljs-keyword"&gt;int INIT_CAPACITY = <span class="hljs-number"&gt;16;

<span class="hljs-function"&gt;<span class="hljs-keyword"&gt;public <span class="hljs-title"&gt;MyStack<span class="hljs-params"&gt;() {
    elements = (T[]) <span class="hljs-keyword"&gt;new Object[INIT_CAPACITY];
}

<span class="hljs-function"&gt;<span class="hljs-keyword"&gt;public <span class="hljs-keyword"&gt;void <span class="hljs-title"&gt;push<span class="hljs-params"&gt;(T elem) {
    ensureCapacity();
    elements[size++] = elem;
}

<span class="hljs-function"&gt;<span class="hljs-keyword"&gt;public T <span class="hljs-title"&gt;pop<span class="hljs-params"&gt;() {
    <span class="hljs-keyword"&gt;if(size == <span class="hljs-number"&gt;0) 
        <span class="hljs-keyword"&gt;throw <span class="hljs-keyword"&gt;new EmptyStackException();
    <span class="hljs-keyword"&gt;return elements[--size];
}

<span class="hljs-function"&gt;<span class="hljs-keyword"&gt;private <span class="hljs-keyword"&gt;void <span class="hljs-title"&gt;ensureCapacity<span class="hljs-params"&gt;() {
    <span class="hljs-keyword"&gt;if(elements.length == size) {
        elements = Arrays.copyOf(elements,<span class="hljs-number"&gt;2 * size + <span class="hljs-number"&gt;1);
    }
}

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读