java语言基础(25)——面向对象(new对象的时候内存中发生了哪些变化)
2017-03-24 22:09
483 查看
new对象时的内存变化:
Student s = new Student();
1 加载Student类文件到栈内存,开辟空间。
2 在栈内存为s开辟空间
3 在堆内存为Student对象开辟空间
4 给Student的成员变量分配默认值
5 如果成员变量有给定值则用给定值覆盖默认值
6 通过构造方法给成员变量赋值
7 把Student对象在堆内存的地址值赋给s变量
成员变量的初始化在构造函数之前
Student s = new Student();
1 加载Student类文件到栈内存,开辟空间。
2 在栈内存为s开辟空间
3 在堆内存为Student对象开辟空间
4 给Student的成员变量分配默认值
5 如果成员变量有给定值则用给定值覆盖默认值
6 通过构造方法给成员变量赋值
7 把Student对象在堆内存的地址值赋给s变量
成员变量的初始化在构造函数之前
相关文章推荐
- (转)Java中定义对象的时候,New和Null的内存调用
- 6 Java基础语法(二维数组,参数传递与数据加密问题)&面向对象(面向对象思想,类与对象及使用,对象内存图解)
- Java 语言基础之对象数组(内存结构拓展)
- java语言基础(22)——面向对象(匿名对象的使用)
- new一个JAVA对象的时候,内存是怎么分配的?
- Java语言基础-常用对象API(二)泛型、Map集合
- java语言面向对象笔记,在学习面向对象时应该理解掌握的原理-作者:逝秋
- 黑马程序员-Java语言基础–面向对象 第8天
- Java语言基础-面向对象
- 黑马程序员 05 Java基础教学 - 05 - 面向对象(1) 之 类、对象、封装
- Java语言基础-常用对象API(一)String、StringBuffer
- 黑马程序员-Java语言基础 –面向对象 第6天
- Java语言基础-面向对象(继承)
- 黑马程序员——java语言基础——万物皆对象
- 黑马程序员 Java基础<一>---> 面向对象与类之概述(匿名对象、封装、构造函数、this、静态等)
- JAVA读取XML文件放在内存中,如果XML文件发生变化时,重新读取XML文件,并覆盖内存中的数据
- Java语言基础-常用对象API(二)集合框架
- 黑马程序员-Java语言基础–面向对象 第10天
- 第2章 Java编程基础——FAQ2.22 创建String对象时, 使用String s=new String (“abc”)和String s=“abc”语句有什么区别?
- 黑马程序员-Java语言基础–面向对象 第5天