static关键字用途
static关键字主要是方便在没有创建对象时调用类的变量和方法
static关键字可以修饰类的成员变量、成员方法,另外可以写static代码块
static的特点
1、随着类的加载而加载,也就是说静态成员会随着类的消失而消失,生命周期最长
2、静态成员优先于对象而存在,静态先存在,对象后存在,(具体可以看类加载过程,类的加载中,会先初始化静态成员,之后才完成类的初始化过程,或者说静态成员是类成员,可以不创建对象而直接用类名调用)
3、实例变量和静态变量的区别
- 存放位置,类变量随着类的加载存放在方法区中,实例变量随着对象的建立存放在堆内存
- 生命周期不同,类变量生命周期最长,随着类的消失而消失,实例变量随着对象的消失而消失
static的使用注意事项
1、静态方法只能访问静态成员
2、非静态方法既可以访问静态,也可以访问非静态
3、静态方法中不可以出现this、super关键字,因为静态优先于对象先存在
4、静态成员被所有对象所共享
静态使用时机
1、静态变量
存在共享数据时可以使用静态,特有数据使用非静态
2、静态方法
方法中没有使用到对象的特有数据时可以使用静态修饰方法
java主函数
package cn.itcast.test;
public class Test {
public static void main(String[] args) {
for(String s :args){
System.out.println(s);
}
System.out.println(args.length);
}
}
主函数是固定格式的:可以被jvm识别
public:代表访问权限最大
static:代表主函数随着类的加载就已经存在了
void:主函数没有具体返回值
main:不是关键字,但是是一个特殊的单词,可以被jvm识别
jvm在调用主函数的时候,传入的参数args 是new String [0]
参考资料: