通过一个类,可以实例化 N 个对象:new 类名();
new 运算符的作用:创建对象,在 JVM 堆内存 当中开辟新的内存空间
方法区内存:在类加载的时候,class 字节码代码片段被加载到该内存空间中
栈内存(局部变量):方法代码片段执行的时候,会给该方法分配内存空间,在 栈内存 中压栈
堆内存:new 的对象在 堆内存 中存储
分析下面语句
1 | Student s = new Student(); |
- Student 是一个引用数据类型
- s 是一个局部变量(在栈内存中存储),也是一个引用
- new Student() 是一个学生对象
- 什么是对象??
- new 运算符在 堆内存 中开辟的内存空间——对象
- 什么是引用??
- 引用是一个变量,只不过这个变量中保存了另一个 Java 对象的内存地址
- 所以,s 是引用,不是对象,new Student() 才是对象,s 保存的是对象的内存地址
- Java 中,程序员不能直接操作堆内存,没有指针,不像 C 语言。只能通过 “引用” 去访问堆内存当中对象内部的实例变量
访问实例变量的语法格式
- 读取数据:引用.变量名
- 修改数据:引用.变量名 = 值
1 | Student stu = new Student(); |