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

40道Java基础常见面试题及详细答案

发布时间:2021-01-02 02:06:49 所属栏目:运营 来源:网络整理
导读:最近看到网上传播着各类口试履历及口试题,每每都是一大堆技能标题贴上去,可是没有谜底。 为此我业余时刻清算了40道Java基本常见的口试题及具体谜底,望各路大牛发明差池的处所不惜见教,留言即可。 八种根基数据范例的巨细,以及他们的封装类 引用数据范例
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1
<div class="line number2 index1 alt1">2
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="java keyword">static?<code class="java keyword">int?<code class="java plain">indexFor(<code class="java keyword">int?<code class="java plain">h,?<code class="java keyword">int?<code class="java plain">length) {

? Hashtable中hash数组默认巨细是11,增进的方法是 old*2+1。HashMap中hash数组的默认巨细是16,并且必然是2的指数。

JDK7中的HashMap

HashMap底层维护一个数组,数组中的每一项都是一个Entry。

[] table;
我们向 HashMap 中所安排的工具现实上是存储在该数组傍边。 而Map中的key,value则以Entry的情势存放在数组中。

??? { ? next; ? 总结一下map.put后的进程:

当向 HashMap 中?put 一对键值时,它会按照 key的 hashCode 值计较出一个位置, 该位置就是此工具筹备往数组中存放的位置。

(编辑:湖南网)

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

HashTable Synchronize同步的,线程安详,HashMap不应承空键值为空?,服从低。 HashMap 非Synchronize线程同步的,线程不安详,HashMap应承空键值为空?,服从高。?Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现,它们都是荟萃中将数据无序存放的。

Hashtable的要领是同步的,HashMap未经同步,以是在多线程场所要手动同步HashMap这个区别就像Vector和ArrayList一样。

查察Hashtable的源代码就可以发明,除结构函数外,Hashtable的全部 public 要领声明中都有 synchronized 要害字,而HashMap的源代码中则连 synchronized 的影子都没有,虽然,注释除外。

2、Hashtable不应承 null 值(key 和 value 都不行以),HashMap应承 null 值(key和value都可以)。

3、两者的遍历方法大同小异,Hashtable仅仅比HashMap多一个elements要领。

?
? 4、HashTable行使Enumeration,HashMap行使Iterator

从内部机制实现上的区别如下:

  1. 哈希值的行使差异,Hashtable直接行使工具的hashCode
? 而HashMap从头计较hash值,并且用与取代求模:

? ?? ? >>? >>? ? <div class="cnblogs_Highlighter sh-gutter">
<div id="highlighter_415506" class="syntaxhighlighter java">
<table border="0" cellspacing="0" cellpadding="0">