这一次,彻底搞懂Java并发包中的Atomic原子类 多线程并发是Java语言中非常重要的一块内容,同时,也是Java基础的一个难点。说它重要是因为多线程是日常开发中频繁用到的知识,说它难是因为多线程并发涉及到的知识点非常之多,想要完全掌握Java的并发相关知识并非易事。也正因此,Java并发成了Java面试中最高频的知识点之一。本系列文章将从Java内存模型、volatile关键字、synchronized关键字、ReetrantLock、Atom 2021-06-26 Java进阶 多线程
这一次,彻底搞懂Java中的ReentrantLock实现原理 多线程并发是Java语言中非常重要的一块内容,同时,也是Java基础的一个难点。说它重要是因为多线程是日常开发中频繁用到的知识,说它难是因为多线程并发涉及到的知识点非常之多,想要完全掌握Java的并发相关知识并非易事。也正因此,Java并发成了Java面试中最高频的知识点之一。本系列文章将从Java内存模型、volatile关键字、synchronized关键字、ReetrantLock、Atom 2021-06-19 Java进阶 多线程
这一次,彻底搞懂Java中的synchronized关键字 多线程并发是Java语言中非常重要的一块内容,同时,也是Java基础的一个难点。说它重要是因为多线程是日常开发中频繁用到的知识,说它难是因为多线程并发涉及到的知识点非常之多,想要完全掌握Java的并发相关知识并非易事。也正因此,Java并发成了Java面试中最高频的知识点之一。本系列文章将从Java内存模型、volatile关键字、synchronized关键字、ReetrantLock、Atom 2021-06-14 Java进阶 多线程
这一次,彻底搞懂SparseArray实现原理 最近在整理SparseArray这一知识点的时候,发现网上大多数SparseArray原理分析的文章都存在很多问题(可以说很多作者并没有读懂SparseArray的源码),也正因此,才有了这篇SparseArray原理的文章。我们知道,SparseArray与ArrayMap是Android中高效存储K-V的数据结构,也是是Android面试中的常客,弄懂它们的实现原理是很有必要的,本篇文章就以S 2021-06-13 Android 集合
这一次,彻底搞懂Java内存模型与volatile关键字 多线程并发是Java语言中非常重要的一块内容,同时,也是Java基础的一个难点。说它重要是因为多线程是日常开发中频繁用到的知识,说它难是因为多线程并发涉及到的知识点非常之多,想要完全掌握Java的并发相关知识并非易事。也正因此,Java并发成了Java面试中最高频的知识点之一。本系列文章将从Java内存模型、volatile关键字、synchronized关键字、ReetrantLock、Atom 2021-05-30 Java进阶 多线程 JMM
详解Java中的泛型(Generics) Java泛型是在JDK1.5中引进来的一个概念。泛型意为泛化的参数类型,英文为Generics ,翻译过来其实就是通用类型的意思。泛型在平时开发中经常用到,例如常用的集合类、Class类等都是JDK给我们提供的泛型类,更多的时候我们还会使用自定义泛型。可见,泛型在Java体系中还是一个很重要的知识。那么,本篇文章我们就来系统的学习一下Java的泛型。 一、为什么要引入泛型上边已经提到,泛型是在JD 2021-01-16 Java进阶 Java泛型
深入理解Java的反射机制 在上篇文章《深入JVM–探索Java虚拟机的类加载机制》中我们深入探讨了JVM的类加载机制。我们知道,在实例化一个类时,如果这个类还没有被虚拟机加载,那么虚拟机会先执行类加载过程,将该类所对应的字节码读取到虚拟机,并生成一个与这个类对应的Class对象。而在类加载的过程中,由于有双亲委派机制的存在,虚拟机保证了同一个类会被同一个类加载器所加载,进而保证了在虚拟机中只存在一个被加载类所对应的Clas 2021-01-14 Java进阶 Java反射
这可能是ViewPager2滑动冲突最全处理方案 自去年12月份ViewPager2正式版发布以后,ViewPager2已经逐渐开始替代旧版本的ViewPager。许多开发者也已经在项目中使用了ViewPager2。相比ViewPager,ViewPager2的功能不可谓不强大,我在之前写过的一篇文章《学不动也要学!深入了解ViewPager2 》中对ViewPager2的使用做过详细的讲解。但是,由于当时没有太多实战,所以并没有发现ViewPa 2020-12-29 Android BVP ViewPager2 滑动冲突
跟ViewHolder说再见!实现一个无限轮播图究竟有多简单? 去年8月份,我在Github开源了一个无限循环的轮播图库—BannerViewPager(以下简称BVP)。时至今日,一年多的时间过去了,BVP在大家的支持下已经在GitHub上收获了1.9k的Star。前段时间,我将BVP迁移到了Gitee,也很有幸受到了Gitee官方的认可,并得到了Gitee官方的推荐,短时间内在Gitee上收获了近120个Star。当然,能够取得这么大的成绩离不开大家的支持 2020-12-27 自定义View BVP ViewPager2
探索Java虚拟机的类加载机制 我们知道Java程序在编译的过程中需要先经过javac将Java文件编译成字节码文件才能被虚拟机执行。而类加载指的就是将编译好的字节码(不仅仅指.class文件中的字节码,任意的字节码流都可以被读取到JVM)读取到JVM的内存中的过程。虚拟机在加载.class文件时会对数据进行校验、转换解析和初始化。最终形成可以被虚拟机直接使用的Java类型。这个过程称作虚拟机的类加载机制。类加载机制是虚拟机中很 2020-12-25 Java进阶 JVM 类加载