首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
天天向上酱75798
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
深入理解Java虚拟机(十一)——类加载器
在类加载过程中的加载阶段,其任务之一是通过类的全限定名称来获取此类的二进制字节流,而虚拟机规范并没有限制二进制字节流的来源方式,因此类加载器就是用来通过指定的途径加载字节流的。 对于任意一个类来说,它的唯一性是通过类加载器和这个类本身来确定的,也就是说即便两个类加载自同一个Cl…
深入理解Java虚拟机(十)——类加载过程
类加载的全过程包括:加载、验证、准备、解析、初始化,下面介绍这5个步骤虚拟机所做的工作。 1. 加载 加载是类加载过程的一个阶段,这两个概念不要混淆。 ●通过类的全限定名称获取到类的二进制字节流。 ●将这个字节流的静态数据结构转化为方法区的运行时数据结构。 ●为该类生成一个Ja…
深入理解Java虚拟机(九)——类加载的概述和时机
1. 概述 虚拟机把描述类数据的Class文件加载到内存,经过验证、准备、解析、初始后形成一个能被直接使用的Java类型,这个过程就是虚拟机的类加载机制。 ●面向接口的应用程序能在运行期指定实际的实现类。 2. 类加载的时机 类从加载到卸载的整个生命周期包括:加载、验证、准备、…
深入理解Java虚拟机(八)——Class类文件结构
Java有一句响亮的口号:“一次编写,到处运行”,也就是说Java程序编写一次,就可以运行在任意的硬件系统上。实现这一承诺,离不开Java虚拟机的存在:Java为每种硬件系统编写了不同的虚拟机,帮助运行在虚拟机之上的Java程序屏蔽掉了硬件系统的底层实现,即不同的硬件系统为Ja…
深入理解Java虚拟机(七)——JVM性能调优
1. 直接使用64位系统,并为JVM分配大内存 当Java堆较小时,好处是垃圾回收时间较短,但相应的代价是垃圾收集动作频繁,而垃圾回收动作又会导致程序停顿,因此容易想到通过扩大堆内存减少垃圾回收次数,从而避免程序频繁的停顿。 选用64位系统能有效扩大系统内存,相应地Java堆内…
深入理解Java虚拟机(六)——对象内存的分配策略
1.在Java的内存区域中,本地方法栈、虚拟机栈、程序计数器这三块内存区域的分配和回收具有确定性,他们在编译阶段就能确定需要分配的空间大小。此外,这些内存区域属于线程私有,随线程生而生,随线程灭而灭。综上,虚拟机不需要在这部分内存区域花费太多精力用于垃圾回收。 2.方法区存储的…
深入理解Java虚拟机(五)——垃圾收集器
如果说垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。HotSpot虚拟机提供了多款垃圾收集器,他们各有特点,但没有最好、最优的垃圾收集器,我们要做的就是根据实际情况选择最合适的垃圾收集器。 1.Serial收集器是单线程收集器,它只会占用一个CPU或线程…
深入理解Java虚拟机(四)——垃圾收集策略(2)
1. 标记-清除算法 标记-清除算法分为“标记”和“清除”两部分,“标记”算法在上一篇博文 深入理解Java虚拟机(三)——垃圾收集策略 (1) 里已做了介绍,“清除”即回收被标记的对象。 ●是最基础的收集算法。后续的收集算法都是基于这种思路并针对其不足进行改进而得到的。 ●标…
深入理解Java虚拟机(三)——垃圾收集策略(1)
1. 垃圾收集概述 ●Java内存区域分为:程序计数器、虚拟机栈、本地方法栈、堆、方法区。其中程序计数器、虚拟机栈、本地方法栈均是线程私有的,也即意味着这部分内存区域随线程生而生,随线程灭而灭。其中栈帧随方法的进入和退出执行入栈和退栈操作(退栈后栈帧所占的内存也将释放)。综上,…
深入理解Java虚拟机(二)——对象的创建
1.检查准备创建的对象所属类是否已被加载,若没有,则先加载该类;若加载完毕,进行下一步。 2.为新生对象分配空间。类加载完成后,对象所需的空间是完全确定下来的,分配空间就是在内存中划出一小块空间分配给对象。分配方式有两种: ●指针碰撞:当我们使用的垃圾收集算法会导致已被使用在内…
下一页
个人成就
文章被点赞
24
文章被阅读
13,227
掘力值
621
关注了
4
关注者
51
收藏集
0
关注标签
1
加入于
2019-05-03