美文网首页
5-对象内存分析

5-对象内存分析

作者: c88bc9f9d088 | 来源:发表于2020-10-15 12:51 被阅读0次

对象实例化操作初步分析
    Java之中类属于引用数据类型,引用数据类型最大的困难之处在于要进行内存的管理,同时在进行操作的时候也会发生有内存关系的变化,所以本次针对于之前的程序的内存关系进行一些简单分析。
范例:以下面的程序为主进行分析

public static void main(String args[]){
        Person per = new Person(); //声明对象
        per.name = "张三"; //实例化对象
        per.age = 18;
        per.tell();  //进行代码调用
    }

    如果要进行内存分析,那么首先给出两块最为常用的内存空间:

  • 堆内存:保存的是对象的具体信息,在程序之中堆内存空间的开辟是通过new完成的;
  • 栈内存:保存的是一块堆内存的地址,既:通过地址找到堆内存,而后找到对象内容;


    清楚了以上的对应关系之后,那么下面就针对于之前的程序进行分析:


    在之前进行分析的时候可以发现对象的实例化有两种语法:一种是之前使用的声明并实例化对象,另外一种就是分步完成,所以下面针对分步的内存操作进行分析。

范例:定义程序代码

public static void main(String args[]){
        Person per = null;
        per = new Person(); //声明并实例化对象
        per.name = "张三";
        per.age = 18;
        per.tell();  //进行代码调用
    }

    需要特别引起注意的是,所有的对象在调用类中的属性或方法的时候必须要实例化完成后才可以执行。

范例:错误的代码

public class JavaDemo{
    public static void main(String args[]){
        Person per = null;
        //per = new Person(); //声明并实例化对象
        per.name = "张三";
        per.age = 18;
        per.tell();  //进行代码调用
    }   
}

Exception in thread "main" java.lang.NullPointerException
at com.java.demo.JavaDemo.main(JavaDemo.java:13)

    代码之中只是声明了对象,但是并没有为对象进行实例化,所以此时无法调用。而此时程序中出现的NullPointerException(空指向异常)就是在没有在堆内存开辟后时所产生的问题,并且只有引用数据类型存在有此问题。

相关文章

  • 5-对象内存分析

    对象实例化操作初步分析    Java之中类属于引用数据类型,引用数据类型最大的困难之处在于要进行内存的管理,同时...

  • Java对象内存分析

    此处对象内存分析只针对Java基本对象,暂不对集合对象进行剖析。 内存 栈内存 堆内存

  • Objective-C 对象探究

    本文将分析 OC 对象的本质,对象的内存布局,已经如何为对象分配内存。分析的源码来自 objc-812[https...

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

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

  • LeakCanary源码分析

    作用 监控内存泄露 基于MAT(内存分析工具) 分析 如何得到未回收对象?ReferenceQueue+WeakR...

  • OC对象的内存分配及内存对齐

    对象是如何分配内存的?对象是如何计算内存大小的呢?对象内存分配跟什么有关? 代码分析 sizeof() 计算一个变...

  • 创建对象内存分析

    创建对象内存分析:package oop.Demon3; public class Application {pu...

  • golang 逃逸分析_v1.0.0

    逃逸分析是golang编译器分析一个对象到底应该放到堆内存上,还是栈内存上逃逸是指在某个方法之内创建的对象,除了在...

  • 类的结构分析

    类分析初探 基于isa结构分析 ,我们可以通过lldb获取对象的内存情况 创建一个Person类对象 查看类对象的...

  • Android性能优化---内存泄漏及解决

    Android内存泄漏专题分析 一、资源对象未关闭引起的内存泄漏 Android的资源对象在不再使用时,及时关闭对...

网友评论

      本文标题:5-对象内存分析

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