自定义博客皮肤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)
  • 收藏
  • 关注

原创 偏向锁,轻量级锁,自旋锁和重量级锁

jdk1.6之前,synchronized实现是在线程状态“运行”-“阻塞”-“运行”之间切换jdk1.6之后,因为线程状态间的切换低效,所以对synchronized实现同步功能进行了优化,引入偏向锁,轻量级锁,自旋锁和重量级锁等概念,来提高synchronized实现同步锁的效率。synchronized获取不到锁之后,不会立即阻塞线程。随着锁竞争不断激烈,JVM处理锁的方案也不断升级,按...

2019-04-26 11:22:31 1673

原创 偏向锁,轻量级锁,自旋锁和重量级锁

jdk1.6之前,synchronized实现是在线程状态“运行”-“阻塞”-“运行”之间切换jdk1.6之后,因为线程状态间的切换低效,所以对synchronized实现同步功能进行了优化,引入偏向锁,轻量级锁,自旋锁和重量级锁等概念,来提高synchronized实现同步锁的效率。synchronized获取不到锁之后,不会立即阻塞线程。随着锁竞争不断激烈,JVM处理锁的方案也不断升级,按...

2019-04-22 16:47:40 433

原创 RedisTemplate实现分布式锁

@Componentpublic class RedisDistributedLockUtils { private static final String NX = "NX"; private static final String EX = "EX"; private static final String LOCK_OK = "OK"; private sta...

2019-04-19 17:31:16 1827

原创 Win10查看占用CPU最多的JAVA线程

准备工作1.windows下查询占用CPU情况工具Sysinternals Process Explorer2.起一个多线程代码开始排查运行Sysinternals Process Explorer,找到CPU占用最高的JAVA进程,PID为4388查看JAVA进程4388的Properties的Threads信息,查看CPU使用率最高的TID为2808j...

2019-03-30 15:05:32 2098

原创 IDEA 修改git annotate背景色

2019-01-11 16:45:16 1723

原创 Spring IOC 基础

Java语言允许通过程序化的方式间接对Class进行操作,Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数、属性和方法等。Java允许开发者借由这个Class相关的元信息对象间接调用Class对象的功能,这就为使用程序化方式操作Class对象开辟了途径,通过元信息对象操作实例过程中,如果访问private、...

2019-01-10 14:55:07 159

翻译 JVM概述

1.jvm的启动,先看一副图  这个是jvm的启动流程,从加载jvm的配置到找到JVM.dll找到我们的程序的主入口main方法的过程。 2.JVM的整体架构   这个是jvm的基本结构,jvm有的功能这里都展现出来的,加载class文件到方法区,生成对象到堆中,每个线程的私有的栈,垃圾收集器,实际执行引擎是这里的核心,它与所有的模块都有或多或少的交互...

2019-01-04 15:55:19 124

转载 JVM-GC算法 垃圾收集器

 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部分内存的分配和使用都是动态的.对象存活判断判断对象存活一般有两种方式:1.引用计数法对象每被引用一次,引用计数加1,每释放一次引用,计数器减1,当计数为0时,对象可被回...

2019-01-03 15:16:06 177

转载 JVM内存结构

先看一张图,这张图能很清晰的说明JVM内存结构布局。  JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配;方法区存储类信息、常量、静态变量等数据,是线程共享的区域,为与Java堆区分,方法...

2019-01-02 18:19:34 143

转载 JAVA类加载机制

1.类加载的定义1.1 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的 Class对象, Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。1.2 类加载器并不需要等到某个...

2019-01-02 17:09:34 121

转载 计算机主存和磁盘存取原理

主存存取原理目前计算机使用的主存基本都是随机读写存储器(RAM),现代RAM的结构和存取原理比较复杂,这里本文抛却具体差别,抽象出一个十分简单的存取模型来说明RAM的工作原理。图5从抽象角度看,主存是一系列的存储单元组成的矩阵,每个存储单元存储固定大小的数据。每个存储单元有唯一的地址,现代主存的编址规则比较复杂,这里将其简化成一个二维地址:通过一个行地址和一个列地址可以唯一定位到一个存储单元。图5...

2018-03-13 16:49:38 4178

翻译 MySQL中的范围条件

什么是范围条件    从EXPLAIN的输出结果中很难区分MySQL是要查询范围值(between,>,<),还是查询列表值(in)。explain使用同样的词"range"来描述这两种情况。例如,从type来看,MySQL会把下面这种查询当作是"range"类型: select * from orders where id  <= 10893;再看下面这条查询语句select ...

2018-03-13 15:33:39 5773

翻译 MySQL之explain详解

select_typeSIMPLE最简单的SELECT查询,没有使用UNION或子查询。 PRIMARY在嵌套的查询中是最外层的SELECT语句,在UNION查询中是最前面的SELECT语句。 UNIONUNION中第二个以及后面的SELECT语句。 DERIVED派生表SELECT语句中FROM子句中的SELECT语句。 UNION RESULT一个UNION查询的结果。 DEPENDENT U...

2018-03-13 15:01:14 166

空空如也

空空如也

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

TA关注的人

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