![](https://img-blog.csdnimg.cn/20190503200906799.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java
this is about java programing language
Lin~Xu
我心中已经听到来自远方的呼唤,再不需要回过头去关心身后的种种是非。
展开
-
Java堆外内存探索
Java堆外内存探索文章目录Java堆外内存探索引言YGC上的探索讲讲如何使用堆外内存UnSafe应用场景引言“墙内的人想尽办法要出去,墙外的人拼了命想进去”作为一位Java的使用者,从一开始,JVM就帮我们处理好内存的分配回收问题,很多时候,我们也不用考虑这些问题。但是,随着越来越深入地使用Java,我们愈发觉得如果能够帮JVM减少一些重担,能够手动对内存进行控制,那么该多好!YGC上...原创 2020-02-07 23:30:26 · 731 阅读 · 0 评论 -
Java-GC-垃圾回收机制
Java垃圾回收机制文章目录Java垃圾回收机制引言GC概念GC的区域GC分析算法再谈引用堆内存回收方法区回收GC的时机GC算法标记清除标记整理复制算法分代回收算法垃圾回收器1.Serial收集器2. 并行收集器2.1 ParNew2.2 Parallel收集器3. CMS收集器4. G1收集器总结回收器GC机制的使用引言“两者之间存在一堵由内存分配与GC技术筑建起来的高墙,墙里面的人想出去...原创 2020-02-06 16:38:44 · 2626 阅读 · 0 评论 -
Java内存区域
Java内存区域与OOM文章目录Java内存区域与OOM引言概述内存区域程序计数器VM Stack虚拟机栈Native Stack本地方法栈Heap堆内存方法区与常量池Direct Memory直接内存讲讲OOM总结引言一句契合Java/C++使用者的话,“两者之间存在一堵由内存分配与GC技术筑建起来的高墙,墙里面的人想出去,墙外面的人却想进来”。概述Java有着自动的内存分配管理机制,...原创 2020-02-06 15:06:43 · 799 阅读 · 0 评论 -
Java多线程基础概念篇-01
Java多线程概念基础篇引言多线程是Java的一个重要主体之一,接下来将要讲解Java多线程篇章,涉及到的是JUC即java.util.concurrent包,该包是由Java大师 Doug Lea完成并且于JDK1.5之后并入到java中。我很欢迎读者在讨论区留言,也很乐意为入门的学者充当布道人,有问题就尽管提问吧。一、线程的基本概念线程的状态图大致如下:分为以下5种状态:**新...原创 2019-05-07 17:31:54 · 151 阅读 · 0 评论 -
Java多线程之Synchronized篇章-02
Java多线程之Synchronized篇章引言: 在多线程编程中,很常见的一个关键字就是synchronized,那么接下来就讲讲这个关键字的作用以及它的实现原理,最后列出一个应用demo。目录:Synchronized原理简述Synchronized基础规则实例锁与全局锁Synchronized的实现单例模式的隐患与解决之路善用synchronized以上便是这一篇章的目...原创 2019-05-09 20:28:01 · 245 阅读 · 0 评论 -
Java多线程之基于Synchronized的等待唤醒-03
Java多线程之基于Synchronized的等待唤醒-03文章目录Java多线程之基于Synchronized的等待唤醒-03一、wait()、notify()、notifyAll()概述二、基于synchronized1、作用与原理2、使用三、总结一、wait()、notify()、notifyAll()概述 在Object.java中,定义了wait(), notify()和noti...原创 2019-07-06 14:16:20 · 1420 阅读 · 0 评论 -
Java多线程之中断、终止、休眠、让步-04
Java多线程之中断、终止、休眠、让步文章目录Java多线程之中断、终止、休眠、让步一、概述二、中断(唯标识位)1、定义2、操作过程3、原理4、中断总结三、休眠1、定义2、作用3、原理四、终止1、遭到弃用的三大将五、让步1、定义2、作用3、实现原理一、概述一个线程的生命历程总是丰富多彩的,时常伴随着中断、休眠、让步甚至是最后的终止。接下来就让我们深入了解一下线程的生命历程吧!二、中断(唯标...原创 2019-07-06 18:55:12 · 209 阅读 · 0 评论 -
Java多线程之守护线程-05
Java多线程之守护线程-05文章目录Java多线程之守护线程-05一、概述二、作用与特点三、总结一、概述什么是守护线程守护线程就是后台线程,也是线程的一种;普通线程称为用户线程。当所有用户线程结束了,剩下守护线程在运行,此时JVM就会回收所有线程资源,并且结束进程。说到底,就是后台辅助线程。通俗地讲,一个程序就好比一家运营的公司,其中有各种岗位的工作人员,这些工作人员就类似...原创 2019-07-06 19:54:23 · 118 阅读 · 0 评论 -
记一道多线程训练题目
记给训练营师弟们的一道多线程题目文章目录记给训练营师弟们的一道多线程题目一、题目要求二、解法一三、解法二一、题目要求 Task <Execute by Order> tips: 1、开三个线程,这三个线程在一个死循环中不断创建,执行。每个打印的数字的不同。 2、在不使用主线程休眠的情况下来保证三个线程的顺序不变。 3、效率第一、不考虑空间复杂度。 4、以下是...原创 2019-07-22 09:07:44 · 161 阅读 · 0 评论 -
记一道多线程题目(二)
记训练营给师弟的第二道多线程训练一、题目与要求/** * @author linxu * @date 2019 * tips: * 1、交替打印,根据构造器构造的N,构造一个交替任务执行器。 * 2、假如N=1,则打印12,假如N=2.则打印1212。 * 3、效率第一,可有多种解法,适当加分。 */ static class PrintOrdered { p...原创 2019-07-27 10:09:47 · 130 阅读 · 2 评论 -
JUC之原子类
JUC原子类文章目录JUC原子类一、分类二、基本类型1、AtomicInteger2、AtomicLong3、AtomicBoolean三、数组类型1、AtomicIntegerArray四、引用类型1、AtomicReference2、AtomicReferenceArray五、对象属性类型1、AtomicIntegerFieldUpdater(抽象类)demo一、分类Juc原子类可以分为...原创 2019-08-07 20:29:42 · 473 阅读 · 0 评论 -
Java多线程之可重入锁概念
Java多线程之可重入锁概念文章目录Java多线程之可重入锁概念一、什么是可重入锁二、demo1、synchronized2、UnReentrantLock3、ReentrantLock三、总结一、什么是可重入锁 在java中,可重入锁分为两种,即synchronized锁以及ReentrantLock及其实现。那么,什么是重入锁呢,其实重入锁就是一个线程能否获取一个已经由它自己持有的锁。...原创 2019-08-08 10:26:34 · 758 阅读 · 0 评论 -
JUC之锁架构预览
JUC之锁架构预览文章目录JUC之锁架构预览一、预览架构1.Lock接口2.ReadWriteLock3.AbstractOwnableSynchronizer/AbstractQueuedSynchronizer/AbstractQueuedLongSynchronizer4.LockSupport5.Condition6.ReentrantLock7.ReentrantReadWriteLo...原创 2019-08-08 17:19:55 · 187 阅读 · 0 评论 -
JUC之ReentrantLock
JUC之ReentrantLock文章目录JUC之ReentrantLock一、什么是ReentrantLock二、ReentrantLock的实现1、重入机制的实现2、公平机制的实现三、ReentrantLock的应用一、什么是ReentrantLockReentrantLock就是可重入锁,它主要实现了以下两种机制:可重入,一个线程可以重复获取该锁。公平性,它实现了公平锁与非公平锁...原创 2019-08-08 21:48:17 · 144 阅读 · 0 评论 -
JUC之ReadWriteLock
JUC之读写锁解读文章目录JUC之读写锁解读一、什么是读写锁二、读写锁的实现三、升降级1、锁降级2、锁升级四、使用场景一、什么是读写锁 读写锁实现的功能就是“读写分离”,读可以并发读,写只能串行写,同时,读的时候不能写,写的时候不能读。但是,如何控制读与写,需要我们手动在读代码块上加读锁,写代码上加写锁。二、读写锁的实现 这里我主要讲一些内部实现原理。读为共享锁final b...原创 2019-08-08 21:49:42 · 163 阅读 · 0 评论 -
JUC之LockSupport与Condition
JUC之LockSupport与Condition文章目录JUC之LockSupport与Condition一、LockSupport二、Condition1、等待队列处理2、同步队列处理三、Usage一、LockSupportpark()阻塞当前线程调用unpark、或者中断该线程,唤醒unpark()唤醒线程这个工具主要用于对线程进行一个阻塞、唤醒处理。二...原创 2019-08-08 21:50:20 · 208 阅读 · 0 评论 -
JUC之CountDownLatch&CyclicBarrier&Semaphore
CountDownLatch&CyclicBarrier&Semaphor文章目录CountDownLatch&CyclicBarrier&Semaphor引言一、CountDownLatch1、使用2、实现原理二、CyclicBarrier概念1、使用2、实现原理三、Semaphor1、应用场景2、使用3、实现原理总结引言 CountDownLatch&a...原创 2019-08-09 09:37:16 · 251 阅读 · 0 评论 -
Java线程池解读
线程池的饱和策略与阻塞队列文章目录线程池的饱和策略与阻塞队列一、线程池的饱和状态1、线程池的处理过程2、饱和状态的满足条件二、饱和策略AbortPolicyCallerRunsPolicyDiscardOldestPolicyDiscardPolicy三、阻塞队列1、有界队列ArrayBlockingQueue2、无界队列LinkedBlockingQueueSynchronousQueuede...原创 2019-08-10 15:36:13 · 1180 阅读 · 2 评论 -
代理模式之:静态、动态与cglib代理(java实现)
JAVA 三大代理静态代理动态代理cglib代理一.什么是代理原创 2019-03-20 02:50:13 · 1120 阅读 · 0 评论 -
基于反射与动态代理实现注解SQL
基于反射与动态代理实现注解SQL在许多框架中,都应用到反射机制进行简化开发流程,而且,很多时候反射与动态代理的应用是同步的,即结合动态代理去使用同步,今天,我将给大家展示一下基于反射与动态代理实现注解SQL。一、总体步骤总体步骤如下:创建简化注解创建注解扫描管理类创建代理工厂创建应用了简化注解的实际类以上讲了基本需要的内容的步骤,以下就按照这些步骤逐个讲解。1、创建简化注...原创 2019-04-15 22:02:32 · 394 阅读 · 0 评论 -
LRU缓存的设计
LRU缓存设计文章目录LRU缓存设计什么是LRULRU缓存设计设计步骤代码实现什么是LRU概念LRU的初始设计与应用是在操作系统中的虚拟存储模块上,它作为操作系统的虚拟页面置换的算法,得到了广泛的应用。特点与应用由于操作系统的页表大小有限,页面项的数量也有限,当我们访问某个物理块的时候,可能产生缺页中断,这个时候操作系统就会触发调页请求,从外存置换对应的物理页进入内存,提供访...原创 2020-01-10 23:48:46 · 2016 阅读 · 0 评论 -
JAVA类加载原理与机制剖析
JAVA类加载原理与机制剖析——————致更好的自己!一、类的加载、链接、初始化(俗称类加载)*在讲解类的加载、链接、初始化之前先讲讲JAVA程序的基本运行过程,一个JAVA程序的运行过程是:当运行java程序的时候,系统会启动一个JVM进程,而java程序不管启动多少个线程,拥有多少个变量,都是处于JVM这个进程中,他们都共享JVM的进程内存区域。*只有如下几种情况,JVM进程将会终止:...原创 2019-04-15 15:39:04 · 121 阅读 · 0 评论 -
List之ArrayList、LinkedList、Vector解读
List源码解读为了更好地理解源码,先列出一些重要的接口和类的作用:Collection接口:定义了简单的操作规范:增删查以及判断与指定集合的包含和处理一些交集的方法;注意的一点是1.8之后增加了一些方法,比如有removeIf方法等。List接口:定义了简单的增删查规范(基本上Collection接口中操作方法在这里都有);相比Collection增加了(1.8)基于Comparato...原创 2019-04-15 22:08:55 · 200 阅读 · 0 评论 -
Volatile与CAS的底层原理
Volatile与CAS的底层原理引言:VOLATILE是JAVA中一个极其重要关键字,它保证的内存的可见性,但是并不能够保证原子性。而CAS是采用一种无锁的方式,解决VOLATILE所不能带来的原子性等这类问题。接下来,就讲讲VOLATILE与CAS吧!一、volatile在讲解 Volatile关键字之前,先上个小demo! private static volatile long ...原创 2019-04-23 00:19:40 · 3728 阅读 · 1 评论 -
HashMap内部原理的分子级解读
解读HashMap<K,V>内部原理纵然到处都有关于HashMap原理解析,但我还是要对HashMap做一个内部原理的探索,因为每个人看待问题的角度是不同,就像一千个人眼中有一千个哈姆雷特,看似相同的事物,却亦可以给予你更多的惊喜。文章结构:HashMap的整体结构简介应用缺陷HashMap的增删查改PutRemoveGetSetHashMap的内...原创 2019-04-25 22:05:07 · 208 阅读 · 0 评论 -
TreeMap解读
TreeMap解读引言:TreeMap基于红黑树实现,是有序的key-value集合TreeMap 实现了NavigableMap接口,意味着它**支持一系列的导航方法。**比如返回有序的key集合。TreeMap 实现了Cloneable接口,意味着它能被克隆。TreeMap 实现了java.io.Serializable接口,意味着它支持序列化。TreeMap基于红黑树(Red-...原创 2019-05-03 17:32:53 · 585 阅读 · 0 评论 -
JAVA之Set源码解读
Set源码解读概述TreeSet定义及特征内部实现HashSet定义及特征内部实现总结一、TreeSet1、定义及特征TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象类,实现了NavigableSet<E>, Cloneable, java.io.Serializable接口。TreeSet ...原创 2019-05-06 20:51:23 · 856 阅读 · 0 评论 -
ThreadLocal的那些事——IT故事汇
关于ThreadLocal的那些事那么,ThreadLocal有什么故事呢?他的起源剖析他的用例原创 2019-03-27 20:56:27 · 1176 阅读 · 0 评论 -
红黑树解读与Java实现
红黑树解读与Java实现概要目录红黑树的介绍红黑树的应用红黑树的时间复杂度和相关证明红黑树的基本操作,左右旋红黑树的基本操作,添加与调整红黑树的基本操作,删除与调整一、红黑树的介绍什么是红黑树?R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black),...原创 2019-05-03 22:50:55 · 5267 阅读 · 3 评论 -
Mapreduce计算框架
Mapreduce计算框架文章目录Mapreduce计算框架介绍计算原理Shuffle混洗的详解Spill环型结构的运行机制MapReduce的瓶颈MergeCopy工作机制Mapreduce1.xA.架构组成B.执行流程Mapreduce2.xA.架构组成B.执行流程C.采用Yarn的优势优化思路demo介绍 MapReduce是一个计算框架,它的原理是Google的MR并行计算思想,它...原创 2019-09-27 12:21:03 · 1668 阅读 · 0 评论