内存分析(对象的使用基本概念理解)
对象的使用实例1
输出学生的学号
在主方法中引用了类“Student”,需要将两个.java文件放在同一个包里面,编译时需要同时编译两个.java文件,使用javac *.java同时编译两个文件,方能编译通过,不然会报错“找不到符号”
public class Lianxi15
{
public static void main(String []args){
Student s = new Student();//通过一个类可以实例化N个对象,实例化对象的语法new 类名();,new运算符的功能是创建对象,在堆内存中开辟新的内存空间,(new对象在堆内存中存储)
int stu=s.no;
System.out.println("学号=" + s.no);
}
}
//引用是一个变量,只不过这个变量中保存了另一个java对象的内存地址,且只能通过引用来访问堆内存当中对象内部的实例变量
//访问实例数据的语法格式:
//读取数据:引用.变量名
//修改数据:引用.变量名=值
//局部变量在栈内存中存储,局部变量中的实例变量在堆内存中的java对象内部存储,实例变量是一个对象一份
public class Student
{
int no;
}
对象的使用实例2
通过使用对象和引用输出一个人的姓名,具体地址和邮政编码等信息
主方法,测试类
//测试类
public class Lianxi16
{
public static void main(String []args){
User u = new User();//创建User对象
System.out.println(u.no);
System.out.println(u.name);
System.out.println(u.add);
u.no=111;
u.name="nidaye";
u.add= new Address();//赋值对象的内存地址Address@16f65612,地址指向的是address对象
u.add.city="南京";
u.add.street="栖霞区文苑路9号";
u.add.zipcode="210023";
System.out.println(u.name+"居住在"+u.add.city);//nidaye居住在南京
System.out.println(u.name+"居住在"+u.add.street);//nidaye居住在栖霞区文苑路9号
System.out.println(u.name+"居住在"+u.add.zipcode);//nidaye居住在210023
}
}
用户类
public class User
{
int no;
String name;//引用,代表字符串
Address add;//引用 ,是一个实例变量
}
地址类
public class Address
{
String city;//城市
String street;//街道
String zipcode;//邮编
}
内存空间变化图
JVM内存管理基本概念