上一页 1 2 3 4 5 6 ··· 14 下一页
摘要: 非公平锁和公平锁的一些理解 一、什么是非公平锁 场景:线程1,加了锁,然后线程2尝试枷锁,失败后进入等待队列,处于阻塞的状态,后来线程1释放了锁,准备来唤醒线程2重新尝试加锁。 注意一点:此时线程2可能还停留在等待队列里,还没开始重新加锁呢! 然而,不幸的事情发生了,这时半路杀出一个程咬金,来了一个 阅读全文
posted @ 2021-03-08 07:03 GDOUJKZZ 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 场景引入 面试官上来就一句,谈谈你对AQS的理解,大家心里可能收到了1W点伤害,AQS是什么,可能连全称都不知道,所以下面让我们聊聊AQS。 以ReentrantLock来介绍一下AQS 在java中,用java并发包下的ReentrantLock来加锁和释放锁,是个什么样的感觉呢? Reentra 阅读全文
posted @ 2021-03-03 07:19 GDOUJKZZ 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 场景引入 经常都会有下面这段代码,多个线程同时修改一个变量,造成线程不安全,代码如下: public class ThreadCASDemo implements Runnable { static int counter=0; static final Object objLock=new Obj 阅读全文
posted @ 2021-03-02 07:40 GDOUJKZZ 阅读(204) 评论(0) 推荐(0) 编辑
摘要: volatile是什么 出去面试的时候,很多面试官都会问你:说说你对volatile的理解。 下面我将用图的方式告诉大家,volatile是什么? 如上图所示:每个线程都有自己的工作内存,同时还能访问共享内存。 当两个线程,他们的代码都i需要读取X的值时候, 那么他都会从主内存里加载X变量到自己的工 阅读全文
posted @ 2021-02-28 20:35 GDOUJKZZ 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 产生背景 CPU的读取速度比内存的快,一个快一个慢,就会有矛盾,就会有人想要解决这个矛盾,所以就提出多级缓存来解决,如下图所示。 L1级缓存:分为数据域和程序域。 L2级缓存:二级缓存。 L3级缓存:所有CPU共用。 容量逐级越来越大,读取速度逐级降低。 这里会产生什么问题呢,比如一个数据:x=3; 阅读全文
posted @ 2021-02-01 10:48 GDOUJKZZ 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 二叉树的顺序存储 二叉树的顺序存储,就比如我们现在数据库大家都知道是用B+树,那你知道它是怎么存储的吗,总不可能说,内存中构建了一颗二叉树出来对吧,所以带着这个疑问,我们来了解一下二叉树的顺序存储(当然二叉树还有其他存储方式),我们从最简单的顺序存储开始。 分析思路如下: 代码如下: //前序遍历 阅读全文
posted @ 2021-01-23 10:35 GDOUJKZZ 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 二叉树的节点删除 二叉树节点的删除,大家马上脑海里就马上想到的是一颗二叉树,然后我们要删除它的叶子节点,删除的非叶子节点,应该怎么做呢,想到的时候,好像感觉很复杂的样子。其实我们只要慢慢分析,总是能把他搞出来的。 首先请看我们的分析过程,大概如下图所示: 这里的大概误区就是:我们一般删除,想到的方法 阅读全文
posted @ 2021-01-23 10:18 GDOUJKZZ 阅读(795) 评论(0) 推荐(0) 编辑
摘要: 二叉树的查找 给定一个例子,如下图所示,找到6号矮脚虎,请用代码实现。 这就是一个简单的二叉树的查找问题,我们可以通过这个来 二叉树的查找,可以分为前序查找,中序查找,后序查找,和二叉树的遍历类似。 前序查找的思路: (1)首先拿当根节点的no和当前比较,如果相等,则直接返回。 (2)如果不相等,则 阅读全文
posted @ 2021-01-19 21:56 GDOUJKZZ 阅读(2435) 评论(0) 推荐(0) 编辑
摘要: 树的基本知识 树的基本结构,如下图所示: 二叉树: 每个节点最多只有两个子节点的树,叫做二叉。 满二叉树:如下图所示 完全二叉树: 这两个有啥用呢,他们有规律,要记住他们的规律即可,啥规律后面用到再说。 二叉树的遍历 前序遍历: 先出当前节点(root), 如果左子节点不为空,则递归前序遍历。 如果 阅读全文
posted @ 2021-01-18 22:43 GDOUJKZZ 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 1、单链表按顺序添加元素 代码如下: public void addByOrder(HeroNode node){ if(headNode.next==null){ headNode.next=node; return; } HeroNode cur=headNode.next; while (tr 阅读全文
posted @ 2021-01-15 21:22 GDOUJKZZ 阅读(124) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 14 下一页