`
vzhchv0010
  • 浏览: 29729 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于java内存的一些文章

    博客分类:
  • java
阅读更多

http://blog.csdn.net/chensheng913/relatedarticles/78313.aspx        计算java对象暂用的内存的代码

http://tieba.baidu.com/f?kz=613503399                                              java内存的思考与总结

http://blog.csdn.net/copyright/archive/2003/05/22/15966.aspx       你知道数据大小吗?

http://hi.baidu.com/jb%5F0111/blog/item/ebb10795a71fdd0c7af48045.html   java内存的思考与总结等相关文章

http://blog.csdn.net/hemingwang0902/archive/2009/04/08/4054549.aspx  java获得CPU使用率,系统内存,虚拟机内存等情况(不用JNI)

关于内存的总结:是一个同事提出的问题,java如何计算内存呢?我开始没有去想.

结果自己想起来还很复杂.

http://blog.csdn.net/copyright/archive/2003/05/22/15966.aspx

经过以下文章,再加上我自己的验证,java的内存有以下了解:

 

java给类分配空间都是以object类为基础的.object类占8byte.

所有类中的变量都是以引用来计算大小的,不管是什么类型,只占4byte.

如果自己写一个类

class A {

 

}

该类中如果没有定义变量的话,不分配给A对象空间.还是只分配object的空间.所以该对象所占空间大小为8byte.

class A {

 int a ;

}

Int类型为4个字节,但是在堆中分配空间最小为8byte,所以A a = new A() ,a对象所占空间大小为16字节.

 

所以如果继承类中没有引用对象和变量,最多都是8byte.如果有变量的或者引用的话,在堆内存中只分配变量引用的空间,把各个类变量引用的空间加起来.而类引用占4个字节,类占8个字节.

class A {

 int a ;

}

class B extends A {

 int a ;

}

 

A a = new B();

a对象的大小为 16byte . object的空间 8byte+int a *2 * 4 的大小 = 16

class C {

}

Class D{

       C c = new  C();

}

D d = new D();

d对象的大小为 16byte . object的空间 8byte+C c+ new C()的大小 = 24

 

对象的大小另算只要对象中没变量,则只计算object.,引用的大小一律都是4byte.

 

 

分享到:
评论

相关推荐

    关于java内存管理的一些理解

    主要关于java虚拟机的运行时数据区域,参考了周志明的深入理解java虚拟机,还涉及到了native方法、垃圾回收机制等等。

    jProfiler7 java内存分析 linux版本

    本篇文章将详细探讨jProfiler7在Java内存分析上的核心功能、使用方法以及在Linux环境中的配置和应用。 1. **内存分析概述** - 内存分析是识别和解决Java应用程序中的内存泄漏、过度对象创建和内存消耗过高问题的...

    Java高手关于java的文章合集

    在这个“Java高手关于Java的文章合集”中,我们可以期待深入探讨Java和J2EE的相关技术、最佳实践以及实用技巧。 1. **Java基础知识**:文章可能涵盖Java语法基础,包括变量、数据类型、控制流、类与对象、继承、...

    关于static的小结(Java内存溢出)

    在《关于static的小结(Java内存溢出)》这篇文章中,作者主要探讨了与Java中的`static`关键字相关的知识点,以及如何可能导致内存溢出的情况。下面我们将深入分析这些内容。 #### Java中的`static`关键字 `static...

    java实现的内存分配

    首先,我们要理解Java内存模型的基础。Java内存主要分为堆内存(Heap)和栈内存(Stack)。堆内存用于存储对象实例,而栈内存则用于存储方法调用时的局部变量和方法参数。除此之外,还有方法区(Method Area)、程序...

    Java内存分配及垃圾回收文章汇总

    Java内存分配与垃圾回收是Java程序性能优化的关键领域。在Java平台上,程序的运行主要依赖于JVM(Java虚拟机),而JVM的核心组件之一就是内存管理。本篇将深入探讨Java内存分配策略以及垃圾回收机制,以帮助你更好地...

    java字符串内存计算

    根据Java内存模型,我们可以得到如下计算公式来估算字符串的内存占用情况: \[ \text{字符串内存占用} = \text{String类头大小} + \text{字符数组占用空间} \] 其中,String类头大小固定为24字节。而字符数组占用...

    java内存溢出原因

    本篇文章将详细解析三种常见的Java内存溢出类型:JVM PermGen space溢出、JVM heap space溢出以及Native Heap溢出,并提供相应的解决方案。 1. **JVM PermGen space溢出** - ** PermGen space** 是JVM内存模型中的...

    java技术文章集锦

    Java技术文章集锦是一个丰富的资源库,包含了大量关于Java编程的知识点,对于正在学习或已经从事Java开发的人员来说,这是一个宝贵的参考资料。这个压缩包文件中的每一篇文章都可能涵盖了一个或多个Java技术主题,让...

    转一篇有关Java的内存泄露的文章

    Java内存泄露是一个重要的主题,它关乎程序的性能和稳定性。内存泄露是指程序中已经不再使用的对象,由于某些原因无法被垃圾收集器(Garbage Collector)回收,从而导致系统内存持续占用,随着时间推移可能导致系统...

    Java 知识文章

    5. **垃圾回收(GC)**:Java自动管理内存,通过垃圾回收机制回收不再使用的对象,避免内存泄露。 6. **Java虚拟机(JVM)**:JVM是Java平台的核心,负责解释和执行字节码,实现跨平台运行。JVM有多个版本,如...

    java 内存分配 适应法

    本篇文章将深入探讨Java内存分配中的“最先适应法”、“最佳适应法”和“最坏适应法”,这些都是内存管理中的经典算法,适用于不同的场景和需求。 首先,我们来看“最先适应法”(First Fit)。这是一种简单的内存...

    Java对象内存布局 - 小分析

    本篇文章将深入探讨Java对象在JVM内存中的布局,帮助我们理解JVM是如何存储和管理对象的。 首先,我们要知道JVM内存主要分为以下几个区域: 1. **堆内存(Heap)**:这是Java对象的主要存储区域,所有通过`new`...

    Java技术相关文章

    - **语法特性**:Java是一种面向对象的编程语言,具有静态类型系统和自动内存管理。它的语法简洁且易于理解,同时支持封装、继承和多态等面向对象概念。 - **JVM(Java虚拟机)**:Java程序通过JVM运行,JVM负责...

    Java学习材料大全(499篇文章)

    这个名为“Java学习材料大全(499篇文章)”的压缩包显然包含了大量关于Java学习的资源,可能是教程、实战项目、技术文章、问题解答等多种形式。499篇文章的数量表明这是一个全面且深入的学习资料集合,覆盖了初学者到...

    经典之谈——Java内存分配

    本篇文章将基于“经典之谈——Java内存分配”这一主题,结合“详谈Java的内存分配.pdf”文档,深入讲解Java内存的各个方面。 首先,Java内存分为几个主要区域,分别是:程序计数器(Program Counter Register)、...

    java内存管理白皮书

    本文旨在深入探讨Java内存管理的各个方面,特别是针对HotSpot虚拟机的内存管理策略和机制。 首先,Java虚拟机内存管理机制的核心是垃圾收集(Garbage Collection, GC),它能够自动识别不再被引用的对象,并释放...

    java初学者必看的文章

    根据给定文件的信息,我们可以提炼出六个主要的知识点,这些知识点对于Java初学者来说非常重要。 ### 一、学好框架 在Java开发中,框架(framework)是非常重要的组成部分,它可以帮助开发者快速构建应用程序,...

Global site tag (gtag.js) - Google Analytics