
J2SE
Life journey
技术没有边界
展开
-
JDK1.7中的HashMap详细分析
JDK1.7中的HashMap详细分析前言集合存储原理JDK7 HashMap源码分析属性信息构造方法put方法扩容扩容数组移动图CreateEntryEntry的基本结构get获取元素删除元素remove前言现在一般进入java开发这个行业的所有同行工作者基本可以说100%都接触过HashMap,可以说HashMap是我们在一般的应用开发中用的是最多的一种集合类框架,像ArrayList和Hashmap可能是用的最多的,这两种集合框架都是非线程安全的,也就是说这两种集合框架只能用于单线程的环境下,在多原创 2020-11-29 14:01:38 · 1078 阅读 · 0 评论 -
LinkedList实现原理
LinkedList实现原理LinkedListLinkedList源码分析基本属性构造方法addAll方法AddAdd指定位置添加GETSET通过指定位置迭代删除元素1.AbstractSequentialList的remove2.Deque 中的Remove双端链表(队列Queue)LinkedListLinkedList都是List下面的集合子类,LinkedList中和ArrayList在实现上有很大的区别,ArrayList是维护了一个Object的数组,而LinkedList在实现上维护了一原创 2020-11-28 22:28:41 · 653 阅读 · 0 评论 -
ArrayList的实现原理
ArrayList的实现原理ArrayList和LinkedList比较ArrayLIst源码分析ArrayList的标记接口RandomAccessCloneableSerializableArrayList属性分析ArrayList构造方法添加原始add(尾部添加)指定下标添加元素元素删除迭代器Iterator不可变集合ListArrays.asList什么是fast-failArrayList和LinkedList比较ArrayList可以说是我们平时开发过程中用的最多了一个集合类了,其中Arra原创 2020-11-28 22:22:08 · 471 阅读 · 0 评论 -
并发编程之条件队列CyclicBarrier(栅栏)
并发编程之条件队列CyclicBarrier(栅栏)CyclicBarrier栅栏Condition队列AQS内部定义了ConditionObjectCyclicBarrier实现原理构造方法Condition.await()signalAllCyclicBarrier执行流程(图解)CyclicBarrier栅栏CyclicBarrier栅栏是AQS中除共享锁、独占锁之外的一种条件锁的一种实现,CyclicBarrier和semaphor以及countDownlatch在实现上有一定的区别,Cycli原创 2020-10-09 11:42:55 · 690 阅读 · 6 评论 -
并发编程之AQS(抽象队列同步器)共享锁
并发编程之AQS(抽象队列同步器)共享锁前言Semaphore信号量Semaphore 的构造semaphore.acquire()doAcquireSharedInterruptibly(int arg)semaphore.release()unparkSuccessor(h)实列分析入队解锁出队CountDownLatchcountDown()await流程图前言在上一遍笔记中详细介绍了AQS抽象队列同步器的独占锁,在AQS中,独占锁的实现是使用ReentrantLock来实现的,那么共享锁在AQS原创 2020-10-09 11:32:47 · 236 阅读 · 0 评论 -
并发编程之AQS(抽象队列同步器)独占锁
并发编程之AQS(抽象队列同步器)独占锁前言AQS原理同步器队列结构ReentrantLock类构造队列的数据结构信息Nodelock过程lock图解过程unlock过程unlock图解过程总结前言在介绍AQS之前,我专门写了CAS、Volatile、synchronized、阻塞队列,链表以及线程中断的笔记,因为在学习AQS之前,如果对于这些基础的东西不了解的话,那么AQS你是看不懂的,AQS我自己认为还是比较难的,但是只要是学习技术,那么如果都那么简单的话,那也就没有专门来学习的必要了,我也难得写笔原创 2020-09-26 18:22:46 · 404 阅读 · 0 评论 -
并发编程之线程中断&CAS
并发编程之线程中断&CASsynchronized和LOCK的区别线程中断线程中断之唤醒CAS原理什么是CASAtomicInteger(CAS典型使用案例)compareAndSwapInt jvm中的实现CAS缺点什么是ABA问题如何解决ABA问题synchronized和LOCK的区别在前面的笔记中已经记录了synchronized,这个锁是JVM内置的锁,不需要程序员手动释放锁,我们在前面已经知道了synchronized锁主要是使用monitor锁的机制来实现的,而synchroniz原创 2020-09-26 18:02:42 · 321 阅读 · 0 评论 -
String字符串
String字符串常量池class文件常量池运行时常量池String常量池字符数组的存储方式不同方式创建字符串在JVM中的存在形式字符串连接常量池java中的常量池在我的理解中有三种,分别是calss常量池,运行时常量池和string 常量池class文件常量池class文件中的常量池是在硬盘上的,通过javap -verbose xxx.class可以看到:Constant pool: #1 = Methodref #7.#28 // java/lang/原创 2020-08-30 22:26:55 · 182 阅读 · 0 评论 -
JAVA实现Spring IOC 容器技术和AOP切面编程技术
JAVA实现Spring IOC 容器技术和AOP切面编程技术Spring IOC介绍spring AOP自定义spring ioc容器和AOP切面技术实现过程创建注解创建扫描注解父类创建IOC相关的类IOC的创建最后来编写测试类结束语Spring IOC介绍spring ioc技术在目前来说已经是非常成熟的JAVA容器技术了,使用也是非常广泛,可以说目前市场上用了spring,那么IOC是其最核心的部分;IOC全称叫Inversion of Control,是控制反转的意思,平时我们编写java代码时原创 2020-05-21 16:27:01 · 631 阅读 · 5 评论