java内部静态类的生命周期_《Java架构筑基》从Java基础讲起——深入理解Static

本文详细介绍了Java中的static关键字,包括其作用、特点、存储位置和生命周期。重点讨论了静态内部类与非静态内部类的区别,强调了静态变量的共享性以及潜在问题,如内存占用和垃圾回收。此外,还探讨了静态方法和变量的内存图解以及它们与成员变量的区别。
摘要由CSDN通过智能技术生成

1. static的作用和特点

可以用来修饰:成员变量,成员方法,代码块,内部类等。具体如下所示

修饰成员变量和成员方法

被 static 修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享,可以并且建议通过类名调用。

被static 声明的成员变量属于静态成员变量,静态变量存放在Java内存区域的方法区。

静态代码块

静态代码块定义在类中方法外,静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)

该类不管创建多少对象,静态代码块只执行一次.

静态内部类(static修饰类的话只能修饰内部类)

静态内部类与非静态内部类之间存在一个最大的区别:

非静态内部类在编译完成之后会隐含地保存着一个引用,该引用是指向创建它的外围内,但是静态内部类却没有。没有这个引用就意味着:1.它的创建是不需要依赖外围类的创建。2.它不能使用任何外围类的非static成员变量和方法。

静态导包(用来导入类中的静态资源,1.5之后的新特性):

这两个关键字连用可以指定导入某个类中的指定静态资源,并且不需要使用类名调用类中静态成员,可以直接使用类中静态成员变量和成员方法。

static关键字的特点

随着类的加载而加载

优先于对象存在

被类的所有对象共享

可以通过类名调用【静态修饰的内容一般我们称其为:与类相关的,类成员】

static的注意事项

在静态方法中是没有this关键字的

静态是随着类的加载而加载,this是随着对象的创建而存在。

静态比对象先存在。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值