static修饰符详解

本文详细介绍了Java中的static关键字,包括其基本概念、内存分配特点、使用基本原则及静态初始器的应用。并通过具体示例展示了static变量如何在不同实例间共享同一内存空间。

1、static基本概念

static能够和属性、方法和内部类一起使用,表示是静态的。

类中的静态变量或者静态方法能够与“类名”一起使用,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的变量又称作“类变量”。这于实例变量不同,实例变量必须通过对象来访问,因为它们的值在对象和对象之间有所不同。

class StaticModifyer{

static int i=10;

int j;

staticModifyer(){

j=20;

}

}


public class Test{

public static void main(String args[]){

System.out.println("类变量 i=  "+StaticModifyer.i);

StaticModifyer s=new StaticModifyer();

System.out.println("实例变量 j=  "+s.i);

}

}

输出结果:

类变量 i=10;

实例变量 j=20;

2、static内存分配

在上面的例子中,无需创建类的对象即可访问静态变量i,之所以会产生这样的结果,是因为编译器只为整个类创建静态变量的副本,因为它可以通过类名进行访问。也就是说一个类中的一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量共享同一个内存空间。实例如下:

public class StaticRAMTest{

public static void main(Stirng args[]){

UserModel user1=newUserModel();

user1.userName="zhangsan";

user1.country="china";

UserModel user2=new UserModel();

user2.userName="张三";

user2.country="中国";


System.out.println("user1.userName==  "+user1.userName+“user1.country== ”+user1.country);

System.out.println("user2.userName==  "+user2.userName+“ user2.country ==”+user2.country);

}

}

class UserModel{

private static String userName;

private String country;

}

输出结果:

user1.userName==张三  user1.country== china

user2.userName==张三  user2.country== 中国

为什么userName会有一样的值呢,就是因为多个User实例中的静态变量userName共享同一个内存空间,

user1.userName和user2.userName指向同一个内存空间,任何一个对象改变此变量都会引起其他对象中该变量的改变,因此就得到了上面的结果。


小结:

(1)static的变量是在类被装载的时候就会被初始化,也就是说只要类被装载,不管你是否使用了这个static变量,它都会被初始化。

(2)类变量(用static修饰的变量),在类加载的时候,分配类变量的内存,以后再生成类的实例对象时,将共享这块内存,任何一个对象对该类变量进行修改,都会影响其他对象。

(3)外部可以通过两种方式访问类变量:通过实例对象来访问或通过类名来访问。


3、statci使用的基本原则

一、一个类的静态方法只能访问静态属性

二、一个类的静态方法不能够直接调用非静态方法

三、如果访问权限允许,static方法和属性可以使用类名加“.”来访问,当然也可以使用实例对象名加“.”来访问

四、静态方法中不存在当前对象,因而不能使用“this”,当然也不能使用“super”

五、静态方法不能被非静态方法覆盖(重写)

六、构造方法不能声明为static的

七、局部变量不能使用static修饰

注:非static变量只限于实例,并且只能通过实例引用被访问。


4、静态初始器--静态块

静态初始器是一个存在于类中方法外面的静态快。静态初始器仅仅在类装载的时候(第一次使用类时)执行一次。

静态初始器的目的:往往用来初始化静态的类属性。



## 介绍## 01、数据介绍“新质生产力”一词在各地级市的政府报告中频繁出现,成为推动城市发展的重要词汇。从科技创新到产业升级,从城市更新到绿色发展,新质生产力在不同领域都发挥了重要作用。新质生产力是一个内涵丰富、意蕴深厚的经济范畴,代表着一种生产力的跃迁,是科技创新在其中发挥主导作用的生产力,尤其是关键性颠覆性技术实现突破的生产力,具备高效能,体现高质量,区别于依靠大量资源投入、高度消耗资源能源的生产力发展方式,是摆脱了传统增长路径、符合高质量发展要求的生产力,是数字时代更具融合性、更体现新内涵的生产力。 准确理解新质生产力的内涵特征,需要从“新”和“质”两个方面进行把握。数据名称:各地级市-新质生产力词频统计数据年份:2004-2024年## 02、相关数据及指标地区 文本总长度 仅中英文-文本总长度 文本总词频-全模式 文本总词频-精确模式 词频和 新质生产力 人工智能 科技创新 技术革新 科学发展 创新动能 颠覆性技术 突破性技术 革命性创新 新技术 前沿技术 高新技术 尖端技术 新能源 新经济 数字经济 创新经济 未来经济 新业态 数字化转型 产业升级 新模式 战略性新兴产业 未来产业 高科技产业 新动能产业 创新驱动 技术驱动 创新引领 重大突破 提高生产力 质的转变 提升生产力 高效能 高性能 高效率 高产出 高质量发展 质量优先 效益提升 高标准发展 主导技术 创新领先 科技引领 关键突破 核心技术突破
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值