在Java集合中,ArrayList是最常用到的数据结构,无论是在日常开发还是面试中,但是很多人对它的源码并不了解。下面提问几个问题,检验一下大家对ArrayList的了解程度。 ArrayList的初始容量是多少?(90%的人都会答错) ArrayList的扩容机制 并发修改ArrayList元素会有什么问题 如何快速安全的删除ArrayList中的元素…
写在前面 如果你和我一样,也在准备高级Java开发工程师的面试,那么这篇文章属于必读内容,不必去劳心劳力准备很多的面试八股,只需要理解这篇文章,并且在面试的时候能复述明白,应付面试还是非常轻松的。文章有点长,需要有耐心看完,建议先收藏起来,以防迷路。 核心内容 本篇文章的核心内容主要包含以下几个部分:…
前言 在Java开发工程师面试中,特别是涉及到Apache Kafka的部分,面试官可能会从基础知识、架构理解、实际应用、故障排查和性能优化等多个维度来考察您的能力。这篇文章会将一些大概率被问到的面试题目梳理出来,并且告诉应该怎么回答它,不管你求职者在准备面试,还是面试官在准备招聘,这篇文章都非常值得一读,感觉还不错,别忘了收藏起来,以防迷路找不到。…
1. 分配内存空间 可以使用allocate() 和 allocateDirect()方法为ByteBuffer分配空间,其他buffer类也有该方法 allocate() : 使用的是java的堆内存,堆内字节缓冲区,读写效率低,会受到GC的影响 allocateDirect()…
在日常工作中,我们经常会遇到需要生成树形结构的需求,例如:部门树、菜单树等,我们以往的实现方式是写一个递归算法来实现,但是如果这样的需求多了,我们难不成要给每个需求都写一个递归算法来实现吗?显然这是不合理的,我们这样操作会造成很多的冗余代码。那么我们有没有更好的实现思路呢?在这里我分享一种思路,也欢迎大家来一起讨论 思路剖析…
前言 Java NIO有两种解释: 一种叫非阻塞IO(Non-blocking I/O) 另一种叫新的IO(New I/O) 其实两种概念也是相同的。 一、概述 Java NIO是从Java1.4版本开始引入的一个新的IO API,可以代替标准的IO API。 NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,…
我发现,“各领风骚数百年,一代新人换旧人”是任何事物的底层逻辑,Java面试八股文也不例外。 前几年,但凡面试中问到多线程相关内容,那一定少不了“说下线程池7大参数的作用”,现在已经换成了“用过CompletableFuture吗?说说你对它的理解”。…
本文不讨论对错,只讲骚操作。 有的方法看看就好,知道可以这么用,但是否应用到实际开发中,那就仁者见仁,智者见智了。 一万个读者就会有一万个哈姆雷特,希望这篇文章能够给您带来一些思考。 耐心看完,你一定会有所收获。 @onX 例如 onConstructor , oMethod , 和 onParam…