![](https://img-blog.csdnimg.cn/87687b0936dd45b5aea09321b2cc8fbd.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 89
Java基础
码拉松
这个作者很懒,什么都没留下…
展开
-
【基础面试题】深入理解深拷贝和浅拷贝
深入理解深拷贝和浅拷贝原创 2021-12-17 09:15:00 · 1960 阅读 · 1 评论 -
数组和链表到底应该如何选择?
前言对于数组和链表这两种最基本的数据结构你应该并不会陌生,尽管他们看起来都非常的简单,但是无论是我在与别人交流或者面试中问到一些相关的问题时,我发现大多数人并没有完全的理解他们两者之间的区别,所以决定写这样一篇文章来对两者进行分析与比对。数组先来说说数组,我们都知道数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。线性表,顾名思义就是一种线性的结构只有前后两个方向,链表实际上也是线性表结构,还有队列、栈这些都是。随机访问我们都知道数组可以做到O(1)的随机访问,那原原创 2021-09-14 23:42:52 · 742 阅读 · 0 评论 -
ArrayBlockingQueue中几种添加和取出元素方法的解析
public class TestBlockingQueue { public static void main(String[] args) { testAdd(); System.out.println("=====================我是分隔符========================="); testOffer(); System.out.println("=====================我是分原创 2020-11-09 11:39:58 · 1054 阅读 · 0 评论 -
HashSet底层实现与源码分析
HashSetHashSet是Set接口的实现类,和List集合一样都是隶属于Collection集合框架下的一个分支,也是日常开发中常用的集合类。HashSet特点保证集合中的元素不会重复集合中的元素无序这两点刚好和我们常用的ArrayList相反,ArrayList中的元素通常都是允许重复且有序的,从两个集合类的底层数据结构来看,就能明白为什么是这样了,ArrayList底层是数组,而HashSet底层实际上是HashMap来实现的,所以他们各自会有如上的特点。构造方法最常用的无参构造原创 2020-11-06 11:25:18 · 184 阅读 · 0 评论 -
ArrayList源码深入分析
ArrayList数据结构ArrayList就是一个可变的数组结构。ArrayList构造方法1、可指定初始大小。2、无参构造方法,默认大小为10。3、copy一个list。 /** * Constructs an empty list with the specified initial capacity. * * @param initialCapacity the initial capacity of the list * @throws原创 2020-08-18 18:18:43 · 217 阅读 · 0 评论 -
ArrayList和HashMap的扩容机制
基于JDK1.8版本ArrayList和HashMap应该是我们日常开发中最常用到的两种数据集合类,一种基于数组的结构,一种是数组+链表结构+红黑树,两种集合类型都要能够提供容量自动扩充的方案,本文主要就来分析一下关于这两种集合扩容方式。ArrayList构造方法ArrayList支持指定容量的构造方法,如果使用无参的构造方法,那么默认的容量大小为:10。无参构造方法 public ArrayList() { this.elementData = DEFAULTCAPACI原创 2020-07-30 16:41:49 · 2206 阅读 · 0 评论 -
HashMap1.8源码深入分析
在分析源码之前有必要先了解一下HashMap的数据结构数据结构清除后再了解几个重要的属性1、DEFAULT_INITIAL_CAPACITYCAPACITY可以理解hashmap槽的数量,table长度,默认为16,且必须为2的次方。static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16HashMap的几种构造方法1、无参构造方法,也是我们最常用的方法所有属性都为默认值public HashMap() {原创 2020-06-15 15:24:39 · 2402 阅读 · 0 评论 -
BufferedOutputStream深入分析
FileOutputStream和BufferedOutputStream都提供了一系列的将数据写入文件的方式,并且我们都知道BufferedOutputStream要比直接使用FileOutputStream写入速度要快,本文通过案例实际演示一下两者的区别。代码准备public class BufferFile { public static void main(String[] args) { //每次向文件中写入一个8字节的数组 byte[] bytes原创 2020-10-13 15:27:28 · 2228 阅读 · 3 评论