静态方法:是使用static关键字修饰的方法,又叫类方法.属于类的,不属于对象,
在实例化对象之前就可以通过类名.方法名调用静态方法。
非静态方法:是不含有static关键字修饰的普通方法,又称为实例方法,成员方法。属于对象的,不属于类的。
1、调用方法不同
静态方法可以直接调用,类名调用和对象调用。(类名.方法名 / 对象名.方法名)
但是非静态方法只能通过对象调用。(对象名.方法名)
2、生命周期不同
静态方法的生命周期跟相应的类一样长,静态方法和静态变量会随着类的定义而被分配和装载入内存中。一直到线程结束,静态属性和方法才会被销毁。
(也就是静态方法属于类)
非静态方法的生命周期和类的实例化对象一样长,只有当类实例化了一个对象,非静态方法才会被创建,而当这个对象被销毁时,非静态方法也马上被销毁。
(也就是非静态方法属于对象)
静态变量的优点
- 属于类级别的,不需要创建对象就可以直接使用.
- 全局唯一,内存中唯一,静态变量可以唯一标识某些状态.
- 在类加载时候初始化,常驻在内存中,调用快捷方便.
应用场景:
- 静态方法最适合工具类中方法的定义;比如文件操作,日期处理方法等.
- 静态变量适合全局变量的定义.