企业网站如何建设报告,太原注册公司在哪个网站申请,毕设做购物网站系统的原因,帝国后台网站如何设置自动刷新首二、企业真题
1. Java 的泛型是什么#xff1f;有什么好处和优点#xff1f;JDK 不同版本的泛型有什么区别#xff1f;#xff08;软*动力#xff09;
泛型#xff0c;是程序中出现的不确定的类型。
以集合来举例#xff1a;把一个集合中的内容限制为一个特定的数据类…二、企业真题
1. Java 的泛型是什么有什么好处和优点JDK 不同版本的泛型有什么区别软*动力
泛型是程序中出现的不确定的类型。
以集合来举例把一个集合中的内容限制为一个特定的数据类型这就是generic背后的核心思想。
jdk7.0新特性
ArrayListString list new ArrayList(); //类型推断后续版本的新特性
ComparatorEmployee comparator new Comparator(){} //类型推断2. 说说你对泛型的了解*软国际
集合中是可以存放任意对象的只要把对象丢进集合后那么这时他们都会被提升成Object类型。当我们在取出每一个对象并且进行相应的操作这时必须采用类型转换。
二、企业真题
2.1 数据结构相关
1. 链表和数组有什么区别腾*
所谓数组就是相同数据类型的元素按一定顺序排列的集合
所谓链表链表是一种物理存储单元上非连续、非顺序的存储结构数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点链表中每一个元素称为结点组成结点可以在运行时动态生成。每个结点包括两个部分一个是存储数据元素的数据域另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构操作复杂。由于不必须按顺序存储链表在插入的时候可以达到O(1)的复杂度比另一种线性表顺序表快得多但是查找一个节点或者访问特定编号的节点则需要O(n)的时间而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。
2. 栈是如何运行的(西*信息技术)
先进后出。属于ADT(abstract data type)可以使用数组、链表实现栈结构
2.2 List集合源码相关
1. ArrayList的默认大小是多少以及扩容机制顺*、凡*科技
类似问题说说ArrayList的扩容机制吧(国*电网)讲一下ArrayList的扩容机制*实在ArrayList的扩容机制为什么是10为什么是1.5倍*软国际ArrayList是一个动态数组在使用的过程中它会去根据情况动态的改变集合的大小。
ArrayList的默认初始容量为10注意当我们刚创建一个ArrayList的时候它的容量大小为0只有在执行第一次add操作时才会扩容到10;
2. ArrayList的底层是怎么实现的?腾*
类似问题
集合类的ArrayList底层安全不安全扩容初始大小添加删除查询是怎么操作的底层是什么组成的
湖**利软件、汇*云通、猎*、苏州***动、上海*进天下、北京博*软件、*科软、大连*点科技、中*亿达、德*物流、天*伟业、猫*娱乐ArrayList的底层主体就是一个Object数组对ArrayList的所有底层操作就是基于数组实现的
建议ArrayList(int capacity){}
3. 在ArrayList中remove后面几个元素该怎么做?惠*、中*亿达
前移。
4. ArrayList1.7和1.8的区别拓*思
类似于饿汉式、懒汉式
5. 数组和 ArrayList 的区别阿*、*科软
ArrayList看做是对数组的常见操作的封装。
6. 什么是线程安全的List(平*金服)
Vector线程安全的。
ArrayList线程不安全。---- 使用同步机制处理。
HashMap:线程不安全。 ---- 使用同步机制处理。----- JUC:ConcurrentHashMap2.3 HashMap集合源码相关
1. 说说HahMap底层实现(新*股份、顺*、猫*娱乐)
类似问题HashMap的实现讲一下腾*上海**网络说说HashMap的底层执行原理滴*纬*软件上海*想*昂*蝶**云宇*科技*东数科猎*网详细说一下 HashMap 的 put 过程*度Java中的HashMap的工作原理是什么北京中**译咨询集合类的HashMap底层安全不安全扩容初始大小添加删除查询是怎么操作的底层是什么组成的湖**利软件HashMap 的存储过程爱*信、杭州*智Hashmap底层实现及构造汇**通、猎*、苏州博*讯动、上海*进天下、北京博*软件、*科软、大连*点科技、中*亿达、德*物流、天*伟业、猫*娱乐HashMap的实现原理腾*、阿*HaspMap底层讲一讲*米说一下HashMap的实现扩容机制*节讲一下 HashMap 中 put 方法过程阿*略。建议以JDK8为主说明。
2. HashMap初始值16临界值12是怎么算的软**力
16从底层源码的构造器中看到的。
12threshold使用数组的长度*加载因子(loadFactor)
3. HashMap长度为什么是2的幂次方(国*时代)
为了方便计算要添加的元素的底层的索引i。
4. HashMap怎么计算哈希值和索引扩容机制怎么解决hash冲突*软国际、中软*腾
类似问题HashMap key的哈希冲突了怎么做新*股份HashMap的默认大小是多少以及扩容机制顺*、凡*科技讲一下HashMap的扩容机制好实*Hash 表又叫做“散列表”它是通过 key 直接访问在内存存储位置的数据结构 在具体实现上我们通过 hash 函数把 key 映射到表中的某个位置来获取这个位置的数据从而加快查找速度
链式寻址法。是一种非常常见的方法简单理解就是把存在 hash 冲突的 key 以单向链表的方式来存储比如 HashMap 就是采用链式寻址法来实现的。开放寻址法也称为线性探测法。就是直接从冲突的数组位置向下去寻找一个空的数组下标进行数据的存储在ThredLocal里面有使用到这个线性探测法。
5. HashMap底层是数组链表有数组很快了为什么加链表润*软件
因为产生了哈希冲突。解决方案使用链表的方式。保证要添加的元素仍然在索引i的位置上。
6. HashMap为什么长度达到一定的长度要转化为红黑树*度
类似问题HashMap为什么用红黑树*软国际红黑树的常用操作的时间复杂度O(logn)比单向链表的O(n)效率高。
7. HashMap什么时候扩充为红黑树什么时候又返回到链表汉*
类似问题HashMap什么时候转换为红黑树杭州*智公司当HashMap中相同hashcode值的数据超过多少时会转变成红黑树百*云创什么时候是数据链表什么时候是红黑树*软国际索引i的位置的链表长度超过8且数组长度达到64需要索引i位置要变成红黑树。
当索引i的位置元素的个数低于6时要红黑树结构转为单向链表。为什么节省空间。
8. 在 JDK1.8中HashMap的数据结构与1.7相比有什么变化这些变化的好处在哪里海*科
① 在jdk8中当我们创建了HashMap实例以后底层并没有初始化table数组。当首次添加(key,value)时进行判断
如果发现table尚未初始化则对数组进行初始化。
② 在jdk8中HashMap底层定义了Node内部类替换jdk7中的Entry内部类。意味着我们创建的数组是Node[]
③ 在jdk8中如果当前的(key,value)经过一系列判断之后可以添加到当前的数组角标i中。如果此时角标i位置上有元素。在jdk7中是将新的(key,value)指向已有的旧的元素头插法而在jdk8中是旧的元素指向新的(key,value)元素尾插法。 七上八下
④ jdk7:数组单向链表jk8:数组单向链表 红黑树什么时候会使用单向链表变为红黑树如果数组索引i位置上的元素的个数达到8并且数组的长度达到64时我们就将此索引i位置上的多个元素改为使用红黑树的结构进行存储。为什么修改呢红黑树进行put()/get()/remove()操作的时间复杂度为O(logn)比单向链表的时间复杂度O(n)的好。性能更高。什么时候会使用红黑树变为单向链表当使用红黑树的索引i位置上的元素的个数低于6的时候就会将红黑树结构退化为单向链表。9. HashMap的get()方法的原理?顺*
参考put()
2.4 hashCode和equals
1. hashcode和equals区别海*供应链管理
一、hashCode()和equals()是什么
hashCode()方法和equals()方法的作用其实一样在Java里都是用来对比两个对象是否相等一致。
二、hashCode()和equals()的区别
下边从两个角度介绍了他们的区别一个是性能一个是可靠性。他们之间的主要区别也基本体现在这里。
2. hashCode() 与 equals() 生成算法、方法怎么重写阿*校招
进行equals()判断使用的属性通常也都会参与到hashCode()的计算中。
尽量保证hashCode()的一致性。使用IDEA自动生成hashCode()自动使用相关的算法。
3. 说一下equals和的区别然后问equals相等hash值一定相等吗hash值相等equals一定相等吗南*电网、上海*智网络
equals相等hash值一定相等吗? 是
hash值相等equals一定相等吗不一定
2.5 Set集合源码相关
1. HashSet存放数据的方式拓*软件
底层使用HashMap。说一下HashMap
2. Set是如何实现元素的唯一性湖**利软件
set保证里面元素的唯一性其实是靠两个方法一是equals()和hashCode()方法
往set里面添加数据的时候一般会有隐式的操作
先是判断set集合中是否有与新添加数据的hashcode值一致的数据
如果有那么将再进行第二步调用equals方法再进行一次判断
假如集合中没有与新添加数据hashcode值一致的数据那么将不调用eqauls方法
3. 用哪两种方式来实现集合的排序凡*科技
类似问题集合怎么排序北京中**信科技自然排序、定制排序。