JAVA关键字小结(static、this、package、import)
一.static关键字:
类变量与实例变量的区别:
1.在变量前面加上static关键字,变量就变成了类变量。
2.实例变量与类变量在程序运行时分配内存的时间不同。当程序运行时,类的字节码文件被加载到内存,如果该类没有创建对象(new),那么实例变量不会被分配内存,但是类变量已经被分配内存。
3.实例变量与类变量分配内存的方式不同。如果类创建了对象,那么不同对象的实例变量分配不同的内存空间,但是类变量是相同的一处内存空间,且直到程序退出时才释放所占有的内存。
4.调用方法不同。实例变量只能用类创建的对象进行访问,而类变量不仅可以用对象进行访问也可以用“类名.变量名”进行访问。
类方法与实例方法的区别:
1.在方法前面加上static关键字,方法就成了类方法。
2.实例变量与类变量在程序运行时分配入口地址的时间不同。
当程序运行时,类的字节码文件被加载到内存,如果该类没有创建对象(new),那么实例方法不会被分配入口地址。当创建了第一个对象的时候,实例方法被分配入口地址,且当再次创建其他对象时,该实例方法不再分配入口地址,原来的入口地址是共享的。当所有的对象都不存在时,实例方法的入口地址被取消。
对于类方法,当程序运行时,类的字节码文件被加载到内存,就已经分配了入口地址。
4.调用方法不同。实例方法只能用类创建的对象进行访问,而类方法不仅可以用对象进行访问也可以用“类名.类方法名”进行访问。
二.this关键字
1.this可以出现在实例方法和构造方法中,但不可以出现在类方法中。
2.用this点操作可以在方法中操作被隐藏的成员变量。
三.package关键字
1.包的标识符。
四.import关键字
1.引用类库中的类。
如import java.until.Date;
如果是import java.until.*;指引用java.until中所有的方法,系统会自动匹配。
2.引用自定义包中的类。(在同一个包中的类不需要import语句即可引用)
如import.包名.类名;