JAVA杂谈
是残月啊
这个作者很懒,什么都没留下…
展开
-
Java多线程之ThreadLocal
前言在前面几章Java多线程相关的文章中,相信大家已经对多线程有了一定的基本了解,那么我们今天看一个平时工作中可能不太常用或者没有接触到过的一个工具类ThreadLocal。在前面volatie相关的文章中我有提到过JMM内存模型,那么ThreadLocal其实就是在每个线程内部给我们维护一个变量的副本,这时候我们线程操作的变量就都是每个线程内部独有的副本变量,从而达到线程安全的一个效果。但是ThreadLocal还有另一个作用:隐式传参。接下来我们先了解一下ThreadLocal的用法吧。Thread原创 2020-10-27 16:18:33 · 445 阅读 · 1 评论 -
Java多线程之ReentrantLock(二)源码解读
其实,在我们Java中也有一个使用了Java语言开发的一把锁,名字叫ReentrantLock。它位于我们的java.uilt.concurrent包下的一个线程安全的工具类。接上一篇讲,上一篇我们介绍了ReentrantLock的基本用法,并且也通过ReentrantLock底层实现的原理自己手写了一把ReentrantLock。那么本期我们就开始深入的来看一看ReentrantLock核心源码到底是什么样的。首先我们来看ReentrantLock的类结构,不知道大家有沒有注意到,我昨天我昨天.原创 2020-10-08 16:51:36 · 338 阅读 · 0 评论 -
Java多线程之ReentrantLock(一)ReentrantLock介绍及手写ReentrantLock
某一天,李四同学去某一家互联网公司面试。面试官:李同学,你知道Java有哪一个是使用java写的锁并且和sychronized性能差不多?李同学:…面试官:那你知道什么是CAS吗李同学:…面试官:出门右转是电梯自己走吧!什么是ReentrantLock其实,在我们Java中也有一个使用了Java语言开发的一把锁,名字叫ReentrantLock。它位于我们的java.uilt.concurrent包下的一个线程安全的工具类。我们大名鼎鼎的JUC包就是由这位图中的老爷爷写的,Reentr原创 2020-10-05 22:17:54 · 417 阅读 · 2 评论 -
Java多线程之volatile详解(三)
对于JAVA并发编程而言,我们始终要遵守这三种特性的规则。才能使我们的代码不出问题。在上一篇我们通过字节码层面和汇编的层面对volatile进行了一个简单的介绍。那么这一期我们将深入的去给大家介绍一下volatile。代码执行过程首先我们先来了解一下代码的执行过程。我们首先通过JVM的类加载器将类加载到元空间里面,元空间会通过元数据对象在堆内生成一个Class对象。那么CPU是如何执行到我们的代码的呢?首先我们的栈和线程是1:1对应的关系。我们首先会将字节码文件通过字节码执行引擎和JIT将这个字.原创 2020-08-18 21:31:10 · 297 阅读 · 0 评论 -
Java多线程之volatile详解(二)
首先,java中除了synchronized关键字可以保证线程安全,还有一个关键字volatile也可以保证。你可以理解它是一个轻量级的synchronized,但是它不能保证线程的原子性。至于为什么我们稍后再说。在了解volatile之前,我们需要知道JMM内存模型与CPU和内存原创 2020-08-15 23:21:03 · 171 阅读 · 0 评论 -
Java多线程之volatile详解(一)
有一天,张三去某互联网公司面试:面试官:你好,张同学,请问你知道java有哪些关键字可以保证线程安全吗?张三:知道!synchronized关键字可以保证!面试官:还有呢?张三:…面试官:是你自己出门还是我送?首先,java中除了synchronized关键字可以保证线程安全,还有一个关键字volatile也可以保证。你可以理解它是一个轻量级的synchronized,但是它不能保证线程的原子性。至于为什么我们稍后再说。在了解volatile之前,我们需要知道JMM内存模型与CPU和内存C原创 2020-08-11 11:06:34 · 321 阅读 · 0 评论 -
HashMap底层实现原理你都不知道?不是吧不是吧!
HashMap之底层实现机制和原理hello大家好,这里是残月。今天我将给大家讲解一下HashMap底层实现原理和机制。相信大家不管在面试大公司还是小公司也好,都会经常被问道HashMap的实现原理,可能有的小伙伴上来就说:“啊,我知道!HashMap1.7是数组加链表,1.8是数组加链表加红黑树!”。。。然后。。。然后就没了。PS:对不起,出门右转自己下电梯(⁼̴̀д⁼̴́)。其实要想搞懂HaspMap的底层实现原理其实很简单,对于有一定数据结构基础的小伙伴来说我们只需要知道他的扩容机制、hash算法原创 2020-07-28 18:02:41 · 1088 阅读 · 0 评论