摘要: (根据《深入理解java虚拟机》这本书总结) 将new一个对象的时候会经历1加载类信息-2分配堆内存-3分配内存置零值-4实例必要信息设置,这几个过程。 那么这个实例对于分配在堆中的内存,由哪些部分组成呢? 一共三部分: 1、对象头信息:可以分为两部分 (1)存储对象自身的运行时数据,包括hash值 阅读全文
posted @ 2017-07-26 21:59 迷路的小朋友 阅读(263) 评论(0) 推荐(0) 编辑
摘要: (根据《深入理解java虚拟机》这本书总结) 本文主要解释jvm内存模型,以及各个部分的作用。都是自己总结的给自己看的通俗语言,未用专业术语的见谅。 一、为什么要了解jvm内存模型? 在了解一个类的编译-加载-内存分配-初始化所有过程前,要先了解jvm的内存模型。这样对整个java体系可能会更加便于 阅读全文
posted @ 2017-07-26 21:47 迷路的小朋友 阅读(583) 评论(0) 推荐(0) 编辑
摘要: java运行时内存分五部分: 线程共享:堆内存、方法区(包括常量池) 线程私有:栈内存、本地方法栈、程序计数器 string不是基本数据类型,那么一个string的内存位置是什么呢?一共有两种情况: 1、string直接赋值: String s = "haha"; s的引用存在栈内存中,引用指向的h 阅读全文
posted @ 2017-07-26 11:58 迷路的小朋友 阅读(4765) 评论(1) 推荐(0) 编辑