
java
兵兵有李_xjtu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java学习笔记——容器之List
本文主要是分析实现List接口的ArrayList、LinkedList、Vector、Stack的源码。 1. ArrayList ArrayList是使用Object数组保存数据的,并且加上了transient关键字,所以在ArrayList序列化时,elementData不会直接被序列化 transient Object[] elementData;原创 2017-11-28 22:58:40 · 251 阅读 · 0 评论 -
JAVA学习笔记——容器之Map
本文是实现Map的几个接口的类的总结,文中引用了潘威威的博客的大部分内容,在此表示感谢。 Map的整体结构 Map是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。 Map没有继承Collection接口。 AbstractMap:实现了Map接口的抽象类。Map的基本实现,其他Map的实现类可以通过继承AbstractMap来减少编码量。Sort原创 2017-12-02 16:55:41 · 362 阅读 · 0 评论 -
Java学习笔记——容器
本文是对于JAVA容器的全面总结,主要内容均来源于他人博客,为了便于自己学习才拷贝到自己博客目录下,但是中间也加入了一些源码分析。 Java容器家族图 容器从最大的概念来分:分为Collection和Map,区别就是Collection是一个槽的,Map是两个槽的(键值对) Collection划分为:List,Set,Queue List接口常见有:转载 2017-11-27 16:18:20 · 261 阅读 · 0 评论 -
Java学习笔记——容器之Queue
Queue是一种很常见的数据结构类型,在Java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约。实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现。还有的适用于多线程的环境。java中具有Queue功能的类主要有如下几个:AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, Linke原创 2017-12-03 21:55:50 · 1109 阅读 · 0 评论 -
Java学习笔记——并发之ThreadLocal
ThreadLocal是一种线程本地存储机制,可以为使用相同变量的每个不同线程都创建不同的存储。因此,如果你有5个线程都要使用变量x锁表示的对象,线程本地存储就会产生5个用于x的不同存储块。 1. ThreadLocal的用法 ThreadLocal在是泛型类,可以使用set方法设置变量的值,使用get方法获取变量值,示例代码如下: public class ThreadLoca原创 2017-12-05 23:18:04 · 532 阅读 · 0 评论 -
JAVA学习笔记——并发之JAVA内存模型JMM
JAVA内存模型(JAVA Memory Model)简称JMM,JMM规定了线程的工作内存和主内存的交互关系,以及线程之间的可见性和程序的执行顺序(在术语上与JAVA运行时内存分布有区别,后者是指堆、方法去、线程栈等如何分配内存的)。 JAVA内存模型 JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),用于存储线程私有的...转载 2018-09-04 23:14:19 · 308 阅读 · 0 评论 -
JAVA学习笔记——并发基础知识点
1.并发编程三要素 原子性原子,即一个不可再被分割的颗粒。在Java中原子性指的是一个或多个操作要么全部执行成功要么全部执行失败。 有序性程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行重排序) 可见性当多个线程访问同一个变量时,如果其中一个线程对其作了修改,其他线程能立即获取到最新的值。 2. 线程的五大状态 创建状态当用 new 操作符创建一个线程的时候 就绪状态调用 ...转载 2018-08-30 22:47:12 · 287 阅读 · 0 评论 -
JAVA学习笔记——并发之Synchronized底层优化(偏向锁、轻量级锁)
一、重量级锁 上篇文章中向大家介绍了Synchronized的用法及其实现的原理。现在我们应该知道,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,这就是为什么Synchron...转载 2018-08-30 22:48:54 · 198 阅读 · 0 评论 -
JVM源码分析之JVM启动流程
前言 执行Java类的main方法,程序就能运行起来,main方法的背后,虚拟机究竟发生了什么?如果你对这个感兴趣,相信本文会给你一个答案,本文分析的openjdk版本为openjdk-7-fcs-src-b147-27 class BootStrap { public static void main(String[] args) { for (String str...转载 2018-08-29 23:07:28 · 10647 阅读 · 1 评论