自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 ReentrantLock & AQS源码整理(1)--非公平锁

文章仅用来自己整理、记录,不成体系,无法阅读!ReentrantLock类图ReentrantLock 主要就是通过实现 AQS 达到锁的效果,可以实现和synchronized一样的效果,并且具有扩展功能。如超时,支持公平锁。构造函数/** * Creates an instance of {@code ReentrantLock}. * This is equivalent to using {@code ReentrantLock(false)}. */

2021-01-03 21:07:40 85

原创 FutureTask源码整理

类图重要注释 * A cancellable asynchronous computation. This class provides a base * implementation of {@link Future}, with methods to start and cancel * a computation, query to see if the computation is complete, and * retrieve the result of the computati

2021-01-03 01:07:00 138 1

原创 ThreadPoolExecutor 源码整理

类图重要注释<dt>Core and maximum pool sizes</dt> * * <dd>A {@code ThreadPoolExecutor} will automatically adjust the * pool size (see {@link #getPoolSize}) * according to the bounds set by * corePoolSize (see {@link #getCorePoolSize}) an

2021-01-02 17:42:14 100

原创 HashMap源码整理

HashMap类图重要注释<p>As a general rule, the default load factor (.75) offers a good * tradeoff between time and space costs. Higher values decrease the * space overhead but increase the lookup cost (reflected in most of * the operations of the {@co

2021-01-02 01:12:37 153

原创 mongodb修改操作报错

mongodb修改语法:db.test.update(query,update,upsert,multi,writeConcern)query:查询参数,类似where子句update:要更新的数据upsert:boolean,可选,为true时如果没有该数据则新增,为false时不新增。默认falsemulti:boolean,可选,为true时修改所有符合条件的行,为false时只修...

2019-06-13 00:22:36 2673

原创 HashMap源码解析

Map是Java开发常用的数据结构,也是面试常考的一个知识点。了解其源码对我们以后无论是面试还是开发都有很大帮助。Map中最常用的就是HashMap,这里就针对HashMap源码进行解读。众所周知,在JAVA8中HashMap是有数组+链表+红黑树构成。这里只解析数组+链表的部分,能力有限,红黑树自己都不太懂,以后再补吧。学习HashMap,首先我们要清除HashMap内部的两个变量:thr...

2019-05-28 00:01:08 100

原创 mysql事物

在mysql中,只有Innodb支持事物,MyISAM则不支持事物。mysql事物四要素:原子性、一致性、隔离性、持久化。原子性:指一个事物中多个操作,要么全部成功,要么全部失败。不会出现一半成功一半失败的情况。在外边看起来是一个操作执行。一致性:指事物开始和事物结束保持所有数据状态是一致的。隔离性:指多个事物执行,各个事物的操作是相互隔离的,即其他事物要么能看到该事物开始时的状态,要么看...

2019-05-25 00:44:38 99

原创 银行转账

银行转账是一道典型的考察多线程的题目,该题目主要考察对锁的对象的选择以及对死锁的了解,如何避免死锁。重要!重要!重要!文中所有方法,经测试均未实现安全的转账功能(包括设置同步方法),本文只作为自己的学习记录,所以初学者慎重考虑,以免被带入歧途!!!另外,期望有大佬能指出不能安全转账的问题所在!不胜感激!!!当然,初学者也可以发表自己的意见,大家一起讨论。为方便阅读,以下所有代码可能会删除一...

2019-05-22 23:47:47 769

原创 单例模式

单例模式是很常用的一个模式,通常我们希望整个系统中只存在一个实例的时候,单例模式便派上了用场,接下来我们看一下单例的几种实现方法以及利弊。文章目录饿汉式单例懒汉式单例双重检查模式内部类方式单例枚举类饿汉式单例饿汉式单例是说该单例模式就如同一个饥饿的汉子一样,先创建一个实例出来,不管是否有用到,这种方式简单暴力,缺点也显而易见,如果一直没有用这个实例的话,是对内存的一种浪费。具体实现如下:...

2019-05-18 01:06:23 96

原创 单向链表的第N个节点前插入一个节点

题目:在一个单向链表的第N个节点前插入一个节点。我们平常的想法是从头结点开始遍历,找到第N-1个结点,然后插入结点。但本题并没有给出头结点,所以我们无法通过遍历找到要插入的位置,所以我们需要转变思想,目前只知道第N个结点,如果在第N个结点后插入一个结点就很简单。假设要插入的结点M,第N个结点为结点N。如果先将M插入到N结点后,如果能将两个结点调换那就是实现了将M插入到了N结点前。本题解题的关键...

2019-05-17 23:24:35 4043

原创 类加载机制

类加载机制类加载机制是学习JVM很重要的一块知识,能够详细的了解类加载机制以及流程。无论是对面试还是以后工作的问题定位,都有很大的帮助。类加载器JVM类加载器有启动类加载器,扩展类加载器,系统类加载器以及自定义类加载器。各个类加载器从上到下拥有继承关系。启动类加载器是有C++实现的,用于加载${JAVA_HOME}/lib目录下的,或者-Xbootclasspath参数指定的路径中的,...

2019-05-16 23:37:34 97

原创 JVM内存分配

JVM内存主要分为堆、栈、方法区、本地方法栈、程序计数器、本地内存直接内存几个大块,每一块存储的数据不同,功能不同,下面分别介绍几块内存区域。程序计数器程序计数器是当前代码执行的行号指示器,这块儿内存区域是唯一不会抛出OOM的区域。程序计数器是线程私有的。没有并发问题。在虚拟机概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、调转、异常处...

2019-05-16 00:34:10 153

原创 垃圾回收机制

垃圾回收机制Java语言不直接操作内存,所以Java程序员在编写程序的时候无法手动释放内存,所以就需要JVM帮助清理不需要的对象,腾出空闲内存,垃圾回收机制应运而生。学习垃圾回收机制主要需要清楚以下几个问题。哪些对象是可回收的?怎么回收这些对象,使用什么算法?各自的优劣有哪些?目前有哪些垃圾收集器?各自的使用场景,优劣。finalize()方法之前工作中是否有遇到垃圾回收机制引发的...

2019-05-16 00:33:50 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除