2023.9 - java - static 关键字

static关键字主要和Java的内存管理有关。我们可以将static关键字与变量,方法,代码块一起使用。static关键字属于该类,而不是该类的实例。

static关键字可以修饰:

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

 Java静态变量 :

如果将任何变量声明为static,则称为静态变量。

  • 静态变量可用于引用所有对象的公共属性(每个对象不是唯一的),例如,员工的公司名称,学生的大学名称等。
  • 静态变量在类加载时仅在类区域中分配一次内存。
  • 它使你的程序存储效率更高(通俗点说,就是节省内存)。
  • 静态变量仅仅分配一次内存,如果任何对象更改了静态变量的值,该值会影响所有对象。

     

Java静态方法 :

如果让任何方法加上static关键字,则称为static静态方法。

  • 静态方法属于类,而不是类的对象。
  • 可以使用类名称直接调用静态方法,而无需创建类的实例。
  • 静态方法可以直接访问静态数据成员并可以更改其值。

静态方法有两个主要限制:

  • 静态方法不能使用非静态数据成员或直接调用非静态方法。
  • this和super关键字不能在静态上下文中使用。

 

为什么main方法是静态的 :

如果main() 方法是非静态方法,则JVM首先创建一个对象,然后调用main() 方法,这将导致额外的内存分配问题。

可以执行没有main()方法的类吗 :

JDK1.6以前可以,但是JDK1.7以后不行JDK1.6及以前只要类中有静态块也可以执行该类,但是到了JDK 1.7及以后,没有main方法就不可能执行Java类了。

java 静态代码块 :

在Java中,静态代码块是一种特殊的代码块,它在类被加载时执行,且只执行一次。静态代码块通常用于在类加载时进行一些初始化工作,例如初始化静态成员变量或执行一些静态方法。静态代码块使用 static 关键字来定义,它不需要对象实例而是与类相关联。

  • main方法在类加载后被调用,即在静态代码块执行完毕后执行。

你可能感兴趣的:(2023-java,java,开发语言)