美文网首页
java new一个object对象占用多少内存

java new一个object对象占用多少内存

作者: tracy_668 | 来源:发表于2018-04-22 22:11 被阅读150次

在java中,一个引用在32位jdk中占用四个字节,64位jdk是8字节。一个对象由对象头,对象实际数据,以及对齐填充(可能存在)三部分组成。

对象头: 包括_mark:markOop : 用于存储对象状态信息,比如hashcode,对象年龄(经历gc的次数),是否被当作锁同步,等等信息, 并非全部信息而是有选择性记录一些。_klass:klassOop,类元数据指针,指向一个描述自身的元数据的对象。

对象实例数据: 笼统的说,基类声明的实例字段会出现在派生类申明的实例字段之前。

java.lang.String:

_mark: markOop 4字节

_klass: klassOop 4字节

value:char[]------------------------》 typeArrayOopDesc:  在java中数组也是一个对象

offset: int                                         _mark

count: int                                         _klass

hash: int (哈希缓存)                        _length=3

                                                        [0]='h' [1]='e'[2]='l'

这揭示了string对象在内存的本质情况。

receiver.instanceMethod(), receiver实际作为隐式参数传入,《==》instanceMethod(receiver)

instance.StaticMethod()   <==> instance.class.StaticMethod(),  语法糖而已。

相关文章

  • java new一个object对象占用多少内存

    在java中,一个引用在32位jdk中占用四个字节,64位jdk是8字节。一个对象由对象头,对象实际数据,以及对齐...

  • Java new一个Object对象占用多少内存?

    #refer: http://m.oschina.net/blog/208456 Java的自动内存管理机制(au...

  • Java对象内存布局

    1 场景 此文主要分析: 在java中new Object()占用多少字节?在内存中的布局是怎么的? 基于版本:j...

  • Java对象大小计算

    你创建的对象真正占了多少内存?作为程序员基本每天都在 new 对象,那么 new 出来的对象真正占用了多少内存呢?...

  • 2022.04月面试

    智联:1.Object 对象占用内存多少, 实际占用用大小 , 如何分配内存 [https://www.jian...

  • ==和equals的区别

    在JVM(java虚拟机)中 内存分为栈内存和堆内存: 当我们创建一个对象(new Object)时,就会调用它的...

  • Java编程中对象内存空间占用分析

    Java编程中,了解对象的内存开销非常重要。本文主要分析Java语言中对象的内存占用。 1、Java对象内存占用简...

  • JVM理解

    JAVA的内存管理20141116162607156.png Object o = new Object();o....

  • java 内存布局

    Java 内存的布局主要是统计Java对象占用内存的大小。 Java对象的内存布局:对象头(Header)、实例数...

  • Objective-C对象的内存分配

    一个NSObject对象占用多少内存? 本章主要研究一个OC对象在内存中是如何布局和占用多少内存的。后面主要通过把...

网友评论

      本文标题:java new一个object对象占用多少内存

      本文链接:https://www.haomeiwen.com/subject/nofhlftx.html