![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码
Darin.cao
up
展开
-
synchronized学习记录
synchronized关键字最主要的三种使用方式 修饰实例方法,作用于当前对象的实例加锁,进入同步代码块之前要获得当前对象实例的锁 修饰静态方法,作用于当前类对象加锁,进入代码块之前要获得当前类对象的锁 也就是给当前类加锁,会作用于类的所有对象实例,因为静态成员不属于任何一个实例对象,是类成员( static 表明这是该类的一个静态资源,不管new了多少个对象,只有一份,所以对该类的所有对象都加了锁)。所以如果一个线程A调用一个实例对象的非静态 synchronized 方法,而线程B需要调用这个实转载 2020-07-17 16:14:27 · 91 阅读 · 0 评论 -
Java内存区域学习
Java内存区域学习记录 java的一大优势就是在虚拟机的自动内存的管理机制下,我们程序员不需要对于内存进行控制,把其控制权交给了java虚拟机。但是我们还是得学习java的内存区域,因为一旦出现内存方面的问题,我们必须了解虚拟机是怎样使用的。 1.运行时数据区域 Java虚拟机在执行的时候会把它管理的内存划分为若干个不同的数据区域。这些区域有一部分是线程私有的,有一部分是线程共享的 线程私有的: 程序计数器 虚拟机栈 本地方法栈 线程共享的: 堆 方法区 直接内存 1.1.原创 2020-07-16 09:36:50 · 92 阅读 · 0 评论 -
源码学习---ArrayList的扩容源码分析
ArrayList的扩容源码分析 源码如下: //下面是ArrayList的扩容机制 //ArrayList的扩容机制提高了性能,如果每次只扩充一个, //那么频繁的插入会导致频繁的拷贝,降低性能,而ArrayList的扩容机制避免了这种情况。 /** * 如有必要,增加此ArrayList实例的容量,以确保它至少能容纳元素的数量 * @param minCapacity 所需的最小容量 */ public void ensureCapacity(int minCapacity原创 2020-07-15 17:40:42 · 90 阅读 · 0 评论