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

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

发布时间:2020-12-24 08:10:10 所属栏目:运营 来源:网络整理
导读:下列面试题都是在网上收集的,本人抱着学习的态度找了下参考答案,有不足的地方还请指正,更多精彩内容可以关注我的微信公众号: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">

如果不明就里很容易认为两个输出要么都是true要么都是false。首先需要注意的是f1、f2、f3、f4四个变量都是Integer对象引用,所以下面的==运算比较的不是值而是引用。装箱的本质是什么呢?当我们给一个Integer对象赋一个int值的时候,会调用Integer类的静态方法valueOf,如果看看valueOf的源代码就知道发生了什么。

IntegerCache是Integer的内部类,其代码如下所示:

<span class="hljs-keyword"&gt;private <span class="hljs-keyword"&gt;static <span class="hljs-class"&gt;<span class="hljs-keyword"&gt;class <span class="hljs-title"&gt;IntegerCache { <span class="hljs-keyword"&gt;static <span class="hljs-keyword"&gt;final <span class="hljs-keyword"&gt;int low = -<span class="hljs-number"&gt;128; <span class="hljs-keyword"&gt;static <span class="hljs-keyword"&gt;final <span class="hljs-keyword"&gt;int high; <span class="hljs-keyword"&gt;static <span class="hljs-keyword"&gt;final Integer cache[]; <span class="hljs-keyword"&gt;static { <span class="hljs-comment"&gt;// high value may be configured by property <span class="hljs-keyword"&gt;int h = <span class="hljs-number"&gt;127; String integerCacheHighPropValue = sun.misc.VM.getSavedProperty(<span class="hljs-string"&gt;"java.lang.Integer.IntegerCache.high"); <span class="hljs-keyword"&gt;if (integerCacheHighPropValue != <span class="hljs-keyword"&gt;null) { <span class="hljs-keyword"&gt;try { <span class="hljs-keyword"&gt;int i = parseInt(integerCacheHighPropValue); i = Math.max(i,<span class="hljs-number"&gt;127); <span class="hljs-comment"&gt;// Maximum array size is Integer.MAX_VALUE h = Math.min(i,Integer.MAX_VALUE - (-low) -<span class="hljs-number"&gt;1); } <span class="hljs-keyword"&gt;catch( NumberFormatException nfe) { <span class="hljs-comment"&gt;// If the property cannot be parsed into an int,ignore it. } } high = h; cache = <span class="hljs-keyword"&gt;new Integer[(high - low) + <span class="hljs-number"&gt;1]; <span class="hljs-keyword"&gt;int j = low; <span class="hljs-keyword"&gt;for(<span class="hljs-keyword"&gt;int k = <span class="hljs-number"&gt;0; k < cache.length; k++) cache[k] = <span class="hljs-keyword"&gt;new Integer(j++); <span class="hljs-comment"&gt;// range [-128,127] must be interned (JLS7 5.1.7) <span class="hljs-keyword"&gt;assert IntegerCache.high >= <span class="hljs-number"&gt;127; } <span class="hljs-function"&gt;<span class="hljs-keyword"&gt;private <span class="hljs-title"&gt;IntegerCache<span class="hljs-params"&gt;() {} }

(编辑:厦门网)

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

热点阅读