`
piperzero
  • 浏览: 3556031 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

创建一个对象都在内存中做了什么事情?

 
阅读更多
1:先将硬盘上指定位置的Person.class 文件加载进内存。
2:执行main 方法时,在栈内存中开辟了main 方法的空间(压栈-进栈),然
后在main 方法的栈区分配了一个变量p。
3:在堆内存中开辟一个实体空间,分配了一个内存首地址值。new
4:在该实体空间中进行属性的空间分配,并进行了默认初始化。
5:对空间中的属性进行显示初始化。
6:进行实体的构造代码块初始化。
7:调用该实体对应的构造函数,进行构造函数初始化。()
8:将首地址赋值给p ,p 变量就引用了该实体。(指向了该对象)
分享到:
评论

相关推荐

    JAVA内存溢出问题总结

    在使用对象时,应该避免在经常调用的方法中创建对象,以免内存溢出。 监听器类型的资源注册后没有注销,而且要保证在 finally 块中进行注销,保证在异常情况下也会注销,否则一直都会驻在内存。 在使用监听器时,...

    类的对象的内存布局

    在C++编程的世界里,类的对象内存布局是一个高级且复杂的议题。当涉及到继承、多态以及虚函数的使用时,这个问题就变得更加引人入胜。理解这些概念不仅可以帮助我们写出更加高效和规范的代码,而且在调试和性能优化...

    04.GC要做的事情1

    如果被认定为可以执行finalize方法,那么这个对象将会放置到一个叫做F-Queue的队列中,并在稍后会由一个虚拟机自动创建的、低优先级的Finalizer线程去执行它,这里所谓的执行就是触发finalize方法,而不是等待这个...

    Java中堆与栈的内存分配.pdf

    在Java中,当我们使用new关键字创建一个对象时,Java虚拟机将在堆中分配一个内存空间来存放这个对象。这个内存空间的大小是根据对象的类型和大小来确定的。堆中的内存空间是由Java虚拟机的自动垃圾回收器来管理的。...

    对象与引用之间的一些基本概念

    1. **创建对象**:在堆内存中基于`Vehicle`类的蓝图创建一个`Vehicle`对象。 2. **初始化**:调用`Vehicle`类的构造函数,对新创建的对象进行初始化,如果没有自定义构造函数,Java会提供一个默认的构造函数。 3. **...

    谈面向对象程序设计中对象的层次问题.pdf

    1. 类和对象:在面向对象编程中,类是创建对象的模板。对象是类的实例。类定义了一组属性和方法,对象则拥有这些属性和方法的具体值。类可以包含初始化对象状态的构造器方法,以及描述对象行为的方法。 2. 继承:...

    你必须知道的495个C语言问题

    1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 *1.26 main的正确定义是什么...

    《你必须知道的495个C语言问题》

    1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 13 声明问题 14 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 14 *1.26 main的正确...

    Java SE 第十一讲(面向对象之封装) 续二

    new关键字在对象创建过程中扮演着重要角色,它做了三件事情:首先为对象分配内存空间,然后调用构造方法完成初始化,最后返回新创建的对象的内存地址。 使用new关键字时,后面的括号表示构造方法的参数列表。如果...

    详解Javascript中new()到底做了些什么?

    和其他高级语言一样 javascript 中也有 new 运算符,我们知道 new 运算符是用来实例化一个类,从而在内存中分配一个实例对象。 但在 javascript 中,万物皆对象,为什么还要通过 new 来产生对象? 本文将带你一起来...

    C语言FAQ 常见问题列表

    o 7.1 我在一个源文件中定义了 char a[6], 在另一个中声明了 extern char *a 。为什么不行 ? o 7.2 可是我听说 char a[ ] 和 char *a 是一样的。 o 7.3 那么, 在 C 语言中 ``指针和数组等价" 到底是什么意思 ? ...

    每个JAVA初学者都应该搞懂的问题!

    ` 这样的语句时,实际上是在做两件事情:一是声明了一个类型为String的引用变量`s`,二是初始化这个引用变量,使其指向一个在常量池中存储的字符串对象`"HelloWorld!"`。这里的关键在于理解Java中的引用与对象的概念...

    二十三种设计模式【PDF版】

    很简单一个模式,就是在内存中保留原来数据的拷贝. 设计模式之 Interpreter(解释器) 主要用来对语言的分析,应用机会不多. 设计模式之 Visitor(访问者) 访问者在进行访问时,完成一系列实质性操作,而且还可以扩展. ...

    [NET 4.0面向对象编程漫谈 基础篇].金旭亮--高清版.pdf

    该框架包括一个大型的类库(称为.NET Base Class Library)和一个公共语言运行时(Common Language Runtime,CLR),后者负责在执行时提供内存管理、线程管理和其他系统服务。 面向对象编程的主要概念包括: 1. ...

    Java面向对象PPT教案学习.pptx

    方法是类与外界交互的接口,应当遵循单一职责原则,即一个方法只做一件事情。 2. **类和对象**:类是抽象的概念,用于描述一组对象共有的属性和行为。对象则是类的具体实例,存在于内存中,具备类定义的属性和方法...

    C#23种设计模式_示例源代码及PDF

    3、FACTORY METHOD —请 MM 去麦当劳吃汉堡,不同的 MM 有不同的口味,要每个都记住 、 是一件烦人的事情,我一般采用 Factory Method 模式,带着 MM 到服务员那儿,说“要一个 汉堡”,具体要什么样的汉堡呢,让 ...

    QUALCOMM平台BUIW开发文档

     为什么创建对象总是失败 31 程序架构基本规范 31  程序结构标准化的需要 31  主程序结构不合理 31  窗口参数结构传递不合理 32  应用释放所有窗口过程不合理 33  主程序数据结构 34  窗口独立数据...

Global site tag (gtag.js) - Google Analytics