Yige

Yige

Build

Java基础

cover

synchronized原理

synchronized 可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性 Java 对象头和 monitor Java 对象头和 monitor 是实现 synchronized 的基础 对象头 Hotspot…

常见锁的分类

可重入 / 不可重入锁 参考链接: 究竟什么是可重入锁 广义上的可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提得是同一个对象或者 class) 在 Java 中ReentrantLock和synchronized都是可重入锁…
cover

Java并发的基本概念

硬件层次 由于 CPU 执行指令的速度是很快的,但是内存访问的速度就慢了很多,相差的不是一个数量级,于是为了不让内存成为计算机程序处理的瓶颈,通过在 CPU 和内存之间增加高速缓存的方式来解决 缓存一致性 在 CPU 和主存之间增加缓存,在多线程场景下就可能存在缓存一致性问题…
cover

Java中的异常

异常的分类 Java 通过面向对象的方式对异常进行处理,Java 把异常按照不同的类型进行分类。所有异常类的基类是 Throwable 类,两大子类分别是 Error 和 Exception: Error是程序无法处理的错误,例如 OOM 等 Exception是程序本身可以…
Java集合汇总
ArrayList 和 Vector 的区别 List,Set,Map 三者的区别 Set 里的元素是不能重复的,用什么方法来区分重复与否 ArrayList,LinkedList 区别 Collection 和 Collections 的区别 Enumeration 和…
ConcurrentHashMap和Hashtable
ConcurrentHashMap 是如何实现线程安全的 ? JDK1.5 中的实现 使用Segment(extends ReentrantLock)来实现 使用分段锁技术, 将 ConcurrentHashMap 将锁一段一段的存储,然后给每一段数据配一把锁(segment…
cover
cover
cover

HashMap

一、基础概念 在 JDK8 及以后的版本中,HashMap 引入了红黑树结构,其底层的数据结构变成了由数组+链表变成数组+链表和数组+红黑树 HashMap 整体结构: JDK1.8 后 HashMap 的红黑树结构 红黑树的转换 参考: https://juejin…
ArrayList和LinkedList
ArrayList 一、概述: 继承了 AbstractList,实现了 List 接口,它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能 除了列表接口外,该类提供了一种方法来操作该数组的大小来存储该列表中的数组的大小 实现Serializable 接口,这意味着…
Java集合类基本概念
Java 中的集合框架大类可分为Collection和Map;两者的区别: Collection 是单列集合;Map 是双列集合 Collection 中只有 Set 系列要求元素唯一;Map 中键需要唯一,值可以重复 Collection 的数据结构是针对元素的;Map…
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.