自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 ReentrantLock原理

ReentrantLock原理ReentrantLock底层其实实现了AQS的一个同步器AQS架构AQS通过一个state和一个FIFO的队列来实现。这个FIFO的是由Node实现AQS分为2种模式锁:共享锁与独占锁。共享锁实现AQS的tryAcquireShared-tryReleaseShared方法独占锁实现AQS的tryAcquire-tryRelease方法AQS ac...

2019-08-25 22:32:10 131

原创 synchronzied 原理

synchronzied使用1. 代码块:锁括号对象2. 普通方法:锁当前调用对象3. 静态方法:锁当前class对象源码解析1. 代码块上通过javap反编译出来可看到monitorenter和monitorexit对称使用来完成同步。monitorenter主要判断锁对象对应的monitor计数是否=0,如果是则这个对象对应的monitor计数+1,获取锁成功,否则阻塞。mo...

2019-08-25 20:20:15 147

原创 JAVA JVM类加载器

类加载器启动类加载器 bootstrap classloader,加载rt.jar扩展类加载器 extend classloader,加载lib/ext应用类加载器 app classloader,加载classpath自定义类加载器,加载自定义路径类加载时检查是否存在顺序自定义类加载器应用类加载器扩展类加载器启动类加载器类加载到内存时顺序启动类加载器扩展类加载器...

2019-07-22 18:15:03 96

原创 JAVA JVM 垃圾收集器

垃圾收集算法标记清除法复制法标记整理法分代收集法缺点标记清除法:原理: 从根开始扫描,标记所有的存活对象(可达对象),然后对所有未标记的对象进行清除操作。缺点: 清除后会产生不连续内存,内存碎片,导致资源浪费。复制法:原理: 把一块区域切分成2份,从s1把所有存活对象进行复制到s2区域,然后把s1的清除。缺点: 资源分为2块,运行时只使用一份区域,另一个区域空闲,导...

2019-07-22 18:03:20 88

原创 JAVA JVM内存模型

JMM内存模型JMM执行流程:从内存获取共享数据线程执行引擎通过use指令获取工作内存。线程工作内存通过load指令,到主内存。主内存通过read指令读取数据数据写入内存线程执行引擎通过assign指令往工作内存写入。线程工作内存通过store指令,到主内存。主内存通过write指令写入数据数据是怎么做同步主要是在线程工作内存与主内存这2块之间做同步操作...

2019-07-22 17:32:05 72

原创 HTTP请求报文拆包粘包

报文怎么拆包粘包: HTTP请求内容:请求行,请求头,空行,请求体 常用,一个有报文的请求到服务器时,请求头里都会有content_length,这个指定了报文的大小, 报文如果很大的时候,会通过一部分一部分的发送请求,直到结束, 当这个过程中,出现多个请求,第一个请求会带有请求头信息,前面一个请求的如果发送的报文如果没有满时, 会把后面一个请求的内容填上,这个操作就叫粘包。 这样粘包...

2019-05-29 17:17:44 3419

原创 红黑树与AVL平衡二叉树

红黑树:特性根节点始终为黑节点 从根节点开始到叶子节点所经过的黑节点数始终相同 新节点为红色,空节点为黑色 父节点与父节点之间不能同时为红色平衡原则:旋转原则: 颜色变化:红红旋转颜色不变。 红黑旋转,旋转后的父节点变黑色,子节点变红色。 黑红旋转,旋转后的父节点变红色,子节点变黑色。 结构变化:左旋转:3层节点间旋转,第二层节点变主节点,第一层节...

2019-05-24 15:49:44 138

原创 Mysql的索引类型

MyISAM: 非聚集索引,B+TREE。 存储方式:生成3个文件,数据结构文件.frm,索引文件.MYI,数据文件MYD 通过B+TREE索引的叶子节点存储着实际数据的指针,指针指向MYD文件Innodb: 聚集索引,B+TREE。 存储方式:生成2个文件,数据结构文件.frm,索引数据文件.ibd 通过B+TREE索引的叶子节点存...

2019-05-23 22:26:27 111 1

原创 JAVA JVM内存结构

JVM内存模型包含:堆、栈、方法区、程序计算器、本地方法区。堆:堆是存放的是在程序运行中new出来的对象,里面包含了4个区,伊甸区、from、to、老年代。首先new出来的对象先进伊甸区 然后当伊甸区满的时候,会触发gc,然后伊甸区存活下来的会进入from,这个时候伊甸区和to是空的 当第二批伊甸区满的时候,在次触发gc(这里gc包含from也会gc),然后会与from一起迁移...

2018-11-29 14:24:48 155 1

原创 GO的线程模型

go语言本身是为并发而打造的语言。那它的线程模型是怎么样的呢?传统是怎么处理是这样的,把数据放到共享内存,给多线程使用,这个方式是不是看上去非常简单,但是在并发访问的控制上就变的很复杂。go语言的是这么处理的,它不推荐用共享内存的方式传递数据,它推荐使用channel。channel主要用来在多个go语句片段之前传递数据,这样做还会保证并发的安全性。不过go还是保留了传统的方法(互斥量、条...

2018-11-18 17:49:50 605 1

cordova2.9.1

cordova2.9.1

2015-11-04

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

TA关注的人

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