- 博客(6)
- 收藏
- 关注
原创 synchronized原理分析
03Synchronized的实现原理分析当一个线程尝试访问synchronized修饰的代码块时,它首先要获得锁,那么这个锁到底存在哪里呢?对象在内存中的布局synchronized实现的锁是存储在Java对象头里,什么是对象头呢?在Hotspot虚拟机中,对象在内存中的存储布局,可以分为三个区域:对象头(Header)、实例数据(Instance Data)、对齐填充(Padding)当我们在Java代码中,使用new创建一个对象实例的时候,(hotspot虚拟机)JV...
2021-02-19 23:03:57
182
原创 2021-02-14 JVM内存划分
JVM基本上由4部分组成:类加载器 执行引擎 内存区 本地方法调用其中,内存区一般又称运行时数据区,JVM将Java运行时数据通常划分为6种:PC寄存器 本地方法区 方法区 运行时常量池 栈 堆1.PC寄存器PC寄存器严格来说是一个数据结构,它用于保存当前正常执行的程序的内存地址。Java程序是多线程执行的,所以不可能一直都按照线性执行下去,当有多个线程交叉执行时,被中断线程的程序当前执行到哪条内存地址需要保存下来,以便于它被恢复执行时再按照被中断时的指令地址继续执行下去
2021-02-14 21:58:40
160
原创 2021-02-14 JVM内存分配回收策略
1.静态内存分配静态内存分配是指在编译时就已经能够确定需要的内存空间,当程序被加载时,系统把内存一次性的分配给它。这些内存不会在程序执行时发生变化,直到程序执行结束时内存才被回收。在Java的类和方法中的局部变量包括原生数据类型(int, long, char等)和对象的引用都是静态分配内存的如下代码:public void staticData(int arg) { String s = "String"; long ll = 1; Long lg = 1L.
2021-02-14 18:53:03
108
原创 spring配置:xml配置和java注解配置对比
虽然spring早就推出java注解的方式配置框架,由于习惯了看xml所以一直没有去学习,然而最近需要学习springboot,为了平滑过渡,先被迫研究一下注解配置方式。这里展示3种spring配置文件,来对比xml配置和java注解配置的区别,分别是spring\mvc\shiro的配置先说总结:对比2种配置方式会发现xml方法更繁琐(xml那恶心的头部约束),拿shiro来说...
2018-08-16 16:55:30
7797
3
原创 RabbitMQ-01 安装(windows)
一、windows下安装rabbitmq 1、下载安装包:rabbitmq:http://www.rabbitmq.com/download.html二郎神(mq环境):http://www.erlang.org/downloads 说明:rabbitmq是基于erlang开发的,所以安装前需要先安装erlang 2、安装erlang下载完成运行o...
2018-08-14 17:05:53
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人