Java静态变量与实例变量的区别

本文通过一个Java代码示例展示了静态变量与实例变量在内存分配、访问方式及生命周期上的区别。静态变量在类加载时分配内存,可用类名或对象名访问,而实例变量在对象创建时分配内存,仅能通过对象名访问。代码创建了两个Teacher对象,展示了静态变量count随着对象创建的变化情况,强调了静态变量在所有对象间共享的特点。
摘要由CSDN通过智能技术生成

对比

静态变量实例变量
内存分配的空间不同对象的同名静态变量分配相同的内存空间不同对象的同名实例变量之间的取值互不影响
内存分配的时间当类的字节码文件加载到内存时,静态变量就分配到了相应的内存空间当类的对象创建时才会被分配内存
访问方式可以用类名访问,也可以用对象名访问必须用对象名访问

Java代码

package por2_class;
public class TestTeacher {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Teacher t1=new Teacher("admin_1","2424");
		//实例变量只能通过
		System.out.println("教师1的账号"+t1.name+" 密码"+t1.password);
		//静态变量有两种调用方式,通过对象调用和通过类调用
		System.out.println("静态变量count:"+t1.count+","+Teacher.count);
		Teacher t2=new Teacher("admin_2","1234");
		System.out.println("静态变量"+t1.count+","+Teacher.count);
	}
}
class Teacher {
	//成员变量
	public String name;//实例变量
	public String password;//实例变量
	static int count=0;//静态变量
	//构造方法
	public Teacher(String n,String p) {
		name=n;
		password=p;
		count++;//每创建一个对象,计数加一
	}
	//成员方法
	public void introduce() {
		System.out.println("姓名:"+name+"密码:"+password);
	}
}

运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@玉面小蛟龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值