导入
public class Test {
int num;
int age;
String name;
boolean sex;
}
public class UseA {
public static void main(String[] args) {
Test s = new Test();//实例化对象的语法:new 类名();
//new是Java语法中的一个运算符,作用是创建对象,在JVM堆内存中开辟新的内存空间
//Test是一种引用数据类型
//s是一个变量名
//new Test()是一个对象
int number = s.num;
String stuName = s.name;
boolean stuSex = s.sex;
System.out.println(number);
System.out.println(stuSex);
System.out.println(stuName);
}
}
* 方法区内存:在类加载的时候,class字节码代码片段被加载到该内存空间当中。
栈内存(局部变量):方法代码片段执行的时候,会给该方法分配内存空间,在栈内存中压栈。
堆内存:new的对象在堆内存中存储。
注:Java语言中,程序员不能直接操作堆内存,Java中没有指针,不像C语言,程序员只能通过“引用”去访问堆内存当中的对象内部的实例变量。
* 什么是对象?
new运算符在堆内存中开辟的内存空间称为对象
* 什么是引用?
引用是一个变量,只不过这个变量中保存了另一个Java对象的内存地址
* 访问实例变量的语法格式:
- 读取数据:引用.变量名
- 修改数据:引用.变量名 = 值
* 局部变量在栈内存中存储。
成员变量中的实例变量在堆内存的Java对象内部存储。
实例变量是一个对象一份。
* 变量分类:
- 局部变量【方法体中声明】
- 成员变量【方法体外声明】
实例变量【前边修饰符没有static】
静态变量【前边修饰符有static】
* JVM(Java虚拟机)主要包括三块内存空间,分别是:堆内存、栈内存、方法区内存
- 堆内存和方法区内存各有一个,一个线程一个栈内存。
- 方法的代码片段以及整个类的代码片段都被存储到方法区内存当中,在类加载的时候这些代码片段会载入。
- 在程序执行过程中使用new运算符创建的Java对象,存储在堆内存当中,对象内部有实例变量,所以实例变量存储在堆内存当中。
- 静态变量存储在方法区内存当中。
- 三块内存当中变化最频繁的是栈内存,最先有数据的是方法区内存,垃圾回收器主要针对的是堆内存。