![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaSE基础与源码分析
包括JavaSE的知识分类总结和源码分析
闲不下来的王小C
闲不下来,只是闲不下来
展开
-
JDK1.8 锁的实现与原理(二) 同步结构的基类AQS
存在状态依赖性的类在并发操作时就会有同步问题, 保证这种类的线程安全的一种方式就是将状态操纵委派给另一个线程安全的状态维护类. AbstractQueueSynchonizer就是在JUC包中, 多种同步容器依赖的底层状态维护类.AQS的成员方法与使用在本系列的第一篇文章中, 我们自己实现了一个锁类, 这个锁类有两个组成部分, 一个原子性的状态成员, 和一个线程安全的等待队列, 这两个成员也正是大多数同步类的基本框架. AQS维护了一个volatile int state和一个FIFO的等待队列, 其中原创 2020-05-21 16:22:56 · 272 阅读 · 0 评论 -
Java并发: ThreadLoal与内存泄露
Java并发中提供了ThreadLocal类用于存放线程本地的对象, 顾名思义每个线程都会有一个独立的实例, 线程之间相互不会影响, 由此保证了线程安全. 我们来看一个例子public class TestThreadLocal { public static void main(String[] args) throws InterruptedException { T...原创 2020-04-17 00:44:17 · 223 阅读 · 0 评论 -
JDK1.8 Collection知识点与代码分析--TreeMap
本期系列文章的其他文章JDK1.8 Collection知识点与代码分析–整体框架JDK1.8 Collection知识点与代码分析–ArrayList&LinkedListJDK1.8 Collection知识点与代码分析–HashMapJDK1.8 Collection知识点与代码分析–LinkedHashMapJDK1.8 Collection知识点与代码分析–HashSe...原创 2020-04-05 11:45:35 · 135 阅读 · 0 评论 -
JVM的内存结构(一) 运行时数据区
学习Java的过程, 一个绕不过去的桩便是Java虚拟机JVM. JVM的存在赋予了Java的一次编写跨平台部署强大特性, 程序员编写的Java代码通过编译后形成字节码, 直接由虚拟机执行, 程序员也只需要和JVM打交道, JVM负责下层操作系统和硬件架构的差异性. 而掌握Java的执行和对Java性能进行分析调优的前提, 都是对JVM内部的结构, 逻辑, 设计思想的了解.本文带大家一起梳理一下...原创 2020-03-28 23:19:15 · 318 阅读 · 0 评论 -
JDK1.8 Collection知识点与代码分析--HashSet&TreeSet
在HashMap的分析文章中, 笔者曾提到, HashSet是在HashMap上进行了简单的封装, 所以本文就来看下具体的封装细节.(其实细节也很少)HashSet的有两个成员变量如下 private transient HashMap<E,Object> map; // Dummy value to associate with an Object in the back...原创 2020-03-15 23:29:43 · 143 阅读 · 0 评论 -
JDK1.8 Collection知识点与代码分析--LinkedHashMap
文章目录ConstructorEntry添加和删除putValremoveNode按照访问顺序排序将最久没有访问的节点删除LinkedHashMap 手写LRU上一篇文章笔者对Collection包中非常重要的一个类HashMap进行了分析和总结, 如果你对HashMap的知识点有模糊, 建议先读一读JDK1.8 Collection知识点与代码分析–HashMap但是HashMap存在一些问题...原创 2020-02-24 16:57:13 · 163 阅读 · 0 评论 -
JDK1.8 Collection知识点与代码分析--整体框架
Java中的Collection包是JDK中非常重要的一个包, 也是面试中考察的重点, 本文自顶向下的对Collection包的常用数据结构之间的关系结构到Collection包中的常用类的实现原理的知识点进行一定的整理, 供自己和大家复习使用.Collection包的整体结构Collection自身是一个接口, 是对集合这一概念的抽象, 提供的常用API有:add(Object obj...原创 2020-02-23 21:08:31 · 193 阅读 · 0 评论 -
JDK1.8 Collection知识点与代码分析--HashMap
HashMap在了解HashMap之前, 首先谈一谈经常和它一起出现的HashTable.Hashtable 是早期 Java 类库提供的一个哈希表实现,本身是同步的,不支持 null 键和值,由于同步导致的性能开销,所以已经很少被推荐使用. TreeMap是基于红黑树实现的Map类, 其put,get操作的时间复杂度在O(logN), 但是它的键值存储是有序的, 顺序与compareTo或Co...原创 2020-02-23 21:02:33 · 138 阅读 · 0 评论 -
Java继承中重写equals和hashCode的注意事项
equals方法: 继承中该方法存在以下的问题: 如果子类能够拥有相等的概念, 则覆盖该方法时应该采用getClass方法; 如果由超类决定相等的概念, 那么就可以使用instanceof进行检测, 这样可以在不同的子类之间进行相等的比较.具体的重写流程:显式参数使用Object, 命名为otherObject, 稍后可能会进行转换检测是否是同一对象第一步判断null第二步, 判断是...原创 2020-02-22 16:38:37 · 1542 阅读 · 0 评论 -
读写者问题(读者优先, 写者优先)--基于管程的Java实现
使用Java实现了读优先和写优先的读写者问题, 使用管程的方式(封装成类)控制互斥和同步读者优先import java.util.concurrent.locks.*;public class ProducerAndConsumer { public static void main(final String[] args) { final fileRW f = n...原创 2020-02-16 00:13:58 · 2923 阅读 · 0 评论 -
JDK1.8 锁的实现与原理(一) 自己实现一个锁
文章目录Java中的锁机制一个并发操作的Demo用atomic实现并发控制(无阻塞)用lock实现并发控制自己写一个实现`Lock`接口的类简述CAS无锁机制Java中的锁机制在学习Java的并发编程中, 锁机制是一个重点和难点, 在Java中并发常用到的锁相关的主要是synchronized关键字和java.util.concurrent.locks类, 两者的区别包括synchroni...原创 2020-02-15 01:37:38 · 1612 阅读 · 0 评论 -
Java访问标识符--protected和无访问标识符区别
访问控制符声明为protect的成员可以被同一包或者子类访问, 默认访问控制符的成员可以被同一个包访问.更详细的说, protected的规则如下:包内可见,并对子类可见.若子类和父类不在同一个包, 子类中子类实例可以访问从父类继承来的protected方法, 而不能访问父类实例的protected方法引申: 若和父类不在同一个包中, 子类不能访问其他子类的父类protected方法...原创 2019-08-21 23:18:51 · 658 阅读 · 0 评论