首页 > 其他分享 >关于static

关于static

时间:2022-09-19 16:24:33浏览次数:64  
标签:静态方法 变量 静态 成员 对象 static 关于

  static表示“静态”的意思,可以用来修饰成员变量和成员方法。static的主要作用在于创建独立于具体对象的域变量或者方法。被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。并且不会因为对象的多次创建 而在内存中建立多份数据。Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。静态方法的意义是方便,快速。静态方法中不能出现非静态的成员因为静态的方法创建早于对象的创建,因此在静态方法中不能出现非静态内容。static有几个方面,

1:static方法

static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。

2:static变量

static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本【存放在方法区】,它当且仅当在类初次加载时会被初始化【加final和不加final的static变量初始化的位置不一样】。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。static成员变量的初始化顺序按照定义的顺序进行初始化。

3:static代码块

static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次【根据class加载原理 每个类加载一次 使用双亲委托加载】。

4:静态导包

静态导包就是java包的静态导入,用import static代替import静态导入包是JDK1.5中的新特性。

一般我们导入一个类都用 import com…..ClassName;而静态导入是这样:import static com…..ClassName.*;这里的多了个static,还有就是类名ClassName后面多了个.* ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了。然后在这个类中,就可以直接用方法名调用静态方法,而不必用ClassName.方法名 的方式来调用。

对于静态变量,我们需要掌握它的用法、特点,只要与实例有关系的,必须先创建对象,然后通过引用的方式去访问,如果空引用访问实例相关的成员,必然会出现空指针异常;所有静态相关的,直接使用类名去访问,虽然静态相关的成员也能使用引用去访问,但是不要去使用,养成良好的代码习惯很重要。

标签:静态方法,变量,静态,成员,对象,static,关于
From: https://www.cnblogs.com/liurujun/p/16707956.html

相关文章

  • Java的 static关键字
    通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法   声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法。 · 它们只......
  • 关于IntelliJ IDEA 2020.1 勾选delegate IDE build/run actions to maven后测试类方法
    今天写MAVEN项目时,在执行测试类时发现方法都执行了两次,比如我执行insertAccout的测试类,就保存了两条相同的记录,执行别的测试类的时候,都会附带执行一次插入,产生一条记录,看了......
  • 英语-关于状态
    conscious有意识的吗,神智清醒的,意识到的,慎重的。自觉地,关注的aconsciouseffort自觉地努力desperate绝望的,不顾一切的,孤注一掷的,既需要的,极严重的adesperateeffor......
  • [踩坑回顾]关于点击复制的时候iPhone部分机型会调起输入框的解决方案
    在开发中遇到实现点击复制的功能,测试发现iPhone部分机型会在此时调起输入框。解决方案:在input标签中加入readonly属性。 <inputtype="text"id="award_code"v-model......
  • static个人理解
    static解:主要用于内存管理,static关键字的方法不需要new对象就可以直接在同static内进行调用,在其他类中可直接通过类名进行变量的访问。static关键字属于类,不是类的实例。成......
  • Java学习之静态方法static
      测试square方法将static删除后产生的问题会报错  所以main方法是一个静态方法,只能调用静态方法,所以平方数方法必须用static修饰......
  • 关于初学Cs231n
    Python函数:np.sum()以及axis=0、axis=1用法常用于矩阵求和计算,以下用法分为三种情况来介绍!格式:np.sum(a)np.sum(a,axis=0)------->列求和np.sum......
  • Java static关键字
    在类中,使用static修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。注意:static......
  • 关键字static
    java中的static关键字static,翻译成中文即为静态的意思,那么也就是说static修饰的是与对象无关的。概括成一句话,static所修饰的成员是公共资源,即不属于任何一个类的成员,sta......
  • static知识点
    在JAVA中并没有全局变量,因此static变量也称作静态变量,静态变量和非静态变量有很大的区别,只要一个成员变量使用了static关键字,那么这个变量就不再属于自己,而是属于整个类。......