Java创建对象过程中,内存的分配
来源:互联网 发布:广联达造价软件价格 编辑:程序博客网 时间:2024/05/21 17:56
对象的内存分配
我们都知道,要使用类,就一定要为其创建对象。那么,在创建对象过程中,内存是如何分配的呢?
类的本质是一种引用数据类型,这与数组是一样的。比如本文提供的简单例子程序中的Person类,它有两个属性,name和age,而属性是需要内存来存储的。我们以person对象来讲解。执行Person person=null;
时,Java系统会在栈内存开辟一个空间给对象person,程序继续向下执行到person=new Person();
时,Java系统会在堆内存开辟空间保存对象person属性(注意是属性)的内容。person变量本身存储的只是一个地址值,没有存储任何实际数据,但是它指向了Person类。所以当访问person对象的属性和方法时,实际上访问的是person所引用对象的属性和方法。
堆内存中的变量可以有多个引用,但是它们实际引用的是同一个类,如果对其中一个对象进行修改,那么其他对象的属性也会发生变化,因为它们指向同一个类。
可以这么说,对象的名称保存在栈内存中,而对象的属性保存在以new为关键字才能开辟的堆内存中。在Java中,当为类创建一个对象时,编译器会为对象的各个类型的成员变量进行初始化,无论是基本数据类型还是引用数据类型。
注意:对象在使用前一定要实例化,如果对象没有实例化而直接使用,那么中编译时就会出现空指针异常
本文例程代码:
public class hello { public static void main(String[] args) { Person person=null; person=new Person(); person.say(); }}class Person{ String name="Ters"; int age=18; public void say() { System.out.println(name+" "+age); }}
匿名对象
匿名对象是指没有栈空间的对象,即没有明确的名字给出对象。匿名对象使用的是堆内存,是通过关键字new进行开辟,因为没有对应的栈内存空间引用,所以对象只能使用一次。
new Person().say();
0 0
- Java创建对象过程中,内存的分配
- Java创建对象过程中,内存的分配
- 解析Java中创建String对象过程中的内存分配
- 创建string对象过程的内存分配
- 创建String对象过程的内存分配
- java中创建对象分配内存的问题
- Java中对象的创建、内存分配和销毁
- Java对象的内存分配过程
- Java类及对象创建内存分配过程
- String对象的创建过程中的内存分配
- String对象的创建过程中的内存分配
- 关于创建String对象过程的内存分配
- 关于创建String对象过程的内存分配
- 创建String对象过程的内存分配小结
- 关于创建String对象过程的内存分配
- JVM内存分配以及对象的创建过程
- Java中对象的创建过程(内存分析)
- Java中对象的内存分配问题
- Shell 变量
- mongoDB的复制集2----同步机制(工作原理,oplog详解,初始化同步的过程
- 树状数组
- Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现
- React Native调用Android原生模块
- Java创建对象过程中,内存的分配
- MATLAB图像处理基础知识学习总结(MATLAB操作命令)
- 浙大PAT甲级 1084
- hibernate初体验
- weka Apriori算法实例操作详解
- 售电模拟应用简介
- Xposed学习入门篇
- linux的dma驱动
- Java (final)分析