首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JAVA在线
掘友等级
Java攻城狮
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
14
文章 13
沸点 1
赞
14
返回
|
搜索文章
最新
热门
Java内存模型
本篇主要讲解Java内存模型的基本概念,在讲解之前我们先了解一下硬件的内存模型。 由于CPU处理速度很快,而内存远远跟不上CPU。为了提高性能,在CPU与内存之间加了一层高速缓存(Cache)来作为内存与CPU之间的缓冲:将运算需要用到的数据复制到缓存,加速运算,当运算完后再将…
Spring源码分析之IoC(二)
上篇文章讲了setConfigLocations方法,本篇继续往下分析refresh方法。该方法实现在其父类AbstractApplicationContext中,我们进入该方法看下具体实现: 该方法是个空方法,子类可以重写该方法,达到扩展目的。 该方法会校验系统环境中设置的R…
Spring源码分析之IoC(一)
控制反转(Inversion of Control,缩写为IoC),是一种设计模式,用来解耦组件之间的耦合度。 在Spring IoC容器的设计中,有两种主要的容器系列:BeanFactory与ApplicationContext。 BeanFactory,IoC容器的接口定义…
深入理解Java虚拟机之类加载机制
类的生命周期包括:加载、验证、准备、解析、初始化、使用、卸载7个阶段,其中验证、准备、解析这三个阶段统称为解析。 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这5个过程。而解析过程不一定,在某些情况下可以在初始化阶段之后再执行,这是为了支持jav…
深入理解Java虚拟机之性能监控与故障处理工具
前面几篇讲了关于JVM的理论知识,今天介绍几个JDK的命令行工具,来快速定位线上问题。 执行样例中3409是进程ID,5s是每隔五秒查询一次,2是一共查询两次。 S0C: Young Generation第一个survivor space的内存大小 (kB). S1C: You…
深入理解Java虚拟机之垃圾回收机制
垃圾收集(Garbage Collection,GC)主要做这几件事情:确定哪些内存需要回收、什么时候回收、如何回收。 给对象添加一个计数器,每当有一个地方引用它时,计数器加1;当引用失效,计数器减1;计数器为0的对象就是不可能再被使用的。但是至少主流的Java虚拟机没有选择该…
深入理解Java虚拟机之实战OutOfMemoryError
“Shallow Heap”:类本身元数据的大小。“Retained Heap”:该类以及它引用的其他类所占用空间的总和 大概的分析步骤就是这样,关于MAT的使用,可以去多了解下。 线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError。 如果虚…
深入理解Java虚拟机之栈帧
栈帧是用来存储数据和部分过程结果的数据结构,同时也被用来处理动态链接、方法返回值和异常分派。 栈帧随着方法的调用而创建,随着方法结束而销毁。 栈帧的存储空间分配在Java虚拟机栈,每个栈帧包含局部变量表、操作数栈以及指向当前方法所属类的运行时常量池的引用。 局部变量表和操作数栈…
深入理解Java虚拟机之对象的内存布局、访问定位
在HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)、对齐填充(Padding)。 对象头分为两个部分,第一部分存储自身的运行时数据,如对象的哈希码、GC分代年龄、锁标志位等。这部分数据的长度在32位和…
深入理解Java虚拟机之对象探秘
当虚拟机遇到一个new指令的时候,首先去检查这个指令的参数能否在常量池中定位到一个类的符合引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化,如果没有,需要先执行类加载过程。 如果Java堆中内存是绝对规整的,已分配内存与空闲空间分割开来,分配内存时只需将指针向空闲空…
下一页
个人成就
文章被点赞
70
文章被阅读
8,105
掘力值
348
关注了
52
关注者
26
收藏集
0
关注标签
12
加入于
2018-04-30