
JDK
文章平均质量分 85
大家一起打怪升级
努力学习,进入自己喜欢的工作环境,做自己喜欢的工作
展开
-
Java的自旋锁的实现
自旋锁是什么:java自旋锁实际上就是死循环获取到代码的执行权限,下面的代码是我仿照着JDK中的AtomicInteger类,自己再编写的一个线程安全的自旋锁的Integer类,并实现了其加法和自增方法package com.jy.springtest.lock;import sun.misc.Unsafe;import java.lang.reflect.Field;/** * @author jy */public class MyAutomicInteger { priva原创 2022-03-07 14:43:14 · 2111 阅读 · 2 评论 -
JAVA Map详解之TreeMap(红黑树)
前言上一章的HashMap并没有提到红黑树,就是因为本章的TreeMap就是一棵红黑树。TreeMap是存储键值对(key-value结构)的自平衡二叉树,又称红黑树。TreeMap的key是有序且不可为空的,但是value是可以为空的。TreeMap的类图结构如下TreeMap类上的注释有两个地方需要注意:1.TreeMap是一个基于NavigableMap实现的红黑树,TreeMap的排序方式有两种:(1)基于key的自然排序(2)在创建TreeMap的时候提供一个比较器,使用哪种排序取决于你使原创 2020-12-29 14:43:38 · 2107 阅读 · 4 评论 -
Map接口认识-HashMap
前言:本文源码为JDK1.8,因为目前绝大数的企业的JDK已经都是1.8以上了,还在用1.7的已经很少了,并且1.7和1.8对于HashMap的区别大家都已经很清楚了,我也没仔细去看过1.7的源码,所以就不说1.7了,来直接上1.8的类结构图首先根据这个总结几点:HashMap存储是无序的key,value结构数据的,键值不可重复,但可以为nullHashMap的成员变量中size,table均为共享变量,并且相关的方法没有加同步措施,故HashMap线程不安全HashMap数据存储的基本原创 2020-12-25 16:56:16 · 249 阅读 · 0 评论 -
Java List接口详解
前言说到List我们都会提到它的顶级结构collection,collection也就是我们经常说到的java集合框架之一,通常我们在面试或平常都会说collection下有list和set接口,但是实际代码是这样的么,我们来看看真实的collection类图collection类下的子类其实不少,只不过我们实际工作中经常用到的就是我标红的三种,List,Set,Queue,今天我们的主角就是其中之一的List接口,既然今天要看List,首先我们来看一下List的类图List中我们常用的子类有Ar原创 2020-12-24 15:47:42 · 1323 阅读 · 5 评论 -
JDK8的一些新特性
JDK8特性1.Map的改造、方法区的新实现以及接口的新规定map的新实现这个其实大家面试经常会遇到,但是其实也比较简单,记住就ok了(1)Map的底层由数组加链表的方式改为了数组加链表加红黑树的实现方式(2)对key进行hash,然后再根据数组长度取余之后的链表的头插法改为了尾插法(3)ConcurrentHashMap由原来的分段加Hashtable的实现方式,变为了跟Map一样的方式,只是数据的线程安全采用了cas锁的机制链表改红黑树的条件是链表的长度超过8,原因是,链表长度过长时,查询原创 2020-10-18 03:55:36 · 585 阅读 · 8 评论