java中static关键字_Java中的static关键字

static关键字的概述及特点什么是静态? 静态有什么特点?

如果一个成员使用static关键字,那么这个成员就不再属于对象了,而是属于类,会给所有该类的对象共享,在内存中只有一个

如果一个成员没用static关键字,那么这个成员是属于对象的,每一个对象都会有一个自己的这个成员

总结:

1. 静态指的就是Java中的关键字static, static是一个修饰符

问题:static可以修饰什么?

成员: ● 成员变量

● 成员方法

2. ● 这个静态成员被该类所有的[对象]所[共享]

● 优先于对象存在,随着类的加载而加载

● 多了一种调用方式,可以根据 类名. 进行调用

看一段代码:

class Student {

//因为同一个学校的学生类,school属性是相同的,所以用静态修饰,省内存

String name;

int age ;

static String school;

}

方法区分为静态区和非静态区,静态的成员变量只要字节码一加载就有初始化值,非静态成员变量只有创建对象时才初始化

创建对象后,非静态成员变量进堆,初始化. 静态成员变量就待在方法区中.

思路:什么时候使用静态成员变量呢?

静态成员变量可以通过创建对象调用,也可以通过类名直接访问(建议)

类名.变量名

共性(共享)的属性使用静态,特性使用非静态

例如饮水机:静态 (非共享) 水杯:非静态 (非共享)

什么时候使用静态修饰成员方法呢?

如果static修饰成员方法,同样表示这个方法不再属于对象了,而是属于类

静态方法可以通过对象调用,也可以通过类名调用(推荐) 如果调用同一个类的静态方法可以省略类名

工具类: 定义了一个类,类中存在一些提供服务的方法 为了让这些方法的调用更加简便,一般都会将方法定义为静态的 如果一个类中所有的方法都是静态的,往往会多做一步操作,即私有构造方法 目的是不让其他类访问构造方法创建对象我既然已经让你可以通过 类名. 调用了,你就别创建对象了

工具类该类提供了一些服务的方法,这种类单独存在没有价值,完全是给其他类提供服务的

类名.

例如: ArrayUtils.getMax(arr);

Arrays.toString(arr);

static方法的访问特点及注意事项静态方法:

1.可以调用静态的成员变量,成员方法

2.不能调用非静态的成员变量,成员方法

3.只能在静态方法中调用静态的成员

总结:静态只能访问静态非静态方法(什么都可以访问)

1.可以调用静态的成员,也可以调用非静态的成员

重点: 静态中没有super和this关键字

因为this和super只有创建对象之后才存在,静态则是随着类的加载而加载,在使用静态的时候,有可能对象还没有被创建

静态代码块

典型用途: 用来一次性的对静态成员变量进行赋值.

格式:

static {

方法体

}

当第一次用到本类时,代码块执行唯一的一次,第二次使用的时候就不在执行了 静态内容总是优先于非静态,所以静态代码块比构造方法优先执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值