a745233700的博客

路漫漫其修远兮

Java集合篇:HashMap原理详解(JDK1.8)

概述 JDK 1.8对HashMap进行了比较大的优化,底层实现由之前的“数组+链表”改为“数组+链表+红黑树”,本文就HashMap的几个常用的重要方法和JDK 1.8之前的死循环问题展开学习讨论。JDK 1.8的HashMap的数据结构如下图所示,当链表节点较少时仍然是以链表存在,当链表节点...

2018-12-20 17:16:09

阅读数 165

评论数 0

Java集合篇:集合细节:为集合指定初始容量、asList的缺陷、subList的缺陷

一、为集合指定初始容量: 集合是我们在Java编程中使用非常广泛的,它就像大海,海纳百川,像万能容器,盛装万物,而且这个大海,万能容器还可以无限变大(如果条件允许)。当这个海、容器的量变得非常大的时候,它的初始容量就会显得很重要了,因为挖海、扩容是需要消耗大量的人力物力财力的。同样的道理,Col...

2018-10-25 23:41:38

阅读数 80

评论数 0

Java集合篇:fail-fast机制 与 fail-safe

在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因...

2018-10-25 23:03:09

阅读数 50

评论数 0

Java集合篇:Map总结

相关阅读: Java基础篇:hashCode的作用 Java集合篇:HashMap原理详解(JDK1.7及之前的版本) Java集合篇:HashMap原理详解(JDK1.8) Java集合篇:Hashtable原理详解 、Hashtable与HashMap的区别 Java集合篇:Conc...

2018-10-25 21:48:01

阅读数 134

评论数 0

Java集合篇:List总结

相关阅读: Java集合篇:ArrayList详解 Java集合篇:LinkedList源码分析 Java集合篇:Vector Java集合篇:Stack   一、List接口概述: List接口,称为有序的Collection,也就是序列,该接口可以对列表中的每一个元素的插入位置进...

2018-10-25 17:53:15

阅读数 90

评论数 0

Java集合篇:ArrayList详解

一、ArrayList概述: ArrayList是实现了List接口的动态数组,所谓动态数组就是他的大小是可变的。实现了所有可选列表操作,并允许包括Null在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量...

2018-10-25 16:51:15

阅读数 75

评论数 0

Java集合篇:Stack

在Java中Stack类表示后进先出(LIFO)的对象堆栈。栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的。每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下:  Stack通过五个操作对Vector进行扩展,允许将向量视为堆栈。这个五个操作如下: 操作 操作...

2018-10-21 14:11:31

阅读数 369

评论数 0

Java基础篇:Iterator迭代器

一、什么是Iterator: 迭代器(Iterator)是一个对象,它的工作是遍历并目标序列中的对象,它提供了一种访问一个容器(container)对象中的各个元素的方法,把访问逻辑从不同类型的集合类中抽象出来,又不必暴露该对象内部细节。通过迭代器,开发人员不需要了解容器底层的结构,就可以实现对...

2018-10-21 13:47:57

阅读数 57

评论数 0

Java集合篇:Vector

一、Vector简介: (1)Vector可以实现可增长的对象数组。与数组一样,可以使用整数索引进行访问的组件。不过,Vector的大小是可以增加或者减小的,以便适应创建Vector后进行添加或者删除操作。 (2)同时Vector是线程安全的!底层使用的是synchronized进行加锁。 ...

2018-10-20 23:03:45

阅读数 32

评论数 0

Java基础篇:hashCode的作用

1、hashCoed 的特性: (1)HashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,HashCode经常用于确定对象的存储地址; (2)如果两个对象相同, equals方法一定返回true,并且这两个对象的HashCode一定相同; (3)两个对象的H...

2018-10-19 19:39:44

阅读数 894

评论数 0

Java集合篇:Hashtable原理详解(JDK1.8)

(本文使用的源码基于JDK1.8的)   一、Hashtable的基本方法: 这部分参考博客:https://blog.csdn.net/chenssy/article/details/22896871 1、定义: HashTable在Java中的定义如下: public class...

2018-10-19 17:07:09

阅读数 99

评论数 0

Java集合篇:HashSet

对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素。HashSet存储元素的顺序并不是按照存入时的顺序,是按照哈希值来存的,所以取数据也是按照哈希值来取得。HashSet集合元素不能是Null。   一、定义: public class HashSet...

2018-10-18 23:36:44

阅读数 50

评论数 0

Java集合篇:ConcurrentHashMap详解(JDK1.8)

(本文使用的源码都是基于JDK1.8的) (基于JDK1.6的版本可以参考这篇文章:https://blog.csdn.net/a745233700/article/details/83120464) ConcurrentHashMap是conccurrent家族中的一个类,由于它可以高效地支...

2018-10-18 04:02:06

阅读数 92

评论数 0

Java集合篇:ConcurrentHashMap详解(JDK1.6)

(本文有关ConcurrentHashMap的源码都是基于JDK1.6的) (基于JDK1.8的版本可以参考这篇文章:https://blog.csdn.net/a745233700/article/details/83123359) 摘要:   ConcurrentHashMap是J.U....

2018-10-18 03:26:55

阅读数 55

评论数 0

Java集合篇:HashMap原理详解(JDK1.7及之前的版本)

(本文有关HashMap的源码都是基于JDK1.6的) 摘要:   HashMap是Map族中最为常用的一种,也是 Java Collection Framework 的重要成员。本文首先给出了 HashMap 的实质并概述了其与 Map、HashSet 的关系,紧接着给出了 HashMap ...

2018-10-17 14:55:31

阅读数 92

评论数 0

Java集合篇:LinkedList源码分析

(注:本文内容基于JDK1.6) 一、概述: LinkedList与ArrayList一样实现List接口,只是ArrayList是List接口的大小可变数组的实现,LinkedList是List接口链表的实现。基于链表实现的方式使得LinkedList在插入和删除时更优于ArrayList,...

2018-10-14 18:44:18

阅读数 54

评论数 0

Java集合篇:集合类介绍

上面的图展示了整个集合大家族的成员以及他们之间的关系。下面就上面的各个接口、基类做一些简单的介绍(主要介绍各个集合的特点,区别)。 一、Collection接口: llection接口是最基本的集合接口,它不提供直接的实现,Java SDK提供的类都是继承自Collection的“子接口”...

2018-10-13 00:34:45

阅读数 134

评论数 0

Java集合篇:Map常用遍历方式 以及 性能对比

一、Map集合常用的遍历方式: 遍历Map集合的常用方式有三种:使用keySet的方式,使用entrySet的方式,使用values()取值的方式,这三种方式中,都有对应的for循环遍历和Iterator遍历的方式取值。 具体用法如下: public class MapTest { p...

2018-10-12 14:54:09

阅读数 719

评论数 0

Java基础篇:数组

一、数组基础知识: 1、什么是数组: 数组,就是一个容器,存放着同一种类型的数据的集合。数组的好处就是可以自动给数组中的元素从0开始编号,方便操作这些元素。数组属于引用变量,并且数组的长度是固定的,数组的使用有四个步骤,声明数组,分配空间,赋值,处理。 2、一维数组的声明与创建: 元素类型...

2018-10-10 16:10:12

阅读数 58

评论数 0

Java基础篇:异常

目录: 一、为什么使用异常: 二、异常体系: 三、异常的捕捉--try、catch、finally: 四、关于异常的题: 五、自定义异常: 六、异常链: 七、异常的使用误区: 八:throw、throws: 九:异常使用指南总结: 一、为什么使用异常: 异常的处理机制可以确保...

2018-10-07 23:04:56

阅读数 94

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭