![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术
S梅冬
这个作者很懒,什么都没留下…
展开
-
二叉树的三种遍历
#二叉树的三种遍历二叉树有三种遍历方式:(1)前序遍历 :先访问根节点,再访问左孩子,最后访问右孩子。(2)中序遍历:先访问左孩子,再访问根节点,最后访问右孩子。(3)后序遍历:先访问左孩子,再访问右孩子,最后访问根节点。三种方式是针对根节点而言的。前序遍历:A B D G H J K E C F I M中序遍历: G D J H K B E A C F M I后序遍历:G J...原创 2019-07-14 00:36:52 · 216 阅读 · 0 评论 -
Synchronized 与 ReentrantLock的关系与区别?
关系:1、Synchronized与ReentrantLock都属于独占锁的实现,都可重入锁区别:1、Synchronized是关键字,JVM层面的实现;ReentrantLock是JAVA语言层面的实现。2、ReentrantLock具备一些Synchronized不具备的特性,如响应中断,支持超时,支持非阻塞式的获取锁,可以实现公平锁(默认非公平锁)。3、Synchronized只有...原创 2019-07-05 23:47:02 · 75 阅读 · 0 评论 -
死锁产生的四个条件
我们在进行程序运行的时候,有时候会遇到死锁问题,那么死锁产生的条件是什么呢?下面4个条件缺一不可:1互斥:共享资源X,Y之只能被一个线程占用2占有且等待:线程1已经获得共享资源X,同时在等待资源Y,并且不释放X3不可抢占:其他线程无法抢占线程1已经占有的资源X4循环等待:线程1等待线程2的西元,线程2等待线程1的资源正是因为这是个条件缺一不可,所以我们只要破坏其中一个条件,那么死锁问题...原创 2019-07-05 23:50:11 · 96 阅读 · 0 评论 -
JVM小小理解
JVM理解我们在初学Java的时候经常不理解JVM是什么?JVM是JAVA Virtual Machine(JAVA虚拟机) 的简称。它是一个虚构出来的计算机,是通过在实际计算机上仿真模拟各种计算机功能来实现的。JVM 主要包括以下几个方面,我直接图来展示,大家可能清楚一点...原创 2019-08-18 17:33:08 · 79 阅读 · 0 评论 -
GC算法
GC算法GC算法就是垃圾回收算法,是Java中的守护线程,而我们创建的线程都是用户线程。那么我们回收不用的线程就需要用到GC。1 判断对象是否存活(1) 引用计数法象增加一个引用计数器,每当有一个地方引用它时,计数器就+1;当引用失效时,计数器就-1;任何时刻计数器 为0的对象就是不能再被使用的,即对象已"死"。但是这个方法无法解决循环引用问题,所以java没有采用这个方法。(2)可...原创 2019-08-20 16:47:45 · 350 阅读 · 0 评论