面试官: Exchanger在项目中有使用过吗?说说看(源码剖析)
前言目前正在出一个Java多线程专题长期系列教程,从入门到进阶含源码解读, 篇幅会较多, 喜欢的话,给个关注❤️ ~Java提供了一些非常好用的并发工具类,不需要我们重复造轮子,本节我们讲解Exchanger,一起来看下吧~ExchangerExchanger类用于两个线程交换数据,支持泛型,下面我们通过例子感受一下:public class ExchangerTest { public...
从面试角度分析LinkedList源码
注:本系列文章中用到的jdk版本均为java8LinkedList类图如下:LinkedList底层是由双向链表实现的。链表好比火车,每节车厢包含了车厢和连接下一节车厢的连接点。而双向链表的每个节点不仅有指向下一个节点的指针,还有指向上一个节点的指针。在LinkedList源码中有一个Node静态类,源码如下:private static class Node<E> { E ...
从面试角度分析ArrayList源码
注:本系列文章中用到的jdk版本均为java8ArrayList类图如下:ArrayList的底层是由数组实现的,数组的特点是固定大小,而ArrayList实现了动态扩容。ArrayList部分变量如下,在下面的分析中会用到这些变量。/** * 默认容量 */ private static final int DEFAULT_CAPACITY = 10; /** * 空的对象数组 */ ...
阿里面试官:说说 Spring 源码中 BeanFactory 的创建流程
一、获取BeanFactory子流程时序图如下网络异常,图片无法展示|二、BeanDefinition加载解析及注册子流程1.该子流程涉及到如下几个关键步骤Resource定位:指对BeanDefinition的资源定位过程。通俗讲就是找到定义Javabean信息的XML文件,并将其封装成Resource对象。BeanDefinition载入 :把用户定义好的Javabean表示为IoC容器内部....
<Java八股文面试>ArrayList源码 | Iterator源码 | LinkedList和ArrayList对比(下)
2.2 fail-fast和fail-safe源码剖析fail-fast源码分析当使用增强for迭代list集合时,会先创建一个Itr对象(属于Iterator类),为属性expectedModCount初始化.expectedModCount的初始值为list中的modCount (modCount 是list的成员变量,记录list被修改的次数)之后每次迭代list就是用Itr对象.先判断h....
<Java八股文面试>ArrayList源码 | Iterator源码 | LinkedList和ArrayList对比(上)
1. ArrayList1.1 ArrayList 扩容规则介绍ArrayList() 会使用长度为零的数组ArrayList(int initialCapacity) 会使用指定容量的数组public ArrayList(Collection<? extends E> c) 会使用 c 的大小作为数组容量add(Object o) 首次扩容为 10,再次扩容为上次容量的 1.5 倍....
Java面试分享之List源码会问哪些问题?
前言List作为我们开发中经常使用的集合类型,在面试中也会经常被问到,作为一个熟读八股文并精通源码的靓仔,心中对 List 的总体结构和细节有所了解的话,基本面试问题都不大。1 面试题1.1 谈谈你对 ArrayList 的理解?多面试官喜欢这样子开头,考察面试同学对 ArrayList 有没有总结经验,介于 ArrayList 内容很多,建议先回答总体架构,再从某个细节出发作为突破口,比如这样....
关于Java面试中的ArrayList底层结构、底层源码的高频热点面试题解析
一、ArrayList的底层结构 ArrayList实现了 "List" 接口 ArrayList:底层数据结构是"数组",特点是"查询快,增删慢"二、ArrayList的底层源码分析面试热点问题(1)ArrayList底层是什么数据结构? ArrayList底层是一个Object数组: "transient Object[] eleme...
常见面试题梳理:源码角度彻底揭秘ThreadLocal
序言ThreadLocal在日常开发中还是比较常见的,本文将从源码的角度彻底揭秘ThreadLocal,并会分享一些较为常见的面试题,let's go。ThreadLocal是什么?ThreadLocal隶属于lang包,它的主要功能是为每个线程提供一个私有的局部变量,这个变量在线程间相互隔离,互不影响。主要解决的就是单例情况下全局变量的线程安全问题ThreadLocal的底层实现set方法pu....
【从Java面试题看源码】-HashMap 初始容量 计算方法
HashMap 初始容量 计算方法如果在new HashMap的时候,没有指定初始initialCapacity,则初始initialCapacity为16,负载因子为0.75,下次扩容阈值为 16*0.75=12这个初始容量 不一定等于初始化完成后底层数组实际的容量,因为存在阈值的计算,方法如下;也不是初始容量是多少开始就能存多少个元素,因为存在负载因子,在底层数组还没满的时候就会进行扩容。.....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
面试更多源码相关
Java面试那些事儿
手把手带您学习Java,开启编程之路。
+关注