Java
Lerendan
这个作者很懒,什么都没留下…
展开
-
Java 集合 - HashTable 解析
一、前言Hashtable 与 HashMap 都是 Map 族中较为常用的实现,也都是 Java Collection Framework 的重要成员,它们的本质都是 链表数组。下面我们来学习一下 HashTable。二、HashTable 解析2.1 定义Hashtable 和 HashMap 既是 Java Collection Framework 的重要成员,也是 M...原创 2020-02-09 22:52:29 · 365 阅读 · 0 评论 -
Java 集合 - ConcurrentHashMap 解析
一、前言ConcurrentHashMap 是 java.util.concurrent 包的重要成员,它是 HashMap 的一个线程安全的、支持高效并发的版本。在默认理想状态下,ConcurrentHashMap 可以支持 16 个线程执行并发写操作及任意数量线程的读操作。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制,...原创 2020-02-09 20:30:20 · 573 阅读 · 0 评论 -
Java 集合 - LinkedHashMap 解析
一、前言上一篇《Java 集合 - HashMap 解析》我们学习了 HashMap,HashMap 是无序的,当我们希望有顺序地去存储 key-value 时,就需要使用 LinkedHashMap 了。LRU 算法就是利用 LinkedHashMap 的有序性。下面我们来学习一下 LinkedHashMap。二、源码解析我们先看一下 LinkEdHashMap 的数据结构图:...原创 2020-02-06 23:27:59 · 356 阅读 · 0 评论 -
Java 集合 - HashMap 解析
一、前言HashMap 是我们日常中最常见的 map,它是线程不安全的,下面我们一起学一下 HashMap 的原理。二、Java 1.7 中 HashMap 解析2.1 HashMap 的数据结构HashMap实际上是一个“链表的数组”的数据结构,每个元素存放链表头结点的数组,即数组和链表的结合体。从上图中可以看出,HashMap 底层就是一个数组结构,数组中的每一...原创 2019-12-14 10:18:44 · 263 阅读 · 0 评论 -
Java 虚拟机 - 垃圾回收知识梳理
一、为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。二、哪些内存需要回收?哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象。那么如何找到这些对象?1、引用计数法这个算法的实现...原创 2018-10-07 20:38:06 · 435 阅读 · 0 评论 -
Java 虚拟机 - 运行时内存区域
运行时内存区域主要分为以下几个部分:一、程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。由于 Java 虚拟机的多线程是通过线程流转切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一...原创 2018-10-07 20:29:17 · 291 阅读 · 0 评论 -
类加载机制(二)Android 中的 ClassLoader
类加载器(一)Java中的ClassLoader前言在上一篇文章我们学习了Java的ClassLoader,很多同学会把Java和Android的ClassLoader搞混,甚至会认为Android中的ClassLoader和Java中的ClassLoader是一样的,这显然是不对的。这一篇文章我们就来学习Android中的ClassLoader,来看看它和Java中的ClassLoade...原创 2018-08-12 18:37:05 · 356 阅读 · 0 评论 -
类加载机制(一)Java 中的 ClassLoader
目录一、前言二、ClassLoader的类型2.1、Bootstrap ClassLoader2.2、Extensions ClassLoader2.3、App ClassLoader2.4、Custom ClassLoader三、ClassLoader的继承关系四、双亲委托模式4.1、双亲委托模式的特点4.2、双亲委托模式的好处...原创 2018-08-12 17:57:28 · 849 阅读 · 0 评论 -
排序算法(五)快速排序
public class FastSort { public static void main(String[] args) { System.out.println("Hello World"); int[] a = {12, 20, 5, 16, 15, 1, 30, 45, 23, 9}; int start = 0; ...原创 2018-08-02 15:13:32 · 154 阅读 · 0 评论 -
Java基础 - String、StringBuilder、StringBuffer
简介继承结构String 解析先看看 String 的源代码public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ ...原创 2018-07-28 20:53:10 · 197 阅读 · 0 评论 -
Java基础 - 关于 equals()、hashcode() 重写
Java 中重写 equals() 方法同时要重写 hashcode() 方法equals()Object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,...原创 2018-07-24 10:55:55 · 159 阅读 · 0 评论