首页 > 其他分享 >有关static关键字的探究

有关static关键字的探究

时间:2022-09-21 21:55:47浏览次数:48  
标签:静态方法 变量 静态 关键字 探究 static 方法

static为编程语言中的一个关键字,是一种修饰符,既可以修饰变量也可以修饰方法

在类中,用static声明的成员变量为静态成员变量,也称之为类变量,类变量的生命周期和类相同,在整个应用程序执行期间都有效。

这里要强调一下:

  • static修饰的成员变量和方法,从属于类

  • 普通变量和方法从属于对象

  • 静态方法不能调用非静态成员,编译会报错

 

static关键字的用途
一句话描述就是:方便在没有创建对象的情况下进行调用(方法/变量)。

 

显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

 

static可以用来修饰类的成员方法、类的成员变量,另外也可以编写static代码块来优化程序性能

java中的static关键字主要用于内存管理。我们可以应用java static关键字在变量,方法,块和嵌套类中。 static关键字属于类,而不是类的实例。

静态(static)可以是:

  1. 变量(也称为类变量)
  2. 方法(也称为类方法)
  3. 代码块
  4. 嵌套类 

类的静态变量是类的一种属性,与对象无关,因此类的静态变量可以被该类定义的所有对象共享,属于所有对象的公共属性,这也是静态变量的优点:它能使得程序存储器高效,节省内存,对于多个对象都需要使用的数据,我们定义完类的静态变量之后就无需在每个对象都分配一个空间去储存该数据。

静态变量和非静态变量的区别:

  • 静态变量被所有对象共享,在内存中只有一个副本,在类初次加载的时候才会初始化

  • 非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响

static的注意事项

1.首先在java语法中与c/c++语言不同的是static关键字是不会改变变量或者方法的作用域,在Java中能够影响到访问权限的只有private、public、protected(包括包访问权限)这几个关键字。

2.在java中关键字this和super是不能在静态上下文中使用

3.主方法mian为静态方法,这是因为对象不需要调用静态方法,如果它是非静态方法,jvm首先要创建对象,然后调用main()方法,这将导致额外的内存分配的问题。

4.在java语法中static是不允许用来修饰局部变量,无论是方法中的变量还是形参,局部变量中唯一合法的修饰符为final

5.对于静态方法,在静态方法中定义的变量都是静态变量,静态方法只能访问静态成员

6.静态方法只能访问静态成员和变量无法方位非静态的,而非静态的方法二者都可以访问

 

 

标签:静态方法,变量,静态,关键字,探究,static,方法
From: https://www.cnblogs.com/liyiyang/p/16717265.html

相关文章

  • 静态static
    静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释......
  • 【Java基础】关键字:interface
    1.interface说明Java中不支持多继承,但有时必须从几个类中派生出一个子类,继承它们所有的属性和方法,使用interface达到多重继承的效果。interface:接口,定义一组规则,是“能......
  • linux cat查询关键字
    cd/usr/local/tomcat/logs1、grep‘字符串’这是最普通的使用方式:匹配文件中包含MANPATH的那一行:catmanpath.config|grep'MANPATH'2、grep-v‘字符串’......
  • static学习总结
    static关键字在类中,用static声明的成员变量为静态成员变量,也称为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。注意static修饰的成员变量和方法,从......
  • 静态static用法
    1.静态变量将变量声明为static,就是静态变量,可以用于引用所有对象的公共属性。可以节省空间。例如一个学生类classstudent{intage;Stringname;}如果每......
  • static的用法
    static代表的含义?“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static......
  • Java中static的作用
    是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退......
  • 17.explicit关键字
    c++提供了关键字explicit,禁止通过构造函数进行的隐式转换。声明为explicit的构造函数不能在隐式转换中使用。[explicit注意]●explicit用于修饰构造函数,防止隐式转化。......
  • static
    static关键字1.修饰成员变量在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,让他们成为类的成员属性和方法,我们通常将用static修饰的成员称为类成员或者......
  • 静态static内容
    我们知道static是静态修饰符,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而被static修饰的代码会在编译时就被分配内存,程序退出时才会释放其内存,也就......