java静态方法和非静态方法的区别

Java的方法主要分三类

1.构造方法
2.非静态方法(普通方法/实例方法)
3.静态方法(类方法)

静态方法和非静态方法的区别(调用对象、引用变量不同)

静态方法:使用static关键字修饰的方法,如下图借用了菜鸟教程

静态方法

静态方法属于,就是说可以直接通过类名.方法名调用的方法(静态属性也可以通过类名调用)

可以:调用静态方法,引用类变量(即,static修饰的变量)。

不可以:调用非静态方法,引用类变量,使用superthis关键字

非静态方法

方法属于对象,必须new一个对象出来,再通过对象调用
比如Scanner的nextLine方法

1
2
Scanner scanner = new Scanner(System.in);
scanner.nextLine();

可以:调用静态方法/普通方法,引用类变量和成员变量,使用superthis关键字。

调用区别

静态方法可以直接调用,类名调用和对象调用。(类名.方法名 / 对象名.方法名
但是非静态方法只能通过对象调用。(对象名.方法名

静态变量的好处

1.属于类级别的,不需要创建对象就可以直接使用.
2.全局唯一,内存中唯一,静态变量可以唯一标识某些状态.
3.在类加载时候初始化,常驻在内存中,调用快捷方便.

应用场景:
1.静态方法最适合工具类中方法的定义;比如文件操作,日期处理方法等.
2.静态方法适合入口方法的定义;如单例模式,因为从外部拿不到构造函数,所有定义一个静态的方法获取对象非常有必要.
3.静态变量适合全局变量的定义.(如布尔型静态成员变量做控制符)